/* Add to bag
=====================================================*/
function addToBag(productID, price, wishlist, rowID){
	
	// updates to say adding
	if(wishlist){
		// if adding from the wishlist page
		document.getElementById('b' + rowID).innerHTML = 'adding..';
	} else {
		var td = document.getElementById('addtobag');
		td.innerHTML = 'adding..';
	}
	
	
	var bagObject = false;
	if(window.XMLHttpRequest){
		bagObject = new XMLHttpRequest();
	} else if(window.ActiveXObject){
		bagObject = new ActiveXObject("Microsoft.XMLHTTP");
	}
	
	if(bagObject){
		var qty = document.getElementById('qty').value;
		var removeFromWishlist;
		
		if(wishlist){
			removeFromWishlist = '&wishlist';
		}
		
		bagObject.open("GET", "../include/pages/addtobag.php?product=" + productID + "&qty=" + qty + "&price=" + price + removeFromWishlist);

		bagObject.onreadystatechange = function(){
			if(bagObject.readyState == 4 && bagObject.status == 200){
				
				if(wishlist){
					// if adding from the wishlist page
					document.getElementById('d' + rowID).innerHTML = '<p align="center">Added to <a href="shoppingbag.php">shopping bag</a>!</p>';
					document.getElementById('b' + rowID).innerHTML = '';
				} else {
					// adding from the regular product page
					td.innerHTML = 'Saved. <a href="shoppingbag.php">View bag</a>';
				}
				
				// updates the total at the top
				document.getElementById('total_in_shoppingbag').innerHTML = bagObject.responseText;
			} else if(bagObject.status != 200){
				if(wishlist){alert('error');
				} else {td.innerHTML = 'error';}
			}
		}
		bagObject.send(null);
	}
}


/* Update quantity on the shopping bag page
=====================================================*/
function updateQty(bagID, qty, rowID){
	var bagObject = false;
	if(window.XMLHttpRequest){
		bagObject = new XMLHttpRequest();
	} else if(window.ActiveXObject){
		bagObject = new ActiveXObject("Microsoft.XMLHTTP");
	}
	
	if(bagObject){
		var total_price = document.getElementById('total_price').innerHTML;
		bagObject.open("GET", "../include/pages/updatebag.php?id=" + bagID + "&qty=" + qty + "&total=" + total_price);

		bagObject.onreadystatechange = function(){
			if(bagObject.readyState == 4 && bagObject.status == 200){
				
				// splits the response
				var response = bagObject.responseText.split('<split>');
				
				// updates the total at the top
				document.getElementById('total_in_shoppingbag').innerHTML = response[0];
				
				// updates the price on the shopping bag
				document.getElementById('price_total_' + rowID).innerHTML = response[1];
				document.getElementById('total_price').innerHTML = response[2];
				
				// updates the quantity if they decide to remove without refreshing page
				var remove = document.getElementById('remove_' + rowID);
				var remove_qty = remove.value.split('-');
				remove.value = remove_qty[0] + '-' + qty;
				
			} else {
				document.getElementById('price_total_' + rowID).innerHTML = "[loading]";
				document.getElementById('total_price').innerHTML = "...";
			}
		}
		bagObject.send(null);
	}
}


/* Sign up form
=====================================================*/
function checkFields(field){
	// displays error message
	var div = document.getElementById(field + '_div');
	if(document.getElementById(field).value == ""){
		div.style.display = "inline";
	} else {
		div.style.display = "none";
	}
	
	// undisables submit form
	var checkEverything = new Array('first_name','last_name','email','password','password2');
	var submit = 0;
	for(var loop = 0; loop < 5; loop++){
		if(document.getElementById(checkEverything[loop]).value != ""){
			submit++;
		}
	}
	if(field == "email"){
		checkEmail();
		if(div.style.display == "inline"){
			submit--;
		}
	}
	if(field == "password2"){
		checkPassword();
		if(document.getElementById('password2_check_div').style.display == "inline"){
			submit--;
		}
	}
	if(submit == 5){
		document.getElementById('submit').disabled = false;
	} else {
		document.getElementById('submit').disabled = true;
	}
}

function checkEmail(){
	// checks that its a valid email
	var div = document.getElementById('email_div');
	if(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(document.getElementById('email').value)){
		div.style.display = "none";
	} else {
		div.style.display = "inline";
	}
}

function checkPassword(){
	// checks that both passwords match
	var div = document.getElementById('password2_check_div');
	if(document.getElementById('password').value != document.getElementById('password2').value){
		div.style.display = "inline";
	} else {
		div.style.display = "none";
	}
}


