    // Make the XMLHttpRequest object
    var http_account = createRequestObject();
	var divhandler_account = new handleDivTag(null);
	function sendRequest_account(more,divtag) {
		if (divtag == "check_email") {
			//document.getElementById(divtag).innerHTML = "Loading...";
			http_account.open("get", "validate_email.php?"+more);
		}
		if (divtag  == "shipping_div") {
			document.getElementById(divtag).innerHTML = "Loading...";
			http_account.open("get", "shipping_forms.php?"+more);
		}
		if (divtag  == "view_orders") {
			document.getElementById(divtag).innerHTML = "Loading...";
			http_account.open("get", "view_orders.php?"+more);
		}
//		if (divtag  == "ajax_account") {
//			document.getElementById(divtag).innerHTML = "Loading..";
//			http_account.open("get", "mini_account.php?"+more);
//		}
		if (divtag  == "account_links") {
			document.getElementById(divtag).innerHTML = "<img src='filebin/images/loading_apple.gif' border='0' style='padding:0' />&nbsp;";
			http_account.open("get", "filebin/ajax/php/mini_account.php?"+more);
		}
		if (divtag  == "ajax_account") {
			if (document.getElementById("bomb_floating")) document.getElementById("bomb_floating").style.display="none";
			document.getElementById(divtag).innerHTML = "<img src='filebin/images/loading_apple.gif' border='0' style='padding:0' />&nbsp;Loading...";
			http_account.open("get", "filebin/ajax/php/mini_account.php?"+more);
		}
		if (divtag  == "registry") {
			if (document.getElementById("bomb_floating")) document.getElementById("bomb_floating").style.display="none";
			document.getElementById(divtag).innerHTML = "<img src='filebin/images/loading_apple.gif' border='0' style='padding:0' />&nbsp;loading..";
			http_account.open("get", "filebin/ajax/php/ajax_registry.php?"+more);
		}
		if (divtag.substring(0,6) == "share_") {
			document.getElementById(divtag).innerHTML = "<img src='filebin/images/loading_apple.gif' border='0' style='padding:0' />";
			http_account.open("get", "filebin/ajax/php/share_registry.php?"+more);
		}
		divhandler_account.divtag = divtag;
        http_account.onreadystatechange = handleResponse_account;
        http_account.send(null);
    }

    function handleResponse_account() {
		//alert("in handle: "+http.readyState);
        if(http_account.readyState == 4 && http_account.status == 200){
            // Text returned FROM PHP script
            var response = http_account.responseText;
            if(response) {
				//alert(divhandler_account.divtag);
                document.getElementById(divhandler_account.divtag).innerHTML = response;
				if (response == "&nbsp;not valid" && divhandler_account.divtag == "check_email") {
					document.getElementById("submit").disabled = true;
				}
				if (response == "&nbsp;" && divhandler_account.divtag == "check_email") {
					document.getElementById("submit").disabled = false;
				}
            }
        }
    }
//wishlist menu functions:
function menu_ws(e, id) {

  // step 1
  var tempX = 0;
  var tempY = 0;
  var offset = 5;

  // step 2
  //obj = getObject( obj );
  //if (obj==null) return;

  // step 3
  if (document.all) {
    tempX = event.clientX + document.body.scrollLeft;
    tempY = event.clientY + document.body.scrollTop;
  } else {
    tempX = e.pageX;
    tempY = e.pageY;
  }
	//alert(tempX+" - "+tempY);
  // step 4
  if (tempX < 0){tempX = 0}
  if (tempY < 0){tempY = 0}
	document.getElementById("bomb_floating").style.left = tempX+"px";
	document.getElementById("bomb_floating").style.top = tempY+"px";
	document.getElementById("bomb_floating").style.display = "block";
	document.getElementById("mc_wishlist_id").value = id;
//alert(tempX+" ... "+tempY);
  // step 5
  //obj.style.top  = (tempY + offset) + 'px';
  //obj.style.left = (tempX + offset) + 'px';

  // step 6
  //displayObject( objHolder, true );
  }