/* Lost password form
=====================================================*/
function lost_password(){
	var passwordObject = false;
	if(window.XMLHttpRequest){
		passwordObject = new XMLHttpRequest();
	} else if(window.ActiveXObject){
		passwordObject = new ActiveXObject("Microsoft.XMLHTTP");
	}
	
	if(passwordObject){
		var div = document.getElementById('lost_password');
		var email = document.getElementById('lost_email').value;
		passwordObject.open("GET", "../include/pages/lostpassword.php?email=" + email);

		passwordObject.onreadystatechange = function(){
			if(passwordObject.readyState == 4 && passwordObject.status == 200){
				div.innerHTML = passwordObject.responseText;
			} else if(passwordObject.status != 200){
				div.innerHTML = 'error';
			} else if(passwordObject.readyState > 0){
				div.innerHTML = 'loading..';
			}
		}
		passwordObject.send(null);
	}
}


/* Browsing categories
=====================================================*/
function browseCategories(categoryID, page){
	var productsObject = false;
	if(window.XMLHttpRequest){
		productsObject = new XMLHttpRequest();
	} else if(window.ActiveXObject){
		productsObject = new ActiveXObject("Microsoft.XMLHTTP");
	}
	
	if(productsObject){
		var div = document.getElementById('display_products');
		productsObject.open("GET", "../include/pages/displayproducts.php?id=" + categoryID + "&page=" + page);

		productsObject.onreadystatechange = function(){
			if(productsObject.readyState == 4 && productsObject.status == 200){
				div.innerHTML = productsObject.responseText;
			} else if(productsObject.status != 200){
				div.innerHTML = 'error';
			}
		}
		productsObject.send(null);
	}
}


/* Adding to wishlist
=====================================================*/
function addToWishlist(productID){
	var td = document.getElementById('add_to_wishlist');
	td.innerHTML = 'saving..';
	
	
	var wishlistObject = false;
	if(window.XMLHttpRequest){
		wishlistObject = new XMLHttpRequest();
	} else if(window.ActiveXObject){
		wishlistObject = new ActiveXObject("Microsoft.XMLHTTP");
	}
	
	if(wishlistObject){
		wishlistObject.open("GET", "../include/pages/addtowishlist.php?product=" + productID);

		wishlistObject.onreadystatechange = function(){
			if(wishlistObject.readyState == 4 && wishlistObject.status == 200){
				td.innerHTML = wishlistObject.responseText;
			} else if(wishlistObject.status != 200){
				td.innerHTML = 'error';
			}
		}
		wishlistObject.send(null);
	}
}


/* Check out form - shipping address
=====================================================*/
function checkShipping(field){
	var div = document.getElementById(field + '_div');
	
	// if one of the phone boxes..
	if(field.indexOf('phone') >= 0){
		div = document.getElementById('phone_div');
	}
	
	if(document.getElementById(field).value.length < 2){
		div.style.display = "inline";
		return;
	} else {
		div.style.display = "none";
	}
	
	// enables submit form
	var checkEverything = new Array('address','city','state','zip','country','phone_area','phone_first','phone_second');
	var submit = 0;
	for(var loop = 0; loop < 8; loop++){
		if(document.getElementById(checkEverything[loop]).value.length > 1){
			submit++;
		}
	}
	if(field.indexOf('phone') >= 0){
		checkPhone(field);
		if(div.style.display == "inline" || document.getElementById('phone_error').style.display == 'inline'){
			submit--;
		}
	}
	if(submit == 8){
		document.getElementById('submit').disabled = false;
	} else {
		document.getElementById('submit').disabled = true;
	}
}

function checkPhone(field){
	if(field=='phone_second'){
		var likeyea = /^[0-9]{4}$/;
	} else {
		var likeyea = /^[0-9]{3}$/;
	}
	
	var input = document.getElementById(field).value;
	var div = document.getElementById('phone_error');
	
	if(likeyea.test(input)){
		div.style.display = 'none';
	} else {
		div.style.display = 'inline';
	}
}


/* Searching products
=====================================================*/
function searchProducts(page, keywords, categoryID){
	var div = document.getElementById('display_products');
	div.innerHTML = '<p align="center">loading</p>';
	
	var productsObject = false;
	if(window.XMLHttpRequest){
		productsObject = new XMLHttpRequest();
	} else if(window.ActiveXObject){
		productsObject = new ActiveXObject("Microsoft.XMLHTTP");
	}
	
	if(productsObject){
		productsObject.open("GET", "../include/pages/searchproducts.php?page=" +page+ "&keywords=" +keywords+ "&category=" +categoryID);

		productsObject.onreadystatechange = function(){
			if(productsObject.readyState == 4 && productsObject.status == 200){
				
				var theResponse = productsObject.responseText.split("<phpsplit>");
				div.innerHTML = theResponse[0];
				
				if(theResponse[1] != undefined && theResponse[1] != ''){
					document.getElementById('refinesearch').innerHTML = theResponse[1];
				}
			} else if(productsObject.status != 200){
				div.innerHTML = 'error';
			}
		}
		productsObject.send(null);
	}
}