function change_bomb(pr) {
	var mc_wishlist_id = document.getElementById("mc_wishlist_id").value;
	document.getElementById("bomb_floating").style.display="none";
	var more = "mc_wishlist_id="+mc_wishlist_id+"&share="+pr;
	//alert(more);
	sendRequest_account(more,"share_"+mc_wishlist_id);
}
function del(id) {
	var agree = confirm("Are you sure?");
	if (agree) {
		var more = "mc_wishlist_id="+id+"&action=delete";
		sendRequest_account(more,"registry");
	}
	else {
		return false;
	}	
}
function view_registry(id) {
	var more = "action=view&mc_wishlist_id="+id;
	sendRequest_account(more,"registry");
}
function remove_product_wl(wishlist_product_id, wl_id) {
	var more = "action=remove_product&mc_wishlist_product_id="+wishlist_product_id+"&wl_id="+wl_id;
	sendRequest_account(more,"registry");
}
function update_wl(wl_id) {
	var more = "action=update&wl_id="+wl_id;
	//get form object
	var objForm = document.update_full_cart;
	var length = objForm.length;
	var str = "";
	var arr = new Array();
	var z = 0;
	for(i=0;i<length;i++) {
		//str+=objForm.elements[i].name+"="+objForm.elements[i].value+"\n";
		if (objForm.elements[i].name.indexOf("qty") == 0) {
			var arr_num = objForm.elements[i].name.replace("qty[","");
			arr_num = arr_num.replace("]","");
			//arr_num = parseInt(arr_num);
			arr[z] = objForm.elements[i].value+"-"+arr_num;
			z++;
		}
	}
	more += "&arr_id="+arr;
	//alert(more);
	sendRequest_account(more,"registry");
}
function cursor_on(obj) {
	obj.style.cursor="pointer";	
}
function cursor_out(obj) {
	obj.style.cursor="none";	
}
function get_address(object) {
	var id = object.value;
	var prefx = "";
	if (object.name == "ship_address") prefx = "s_";
	if (object.name == "bill_address") prefx = "b_";
	//if (id != "") {
		var url = "filebin/ajax/php/jsaddress.php?id="+id;
		var xml = new JKL.ParseXML(url);
		var data = xml.parse();
		var output = "";
		var address = data.instance;
		for (field in address) {
			//output = output + field + ": " + address[field] + "\n";
			if (document.getElementById(prefx+field)) {
				//alert(field+": "+address[field]);
				document.getElementById(prefx+field).value = address[field];
			}
			if (prefx == "s_" && field == "zip") {
				ship_zip(address[field], null);
			}
		}
		if (id == "") document.getElementById(prefx+"state").value = "";
	//}
}
var div_post="ajax_account";
function select_tab(obj,more,divtag) {
	if (obj.className != "account_selected") {
		var a_tag = document.getElementById("manage_account").getElementsByTagName("a");
		for(i=0;i<a_tag.length;i++) {
			if (a_tag[i].className == "account_selected") {
				a_tag[i].className = "account";
				//alert(a_tag[i].id);
			}
		}
		obj.className = "account_selected";
	}										
	sendRequest_account(more,divtag);
}
function select_ws_onload() {
	if (document.getElementById("wish_list")) {
		var obj = document.getElementById("wish_list");	
		select_tab(obj,"action=registry","ajax_account");
	}
}
function account_post_form(obj, type) {
	//obj - form object, type - what to do, div - what div to update
	var poststr="";
	for (var i=0; i<obj.elements.length; i++) {
		if (obj.elements[i].type == "select-multiple" || obj.elements[i].type == "select-single") {
			var r = new Array();
			for (var k = 0; k < obj.elements[i].options.length; k++) {
				if (obj.elements[i].options[k].selected) {
					r[r.length] = obj.elements[i].options[k].value;
				}
			}
			poststr += obj.elements[i].name+"="+encodeURIComponent(r);
			if (i<obj.elements.length - 1) poststr += "&";
		}
		else {
			poststr += obj.elements[i].name+"="+encodeURIComponent(obj.elements[i].value);
			if (i<obj.elements.length - 1) poststr += "&";
		}
	}
	poststr += "&action_type="+type;
	//alert(poststr);
	//validation type;
	if (type == "account_info") {
		if (register_form()) {
			document.getElementById(div_post).innerHTML = "<img src='filebin/images/loading_apple.gif' border='0' style='padding:0' />&nbsp;Loading...";
			post_form_aj('filebin/ajax/php/account_post_form.php', poststr);
		}
	}
	else {
		document.getElementById(div_post).innerHTML = "<img src='filebin/images/loading_apple.gif' border='0' style='padding:0' />&nbsp;Loading...";
		post_form_aj('filebin/ajax/php/account_post_form.php', poststr);
	}
	return false;
}
function post_form_aj(url, parameters) {
	http_request_post = false;
	if (window.XMLHttpRequest) { // Mozilla, Safari,...
	 http_request_post = new XMLHttpRequest();
	 if (http_request_post.overrideMimeType) {
		http_request_post.overrideMimeType('text/plain');
	 }
	} else if (window.ActiveXObject) { // IE
	 try {
		http_request_post = new ActiveXObject("Msxml2.XMLHTTP");
	 } catch (e) {
		try {
		   http_request_post = new ActiveXObject("Microsoft.XMLHTTP");
		} catch (e) {}
	 }
	}
	if (!http_request_post) {
	 alert('Cannot create XMLHTTP instance');
	 return false;
	}
	
	http_request_post.onreadystatechange = return_content;
	http_request_post.open('POST', url, true);
	http_request_post.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	http_request_post.setRequestHeader("Content-length", parameters.length);
	http_request_post.setRequestHeader("Connection", "close");
	http_request_post.send(parameters);
}
function return_content() {
   //alert(http_request_post.status);
  if (http_request_post.readyState == 4) {
	 if (http_request_post.status == 200) {
		result = http_request_post.responseText;
		if (div_post != "") document.getElementById(div_post).innerHTML = result;
	 } else {
		alert('There was a problem with the request.');
	 }
  }
}
function register_form() {
	var err = "";
	if (!validateNotEmpty(document.getElementById("fname").value)) err += "First Name is missing.\n";
	if (!validateNotEmpty(document.getElementById("lname").value)) err += "Last Name is missing.\n";
	if (!validateNotEmpty(document.getElementById("password_reg").value)) err += "Password is missing.\n";
	if (!validateNotEmpty(document.getElementById("email_reg").value)) err += "Email is missing.\n";
	if (err == "") {
		return true;
	}
	else {
		alert(err);
		return false;
	}
}

function validateNotEmpty( strValue ) {
   var strTemp = strValue;
   strTemp = trimAll(strTemp);
   if(strTemp.length > 0){
	 return true;
   }
   return false;
}
function trimAll( strValue ) {
 var objRegExp = /^(\s*)$/;
	//check for all spaces
	if(objRegExp.test(strValue)) {
	   strValue = strValue.replace(objRegExp, '');
	   if( strValue.length == 0)
		  return strValue;
	}
   //check for leading & trailing spaces
   objRegExp = /^(\s*)([\W\w]*)(\b\s*$)/;
   if(objRegExp.test(strValue)) {
	   //remove leading and trailing whitespace characters
	   strValue = strValue.replace(objRegExp, '$2');
	}
  return strValue;
}
function change_input_type(oldObject, oType, keepValue) {
     //keep_value 1 is yes 0 is no 
    var newObject = document.createElement('input'); 
    newObject.type = oType; 
    if(oldObject.size) newObject.size = oldObject.size; 
    if (keepValue == 1) if(oldObject.value) newObject.value = oldObject.value; 
    if(oldObject.name) newObject.name = oldObject.name; 
    if(oldObject.id) newObject.id = oldObject.id; 
    if(oldObject.className) newObject.className = oldObject.className; 
    oldObject.parentNode.replaceChild(newObject,oldObject);
    newObject.focus(); 
    newObject.select(); 
    return newObject; 
}
var shippingTable;
var shippingTableBody;
var billingTable;
var billingTableBody;
function init_table_drop() {
    shippingTable = document.getElementById("shippingTable");
    shippingTableBody = shippingTable.tBodies[0];
    billingTable = document.getElementById("billingTable");
    billingTableBody = billingTable.tBodies[0];
	//alert(theTableBody.rows.length);
}
function insertTableRow_account(where,cell1,cell2,type) {
	//alert(where);
	if (type == "ship") var newRow = shippingTableBody.insertRow(where);
	if (type == "bill") var newRow = billingTable.insertRow(where);
	var newCell;
	newCell = newRow.insertCell(0);
	newCell.innerHTML = cell1;
	newCell.className = "checkoutCell";
	newCell.valign="middle";
	//alert(cell1);
	//add message place for member here
	var newCell;
	newCell = newRow.insertCell(1);
	newCell.innerHTML="&nbsp;";
	
	var newCell;
	newCell = newRow.insertCell(2);
	newCell.innerHTML=cell2;
	newCell.className = "checkoutCell";
	
	var newCell;
	newCell = newRow.insertCell(3);
	newCell.innerHTML="&nbsp;";
	
}
function deleteRow_accout(where, type) {
	if (type == "ship") shippingTableBody.deleteRow(where);
	if (type == "bill") billingTable.deleteRow(where);	
}
function login_account_ssl() {
	var more = "";
	if (document.getElementById("account_email")) {
		more += "email="+encodeURIComponent(document.getElementById("account_email").value);
		document.getElementById("account_email").disabled = true;
	}
	if (document.getElementById("account_password")) {
		if (more != "") more+="&";
		more += "password="+encodeURIComponent(document.getElementById("account_password").value);
		document.getElementById("account_password").disabled = true;
	}
	//apply class, greyt out fields?
	//jkl to login
	var url = "filebin/ajax/php/mini_login.php?"+more;
	//alert(url);
	var xml = new JKL.ParseXML(url);
	var data = xml.parse();
	if (data) {
		var result = data.result;
		if (result) {
			init_table_drop();
			if (result["error"] != 0) {
				document.getElementById("account_password").disabled = false;
				document.getElementById("account_email").disabled = false;
				alert(result["error"]);	
			}
			if (result["html_return"] != 0) {
				//alert(result["html_return"]);
				document.getElementById("login_area_checkout").innerHTML = result["html_return"];
				//redy to insert:
				insertTableRow_account(1,"Addresses",result["ship_drop_down"],"ship");
				insertTableRow_account(0,"Addresses",result["bill_drop_down"],"bill");
				//insertTableRow_account(0);
				//alert("AAAAA");
				//insertTableRow(1,"Saved Addresses","TEST",billingTableBody);
			}
		}
	}
}
//ACCOUNT STUFF ON A TOP
function logout_account() {
	//supcart1
	if (page_loaded) {
		process_account("logout")
		if (document.getElementById('overlay') && document.getElementById('overlay').style.display != 'none') {
			close_adding_layer();
			ToggleFloatingLayer('FloatingLayer', 0, '');
			close_div();
			close_reg();
		}
	}
	//http_account.open("get", "filebin/ajax/php/mini_account.php?"+more);
	
	//var more = "action=logout";
	//sendRequest_account(more, "account_links");
	//remove rows if checkout
}
function login_account(objid) {
	if (page_loaded) {
		if (objid) document.getElementById(objid).style.display = "none";
		if (document.getElementById('overlay') && document.getElementById('overlay').style.display != 'none') {
			close_adding_layer();
			ToggleFloatingLayer('FloatingLayer', 0, '');
			close_div();
			close_reg();
		}
		var obj_link = document.getElementById("a_login_account");
		if (obj_link.className != "account_link") {
			showOverlay();
			obj_link.className = "account_link";
			document.getElementById("a_create_account").className = "account_link_back";
			var type_div = "login_layer";
			show_account_layer(type_div);
			refresh_user_account();
		}
		else {
			hideOverlay();
			obj_link.className = "account_link_back";
			hide_account_layers();
		}
	}
}
function create_account(objid) {
	//alert(obj_link.className);
	if (page_loaded) {
		if (objid) document.getElementById(objid).style.display = "none";
		var obj_link = document.getElementById("a_create_account");
		if (obj_link.className != "account_link") {
			showOverlay();
			obj_link.className = "account_link";
			document.getElementById("a_login_account").className = "account_link_back";
			var type_div = "create_account_layer";
			show_account_layer(type_div);
			refresh_user_account();
		}
		else {
			hideOverlay();
			obj_link.className = "account_link_back";
			hide_account_layers();
		}
	}
}
function hide_account_layers() {
	if (!document.getElementById("account_around")) {
		if (document.getElementById("account_layer")) document.getElementById("account_layer").style.display = "none";
		if (document.getElementById("account_layer_msg")) {document.getElementById("account_layer_msg").innerHTML = "";document.getElementById("account_layer_msg").style.display = "none";}
		if (document.getElementById("create_account_layer")) document.getElementById("create_account_layer").style.display = "none";
		if (document.getElementById("login_layer")) document.getElementById("login_layer").style.display = "none";
	}
}
function reset_account_layer() {
	if (document.getElementById("a_create_account")) document.getElementById("a_create_account").className = "account_link_back";
	if (document.getElementById("a_login_account")) document.getElementById("a_login_account").className = "account_link_back";
	hide_account_layers();
}
function refresh_user_account() {
	if (document.getElementById("account_links")) {
		//document.getElementById("account_links").style.display = "none";
		document.getElementById("account_links").style.zIndex = 5001;
		//document.getElementById("account_links").style.position = "relative";
		//document.getElementById("account_links").style.display = "block";
	}
}
function show_account_layer(type_div) {
	hide_account_layers();
	var obj = document.getElementById("account_layer");
	var parent_obj = document.getElementById("account_links");
	var coor = findPos(parent_obj);
	//alert(coor[1])
	//alert(coor[0]+" - "+coor[1]);
	var left = coor[0] + 300;
	obj.style.left = left+"px";
	var top = coor[1] + 20;
	obj.style.top = top+"px";
	//if (obj.style.display == "none" || obj.style.display == "") {
		if (document.getElementById(type_div)) document.getElementById(type_div).style.display = "block";
		obj.style.display = "block";
		if (type_div == "login_layer") {if (document.getElementById("account_email")) document.getElementById("account_email").focus();}
		else {if (document.getElementById("fname")) document.getElementById("fname").focus();}
		
	//}
	//else {
	//	if (document.getElementById(type_div)) document.getElementById(type_div).style.display = "none";
	//	obj.style.display = "none";
	//}
}
function reveal_account() {
	if (document.getElementById("account_layer")) {
		document.getElementById("account_layer").style.display = "block";
		document.getElementById("login_layer").style.color = "red";
		if (document.getElementById("login_layer")) document.getElementById("login_layer").style.display = "block";
		if (document.getElementById("create_account_layer")) document.getElementById("create_account_layer").style.display = "block";
	}
}
function cleanup_account() {
	if (document.getElementById("account_layer_msg")) document.getElementById("account_layer_msg").innerHTML = "";
	if (document.getElementById("account_email")) document.getElementById("account_email").value = "";
	if (document.getElementById("account_password")) document.getElementById("account_password").value = "";
	if (document.getElementById("keep_login_login")) document.getElementById("keep_login_login").checked = false;
}
function process_account(action) {
	document.getElementById("account_layer_msg").innerHTML = "";
	var more = "action="+action+"&";
	if (action == "logout") {
		document.getElementById("account_links").innerHTML = "<img src='filebin/images/loading_apple.gif' border='0' style='padding:0' />&nbsp;";
	}
	if (action == "login") {
		document.getElementById("account_layer_msg").innerHTML = "<span style='color:green'>Logging...</span>";
		if (document.getElementById("account_email")) {
			more += "email="+encodeURIComponent(document.getElementById("account_email").value);
			//document.getElementById("account_email").disabled = true;
		}
		if (document.getElementById("account_password")) {
			if (more != "") more+="&";
			more += "password="+encodeURIComponent(document.getElementById("account_password").value);
			//document.getElementById("account_password").disabled = true;
		}
		if (document.getElementById("keep_login_login") && document.getElementById("keep_login_login").checked) {
			if (more != "") more+="&";
			more += "keep_login=Yes";
		}
		//alert(more);
	}
	if (action == "create") {
		document.getElementById("account_layer_msg").innerHTML = "<span style='color:green'>Creating Account...</span>";
		if (document.getElementById("fname")) {
			if (more != "") more+="&";
			more += "fname="+encodeURIComponent(document.getElementById("fname").value);
			//document.getElementById("account_email").disabled = true;
		}
		if (document.getElementById("lname")) {
			if (more != "") more+="&";
			more += "lname="+encodeURIComponent(document.getElementById("lname").value);
			//document.getElementById("account_email").disabled = true;
		}
		if (document.getElementById("email_reg")) {
			if (more != "") more+="&";
			more += "email_reg="+encodeURIComponent(document.getElementById("email_reg").value);
			//document.getElementById("account_email").disabled = true;
		}
		if (document.getElementById("password_reg")) {
				if (more != "") more+="&";
				more += "password_reg="+encodeURIComponent(document.getElementById("password_reg").value);
				//document.getElementById("account_password").disabled = true;
		}
		if (document.getElementById("password_con")) {
				if (more != "") more+="&";
				more += "password_con="+encodeURIComponent(document.getElementById("password_con").value);
				//document.getElementById("account_password").disabled = true;
		}
		if (document.getElementById("keep_login_create") && document.getElementById("keep_login_create").checked) {
			if (more != "") more+="&";
			more += "keep_login=Yes";
		}
	}
	if (more != "") {
		var url = "filebin/ajax/php/mini_login_account.php?"+more;
		//alert(url);
		var xml = new JKL.ParseXML(url);
		var data = xml.parse();
		if (data) {
			var result = data.result;
			if (result) {
				if (action != "logout") {
					//redirect if on account page
					if (typeof(reveal_account_var) != "undefined") if (result["success"] == 1) window.location.href="/pages/account/"+reveal_account_var+".php";
					if (result["success"] == 1) {
						document.getElementById("account_layer").style.display = "none";
						cleanup_account();
						document.getElementById("account_links").innerHTML = result["div_back"];
						if (result["div_registry"]) {
							if (document.getElementById("registry_list")) document.getElementById("registry_list").innerHTML = result["div_registry"];
						}
						if (document.getElementById('overlay').style.display != 'none')hideOverlay();
						////////
						var url = document.URL;
						if (url.indexOf("checkout.php")>0) {
							init_table_drop();
							//redy to insert:
							insertTableRow_account(1,"Addresses",result["ship_drop_down"],"ship");
							insertTableRow_account(0,"Addresses",result["bill_drop_down"],"bill");
						}
						////////
					}
					else {
						document.getElementById("account_layer_msg").innerHTML = result["error"];
						document.getElementById("account_layer_msg").style.display = "block";
					}
				}
				else {
					//logout
					if (result["success"] == 1) {
						document.getElementById("account_links").innerHTML = result["div_back"];
						var url = document.URL;
						if (url.indexOf("checkout.php")>0) {
							init_table_drop();
							//redy to insert:
							deleteRow_accout(1, "ship");
							deleteRow_accout(0, "bill");
						}
						if (result["div_registry"]) {
							if (document.getElementById("registry_list")) document.getElementById("registry_list").innerHTML = result["div_registry"];
						}
						if (document.getElementById('overlay').style.display != 'none') hideOverlay();
					}
				}
			}
		}
	}
}
function toggle_forgot_password() {
	if (document.getElementById("forgot_password_account")) {
		var obj = document.getElementById("forgot_password_account");
		if (obj.style.display != "block") obj.style.display = "block";
		else obj.style.display = "none";
	}
}
function get_password() {
	if (document.getElementById("send_email_forgot")) {
		var more = "action=retrieve_password&email="+encodeURIComponent(document.getElementById("send_email_forgot").value);
		var url = "filebin/ajax/php/mini_login_account.php?"+more;
		var xml = new JKL.ParseXML(url);
		var data = xml.parse();
		if (data) {
			var result = data.result;
			if (result) {
				if (result["success"] == 1) {
					document.getElementById("account_layer_msg").style.display = "block";
					document.getElementById("account_layer_msg").innerHTML  = result["div_back"];
				}
				else {
					document.getElementById("account_layer_msg").style.display = "block";
					document.getElementById("account_layer_msg").innerHTML  = result["error"];
				}
			}
		}
	}
}
function close_account_layer() {
	try {
		objOverlay = document.getElementById("overlay");
		hide_account_layers();
		reset_account_layer();
		if (objOverlay.style.display != 'none') objOverlay.style.display = 'none';
	}
	catch(e) {
		//oops error	
	}
}
function account_logout_alert() {
	alert("You have been logged out. Thank you for shopping."+"\n\n"+"You will now be returned to the home page."+"\n");
	document.location.href = logout_url_redirect;
}