// last edit 6.21.2011 3:52pm
// by Nolan

var historyState;
var previousSearch;
var inItemLoad = false;

function moveTo(div_id, modifier) {
	var offset = $(div_id).offset();
	var top = offset.top;
	if(modifier != "" && modifier != undefined) {
		top += modifier;
		log("modified!");
	}

	log("scrolling to: " + offset.top);
	$('html, body').animate({scrollTop: top}, 800, 'linear', function() { log('done moveTo'); });
}

function clearKeywordSearch() {
	$('#keywordsearch').val('');
}

function loadInNewWindow(item_id) {
	window.open("/viewinwindow.php?item_id=" + item_id);
}

function sidemarkAllResults() {
	log("time to sidemark all");
	checkAllPrettyCheckboxes(this,$(body));
	if($("#sidemarkall").attr('checked') == true) {
		log("checking all the boxes!");
		$(".itemsidemarklabel").each(function() {
			$(this).click();
		});
		sidemarkSelected();
	} else {
		log("unchecking all the boxes!");
		$(".itemsidemark").each(function() {
			$(this).attr('checked',false);
		});
	}
}

// Account Creation Routine
function submitNewAccount(action) {
	clearError2();
	log("Starting create account");
	var fname = $("#fname").val();if(fname == "* -- First Name --")fname="";
	var lname = $("#lname").val();if(lname == "* -- Last Name --")lname="";
	var email = $("#email").val();if(email == "* -- Email --")email="";
	var phone = $("#phone").val();if(phone == "-- Phone Number --")phone="";
	var address = $("#address").val();if(address == "-- Address --")address="";
	var city = $("#city").val();if(city == "-- City --")city="";
	var state = $("#state").val();if(state == "-- State --")state="";
	var zip = $("#zip").val();if(zip == "* -- Zip / Postal Code --")zip="";
	var resale = $("#resale").val();if(resale == "-- Resale Number --")resale="";
	var firmtype = $("#firmtype").val();
	var title = $("#title").val();
	var username = $("#username").val();if(username == "Login ID")username="";
	var pass1 = $("#pass1").val();if(pass1 == "Password")pass1="";
	var pass2 = $("#pass2").val();if(pass2 == "Confirm Password")pass2="";
	log ("email = " + email);

	$.post("createaccount.php",
	{
		action: action,
		fname: fname,
		lname: lname,
		email: email,
		phone: phone,
		address: address,
		city: city,
		state: state,
		zip: zip,
		resale: resale,
		firmtype: firmtype,
		title: title,
		username: username,
		pass1: pass1,
		pass2: pass2
	},
	function(data) {
		log("Code return is: " + data.code + " and action is: " + action);
		if(data.code == "missing field") {
			if(data.missing_fname == "true") $('#fname').css('background-image','url(/images/inputfield_ON.png)');
			if(data.missing_lname == "true") $('#lname').css('background-image','url(/images/inputfield_ON.png)');
			if(data.missing_email == "true") $('#email').css('background-image','url(/images/inputfield_ON.png)');
			if(data.missing_zip == "true") $('#zip').css('background-image','url(/images/inputfield_ON.png)');
			if(data.missing_username == "true") $('#username').css('background-image','url(/images/inputfield_ON.png)');
			if(data.missing_pass1 == "true") $('#pass1').css('background-image','url(/images/inputfield_ON.png)');
			if(data.missing_pass2 == "true") $('#pass2').css('background-image','url(/images/inputfield_ON.png)');

			setError2("Please Enter All Required Fields");
		} else if(data.code == "passwords don't match") {
			setError2("Passwords Do Not Match");
		} else if(data.code == "username already exists") {
			setError2("This username is already in use");
		} else if(data.code == "success" && action == "update") {
			log ("Updating existing account");
			$('#loadmyaccountcontent').slideUp('fast',function(){
				$('#body_content').load('/myaccount_new.php',function(){
					$('#loadmyaccountcontent').hide(0,function(){
						restoreEvents();
						$('#loadmyaccountcontent').slideDown(400);
					});
				});
			});
		} else {
			log ("Creating new account");
			createCookie("user_id", data.oid, '');
                        createCookie("session_id", data.session_id, '');
                        createCookie("fname", fname, '');
                        createCookie("lname", lname, '');
			$('#nav').load('/loadNav.php');
			$('#body_content').load('myaccount_new.php'); 
			//$('#body_head').load('/4block_head.php'); 
			$('#9block_content').hide(); 
			$('#9block_head').hide(); 
			$('#body_content').show(); 
			$('#body_head').show();
		}
	}
	, "json");
}

function setError(error_string, error_id) {
	if(error_id == undefined || error_id == "") {
		error_id = "#error_message";
	}
	log("sending error \"" + error_string + "\" to " + error_id);
	$(error_id).html(error_string);
	$(error_id).stop();
	$(error_id).fadeIn('slow');
}

function clearError(error_id) {
	if(error_id == undefined || error_id == "") {
		error_id = "#error_message";
	}
	$(error_id).hide();
	$(error_id).html("");
	
	log("cleared error in " + error_id);
}

function setError2(error_string) {//needed for pages with more than one error message
        $('#error_message2').html(error_string);
        $('#error_message2').fadeIn('slow');
}

function clearError2() {
        $('#error_message2').fadeOut('slow', function() {
                $('#error_message2').html("");
        });
}


function clearall() {
	$(":input")
		.not(':button, :submit, :hidden')
		.val('');
}


 
		function moveme(arg1, arg2, index) {
                      //test if we are already here
                        var ctop = $('#9block').css('top');
                        var cleft = $('#9block').css('left');
                        //alert(ctop + " and " + cleft + "," + arg1 + "," + arg2);
                        if( ctop == arg1 + 'px' && cleft == arg2 + 'px') {
                                //alert("hit");
                                $('#displayimage_content').css('z-index',200);
				
                                $('#displayimage_content').fadeIn('fast');
                        }
			
			//figure out distance to travel
			var position = $('#9block').position();
			var distance1 = arg1 - position.top;
			var distance2 = arg2 - position.left;
			if(distance1 < 0) distance1 *= -1;
			if(distance2 < 0) distance2 *= -1;
			
			var totald = distance1 + distance2;
			if(distance1 > distance2) {
				totald = distance1;	
			} else{
				totald =distance2;
			}
			
			totald *= 4;
			log("arg1:" + arg1);
			log("arg2:" + arg2);
			log("ptop:" + position.top);
			log(distance1);
			log(distance2);
			log(totald);

			$('#displayimage').attr('src','/images/9blockphotos/' + index + '_full.jpg');
                        $('#9block').stop();
                        $('#9block').animate({
                                top: arg1,
                                left: arg2
                        }, totald, function() {
                                // Animation complete.
                        });
                }
                
function showimage(image) {
	$('#displayimage').attr('src','/images/9blockphotos/' + image + '_full.jpg');
	$('#displayimage').load(function() {
		$('#displayimage_content').css('z-index',200);
		$('#displayimage_content').fadeIn('fast');
	});
}

function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function eraseCookie(name) {
	createCookie(name,"",-1);
	//document.cookie = name+"; path=/; expires=Thu, 01-Jan-1970 00:00:01 GMT";
}

function login() {
	clearError();log ("clearing error");
	var username = $('#login').val();
	var pword = $('#password').val();
	var rememberme=$('#rememberme:checked').val();
	if (rememberme == "on")
		var days=1460;
	else
		var days="";

	if (username != "" && pword != ""){
		$.ajax({
			url: "login_new.php",
			type: "post",	
			data: "username=" + username + "&pword=" + pword,
			dataType: 'json',	
			success: function(result){
				if(result.success == "true"){//set userid, cookie, fname and lname and get rid of login box
					createCookie("user_id", result.user_id, days);
					createCookie("session_id",result.session_id, days);
					createCookie("fname",result.fname, days);
					createCookie("lname",result.lname, days);
					$('#login_content').slideUp('fast',function() { $('#login_content').css('z-index',-1000); });
					setHistory("");
					setHistory("catalog");
					$("#nav").load("/loadNav.php");
					//window.location("#catalog");
					
					var test = readCookie("user_id");
					//alert("output: " + test);

				} else {
					setError(result.error);
				}
			}
		});
	}else{
		setError("Please enter username and password.");
	}
}

function logout() {
	clearError();
	eraseCookie("user_id");
	eraseCookie("session_id");
	eraseCookie("fname");
	eraseCookie("lname");
	eraseCookie("PHPSESSID");

	var cookies = document.cookie.split(";");
	for (var i = 0; i < cookies.length; i++)
	  eraseCookie(cookies[i].split("=")[0]);

	window.location='/index.php';
}

function clearallCookies() {
	var cookies = document.cookie.split(";");
        for (var i = 0; i < cookies.length; i++)
          eraseCookie(cookies[i].split("=")[0]);
}

function forgotpassword() {
	
	clearError("#error_message_forgot");
	var email=$('#address').val();
	log("email is: " + email);
	if (email == ""){
		setError("Please enter an email address below", "#error_message_forgot");
	} else {
		$.ajax({
			url: "forgotpassword.php",
			type: "post",
			data: "action=sendinfo&email=" + email,
			success: function(result){
				setError(result, "#error_message_forgot");
			}
		});
	}
}

function hideACCOUNTinfo() {
	if ( $('#ACCOUNTinfo').css('display') == "block" ){
		$('#ACCOUNTinfo').slideUp();
		$('#ACCOUNTtogglea').attr('src','images/show.gif');
		$('#ACCOUNTtoggleb').attr('src','images/showON.gif');
	}
	else{
		$('#ACCOUNTinfo').slideDown();
	        $('#ACCOUNTtogglea').attr('src','images/hide.gif');
	        $('#ACCOUNTtoggleb').attr('src','images/hideON.gif');
	}
}


function hidePROJECTinfo() {
	if ( $('#PROJECTinfo').css('display') == "block" ){
		$('#PROJECTinfo').slideUp('slow');
		$('#PROJECTtogglea').attr('src','images/show.gif');
                $('#PROJECTtoggleb').attr('src','images/showON.gif'); 
	}
	else{
		$('#PROJECTinfo').slideDown('slow');
	        $('#PROJECTtogglea').attr('src','images/hide.gif');
	        $('#PROJECTtoggleb').attr('src','images/hideON.gif');
	}
}


function hideSEARCHcritera() {
	if ( $('#SEARCHcritera').css('display') == "block" ){
		$('#SEARCHcritera').slideUp('slow');
		$('#SEARCHtogglea').attr('src','images/show.gif');
		$('#SEARCHtoggleb').attr('src','images/showON.gif');
	}
	else{
		$('#SEARCHcritera').slideDown('slow');
        $('#SEARCHtogglea').attr('src','images/hide.gif');
        $('#SEARCHtoggleb').attr('src','images/hideON.gif');
	}
}



function loadSearch(mainCat, mainCompany) {
	$('#9block_content').hide();
        $('#9block_head').hide();
	$('#body_content').show();
	log("loading: " + mainCat);

	//alert("company: " + mainCompany);

	$('#body_content').load('searchCriteria.php?cat=' + mainCat, function() {
		restoreEvents();

		//check the company field!
		//$('#label_for_company_' + mainCompany).click();
		if(mainCompany != '' && mainCompany != null) {
			var $checkbox = $('#company_' + mainCompany);
			if($.browser.webkit == true) { 
				$('#label_for_company_' + mainCompany).click(); 
				$checkbox.prop('checked', !$checkbox[0].checked); 
			} else { 
				$('#label_for_company_' + mainCompany).click(); 
			}
		}

		//alert("allcats: " + $("#allcats").val());
		loadThumbsFromSearch('','','',$("#allcats").val());
	
		$('#keywordsearch').keydown(function(event) {
                	if(event.keyCode == '13') {
                	        log("Enter pressed");
				loadThumbsFromSearch();
                	}
        	});
	});
}

function loadThumbsFromSearch(size,sort,fabric,staticcats) {
	var companies = '';
	var subcats = '';
	var keyword = '';
	
	if(size == '' || size == undefined) {
		var tSize = readCookie("itemThumbnailSize");
		log("tSize is: " + tSize);
		if(tSize != "" && tSize != "undefined") {
			size = tSize;
		} else {
			size = "small";
		}
	} else {
		//store the size in a cookie
		createCookie("itemThumbnailSize",size,"");
	}

	if(sort == '') {
		sort == "alpha";
	}	

	$(".companysearch").each(function() {
		if($(this).is(':checked')) {
			companies += $(this).attr('id') + '^';
		}
	});
	
	$(".subcatsearch").each(function() {
		if($(this).is(':checked')) {
			subcats += $(this).attr('id') + '^';
		}
	});
	if((subcats == "" || subcats == undefined) && staticcats != "") {
		subcats = staticcats;
	}
	//alert("subcats is: " + subcats);
	
	keyword = escape($('#keywordsearch').val());
	
	//if(keyword != "") $('#keywordsearch').val("");

	//company only selected???
	if(companies != "" && subcats == "") {
		//act like all the cats are selected
		$(".subcatsearch").each(function() {
			subcats += $(this).attr('id') + '^';
		});
	}
	if(subcats == undefined) subcats = $("#allcats").val();

	//alert("subcats is: " + subcats);

	subcats = subcats.replace(/_and_/g,"%26");

	log(companies + ' and ' + subcats + ' and ' + keyword + ' and ' + size + ' and ' + sort);

	if(previousSearch == undefined || previousSearch != 'loadThumbsFromSearch.php?sort=' + sort + '&size=' + size + '&companies=' + companies + '&subcats=' + subcats + '&keyword=' + keyword + '&fabric=' + fabric) {
		$("#searchResults").html('<p align="center"><img src="/images/ajax-loader.gif" /><br />Loading Search Results</p>');
		previousSearch = 'loadThumbsFromSearch.php?sort=' + sort + '&size=' + size + '&companies=' + companies + '&subcats=' + subcats + '&keyword=' + keyword + '&fabric=' + fabric
		//alert("starting to load thumbs with: " + previousSearch);
		//alert($.browser);
		log("starting to load thumbs with: " + previousSearch);
		$("#searchResults").load('loadThumbsFromSearch.php?sort=' + sort + '&size=' + size + '&companies=' + companies + '&subcats=' + subcats + '&keyword=' + keyword + '&fabric=' + fabric, function(data) {
			restoreEvents();
			log("search results fully loaded");
		});
	} else {
		log("backed out of search");
	}
	//store this to history
	//setHistory("catalog|loadsearch|" + historyState[2] + "|" + subcats + "|" + companies + "|" + sort);
}

function loadFabricSearch(size, sort) {
	log("doing the fabric search");
	var fabricList = "";
	$(".fabricbox").each(function(data) {
		if(this.checked) fabricList += $(this).attr('id') + "|";
	});
	
	var companies = "";
	$(".companysearch").each(function() {
		if($(this).is(':checked')) {
			companies += $(this).attr('id') + '^';
		}
	});

	if(size == '' || size == undefined) {
		var tSize = readCookie("itemThumbnailSize");
		log("tSize is: " + tSize);
		if(tSize != "" && tSize != "undefined") {
			size = tSize;
		} else {
			size = "small";
		}
	} else {
		//store the size in a cookie
		createCookie("itemThumbnailSize",size,"");
	}

	if(fabricList == "" && companies == "") {
		log("no fabrics...loading all!?");
		//$("#searchResults").html("");
		loadThumbsFromSearch(size,sort,'');
		return;
	}
	
	log("fabric list: " + fabricList);
	var companies = "";
	$(".companysearch").each(function() {
		if($(this).is(':checked')) {
			companies += $(this).attr('id') + '^';
		}
	});

	

	if(sort == '') {
		sort == "alpha";
	}
	

	if((previousSearch == undefined || previousSearch != fabricList + "|" + size + "|" + sort + "|" + companies)) {
		log("Loading fabrics: " + fabricList);
		previousSearch = fabricList + "|" + size + "|" + sort + "|" + companies;
		$("#searchResults").load('loadThumbsFromSearch.php?sort=' + sort + '&size=' + size + '&subcats=subcat_fabric^&companies=' + companies + '&fabric=' + fabricList, function(data) {
			restoreEvents();
			log("fabric search results fully loaded");
		});
	} else {
		log("aborted fabric search");
	}
}

function updateproject(index) {
	//check to see if we need to confirm a deletion
	var x=0;
	var projecttodelete=0;
	var deletemessage="";
	while (x < index){
		var deleteproject = x + "deleteproject";
		var name = x + "projectname";		

		deleteproject=$('#' + deleteproject + ':checked').val();
		if (deleteproject == "on"){
			name=$('#' + name).val();
			if (projecttodelete == 0){
				deletemessage=name;
			} else{
				deletemessage=deletemessage + ", " + name;
			}
			projecttodelete++;
		}
		x++;
	}
	if (projecttodelete > 0){
		if (projecttodelete > 1){//replace last comma with an and
			lindex=deletemessage.lastIndexOf(",");
			substringa=deletemessage.slice(0,lindex);
			substringb=deletemessage.slice(lindex);
			substringb=substringb.replace(/,/, " and");
			deletemessage=substringa.concat(substringb);
		}
		var answer=confirm("Do you really want to delete " + deletemessage + "?");
	}
	
	if (answer || projecttodelete==0){//continue if user confirmed deletion or there is no deletion
		x=0;
		while (x < index){
		        var projectid = x + "projectid";
		        var name = x + "projectname";
		        var notes = x + "projectnotes";
			deleteproject = x + "deleteproject";
		
		        projectid=$('#' + projectid).val();
		        name=$('#' + name).val();
		        notes=$('#' + notes).val();
			deleteproject=$('#' + deleteproject + ':checked').val();
			
			if (deleteproject == "on"){
				$.post("projectLIST.php",
				{
					action: 'deleteproject',
					project_id: projectid
				});
			}
			else if (name != ""){
				$.post("projectLIST.php",
			        {
			                action: 'updateproject',
			                project_id: projectid,
			                project_name: name,
			                project_notes: notes
			        });
			}
			x++;
		}
		$('#projectlist').slideUp('slow',function() {
			$('#projectlist').load('myprojects.php',function() {
		        	$('#projectlist').slideDown('slow');
				restoreEvents();
		        });
		});
	}
}

function updateproject2(index) {
	var x=0;
	var itemtodelete=0;
	var deletemessage="";
	while (x < index){
		var deleteitem = x + "deleteprojectitem";
		var itemname = x + "itemname";

		deleteitem=$('#' + deleteitem + ':checked').val();

		if (deleteitem > 0){
			itemname=$('#' + itemname).html();
			if (itemtodelete == 0){
				deletemessage=itemname;
			} else{
				deletemessage=deletemessage + ", " + itemname;
			}
			itemtodelete++;
		}
		x++;
	}

	if (itemtodelete > 0){
		if (itemtodelete > 1){
			lindex=deletemessage.lastIndexOf(",");
			substringa=deletemessage.slice(0,lindex);
	                substringb=deletemessage.slice(lindex);
	                substringb=substringb.replace(/,/, " and");
	                deletemessage=substringa.concat(substringb);
		}
		var answer=confirm("Do you really want to delete " + deletemessage + "?");
	}

	if (answer || itemtodelete == 0){
		var projectname = $('#projectname').val();
	        var projectnotes = $('#projectnotes').val();		
		var projectid = $('#projectoid').val();

		if (projectname != ""){
	                $.post("projects_new.php",
	                {
	                        action: 'updateproject',
	                        projectid: projectid,
	                        projectname: projectname,
	                        projectnotes: projectnotes
		        });
		}

		if (itemtodelete > 0){
			x=0;
			while (x < index){
				deleteitem=$('#' + x + 'deleteprojectitem:checked').val();
				if (deleteitem > 0 && deleteitem != "undefined"){
					$.post("projects_new.php",
					{
						action: 'deleteitem',
						projectitem_id: deleteitem
					});
				}
				x++;
			}
		

		}
		$('#body_content').slideUp('slow',function() {
			$('#body_content').load('myaccount_new.php',function() {
                        	$('#body_content').slideDown('slow');
				restoreEvents();
				setHistory("myaccount");
                        });
                });
	}
}
	
function deleteproject() {
	var answer=confirm("Do you really want to delete this project?");	
	if (answer){
		var projectid=$('#projectoid').val();
		$.post("projects_new.php",
		{
			action: 'deleteproject',
			projectid: projectid
		},
		function(data){
			$('#body_content').slideUp('slow',function() {
				$('#body_content').load('myaccount_new.php',function() {
					
					$('#body_content').slideDown('slow');
					restoreEvents();
				});
			});
		});
	}
}

function createNewProject() {
	var name=$('#newProject').val();
	var id=$('#id').val();

	$.post("createNewProject.php",
	{
		action: 'create',
		newProject: name,
		id: id
	},function(data){
			
	});
	showMyProjects();
}

function selectall() {
	if ($('#selectallcheckbox:checked').val() == "on")
	{
	        $(":checkbox")
        	        .attr('checked','checked');
	} else {
		$(":checkbox")
			.removeAttr('checked','');
	}
}

function enablePrettyCheckboxes() {
        $(".prettyCheckBox").prettyCheckboxes({
                display: 'inline'
        });
}

function restoreEvents() {
	enablePrettyCheckboxes();
	$("img.a").hover(
        	function() {
			log('hoverstarted');
                      	$(this).stop().animate({"opacity": "0"}, "fast");
                },
                function() {
                   	$(this).stop().animate({"opacity": "1"}, "fast");
                }
	);

	$(".fadehover").mouseover(
               	function() {
                        $( "#" + $(this).attr('linkedto') ).stop().animate({"opacity": "0"}, "fast");
                }
        );
        $(".fadehover").mouseout(
               	function() {
                        $( "#" + $(this).attr('linkedto') ).stop().animate({"opacity": "1"}, "fast");
                }
        );
	$('input[placeholder],textarea[placeholder]').placeholder();
}

//variables to control motion
var movingtop = false;
var movingbottom = false;
var movingright = false;
var movingleft = false;
var xmotion = false;
var ymotion = true;
var xmoving = false;
var ymoving = false;

$(document).ready(function() {
	$('#9block').mouseout(function () {
		$('#9block').stop();
		xmoving = false;
		ymoving = false;
	});
	$('#9block').mousemove(function (event) {
		var holder = $("#9block_content").offset();
		var el = $("#9block").offset();
		var X = event.pageX - holder.left;
		var Y = event.pageY - holder.top;
		
		if(Y < 130) {
			//mouse over top
			movingtop = true;
			movingbottom = false;
		} else if(Y > 240) {
			//move over bottom
			movingbottom = true;
			movingtop = false;
		} else {
			movingtop = false;
			movingbottom = false;
		}
		
		if(X < 130) {
			//move over left
			movingleft = true;
			movingright = false;
		} else if(X > 630) {
			//move right
			movingright = true;
			movingleft = false;
		} else {
			movingleft = false;
			movingright = false;
		}
		
		var etop = '';
		var eleft = '';
		
		var pxmoving = xmoving;
		var pymoving = ymoving;
		
		if(movingtop == true && movingbottom == false) {
			etop = 380;
			xmoving = true;
		} else if(movingtop == false && movingbottom == true) {
			etop = -380;
			xmoving = true;
		} else {
			xmoving = false;
		}
		
		if(movingleft == true && movingright == false) {
			eleft = 380;
			ymoving = true;
		} else if(movingleft == false && movingright == true) {
			eleft = -360;
			ymoving = true;
		} else {
			ymoving = false;
		}
		
		if(pxmoving == xmoving && pymoving == ymoving) {
			//no action, we are good
			//log('its all good...sit here');
		} else {
			$("#9block").stop(true);
			//change!!!!
			
			//distance?
			var duration = 0;
			//figure out distance to travel
                        var position = $('#9block').position();
                        var distance1 = etop - position.top;
                        var distance2 = eleft - position.left;
                        if(distance1 < 0) distance1 *= -1;
                        if(distance2 < 0) distance2 *= -1;

                        var totald = distance1 + distance2;
                        if(distance1 > distance2) {
                                totald = distance1;
                        } else {
                                totald =distance2;
                        }
                        totald *= 4;
                        duration = totald;
			
			
			if(xmoving == true && ymoving == true) {
				$("#9block").animate( { top: etop, left: eleft }, duration, 'linear', function() {
					xmoving = false;
					ymoving = false;
				});
			} else if(xmoving == true && ymoving == false) {
				$("#9block").animate( { top: etop }, duration, 'linear', function() {
					xmoving = false;
					ymoving = false;
				});
			} else if(xmoving == false && ymoving == true) {
				$("#9block").animate( { left: eleft }, duration, 'linear', function() {
					xmoving = false;
					ymoving = false;
				});
			}
		}
		
		
		
	});

	$('.formSubmit').keydown(function(event) {
		if(event.keyCode == '13') {
			log("Enter pressed");
			$('#' + $(this).attr('enteron')).click();
		}
	});

	restoreEvents();

	$.history.init(function(hash){
        	log("setting up history");
        	hashArray = hash.split("|");
        	if(hash == "") {
        		// initialize your app
        		//index page...nothing to do
        	} else {
        		log("history restore: " + hash);
        		// restore the state from hash
			if(hash == "catalog") {
				//base level catalog search
				openCatalog();
			} else if(hash == "aboutus") {
				openAboutUs();
			} else if(hash == "photogallery") {
				openGallery();
			} else if(hash == "contactus") {
				log("opening contact us");
				openContactUs();
			} else if(hash == "myaccount") {
				checkLogin(function() { openMyAccountVictory() }, function() { openReasonsToRegister() });
			} else {
				//not a base level result
				if(hashArray[0] == "catalog") {
					//in the catalog area
					if(historyState == undefined || historyState[2] != hashArray[2] || historyState[3] != hashArray[3] || historyState[4] != hashArray[4]) {
						if(hashArray[1] == "loadsearch") {
							if(hashArray[3] == undefined) {
								//just the criteria view
								loadSearch(hashArray[2]);
							} else {
								loadSearch(hashArray[2], hashArray[3]);
								//alert("company added!");
								//we are loading pieces!
								log("in here already?");
								//loadThumbsFromSearch();
							}
						} else if(hashArray[1] == "loadthumbs") {
							
						}
					}
				} else if(hashArray[0] == "static") {
					if(hashArray[1] == "samplesale") {
						if(hashArray[2] == "item") {
							//loadExternal("http://www.offthefloornow.com/scripts/samplesale/itempages/" + hashArray[3] + ".html");
							loadExternal("/static/ssloader.php?mode=item&lotid=" + hashArray[3]);
						} else if(hashArray[2] == "category") {
							//loadExternal("http://www.offthefloornow.com/scripts/samplesale/category_" + hashArray[3] + ".html");
							loadExternal("/static/ssloader.php?mode=category&category=" + hashArray[3]);
						} else {
							//loadExternal("http://www.offthefloornow.com/scripts/samplesale/allcatpage.html");
							loadExternal("/static/ssloader.php?mode=all");
						}
					} else {
						loadStatic(hashArray[1]);
					}
				} else if(hashArray[0] == "myaccount") {
					if(hashArray[1] == "project") {
						showProject(hashArray[2]);
					}
				} else if(hashArray[0] == "finish") {
					openFinishes(hashArray[1]);
				}
			}

        	}
    		historyState = hashArray;
    	},
    	{ unescape: ",/^|" });
});
		
function toggleLoginBox() {
	if( $('#login_content').is(':visible') ) {
		$('#login_content').slideUp('fast');
	} else {
		$('#login_content').css('z-index','19');
		$('#login_content').slideDown('fast');
	}
}


function toggleCollectionBox() {
	if( $('#collection_content').is(':visible') ) {
		$('#collection_content').slideUp('fast');
	} else {;
		$('#collection_content').slideDown('fast');
	}
}

function log(msg) {
    //if (window.console && msg != undefined && msg != "") {
//	console.log(msg);
    //}
}

function linkOnMouseOver(elem) {
	$('#' + elem).mouseover();
}

function linkOnMouseOut(elem) {
	$('#' + elem).mouseout();
}

function checkLogin(victory, failure) {
	$.post("checklogin.php", {}, 
		function(data) {
			log("Login status: " + data.sql);
			log("Login status: " + data.response);
			if(data.response == "true") {
				victory();
			} else {
				failure();
			}
		},
		"json");
}

function openContactUs() {
	resetWorldView();
	$('#login_content').slideUp('fast'); 
	$('#body_content').load('/contactus.php', function() {
		restoreEvents();
	}); 
	//$('#body_head').load('/0block_head.php');
	$('#9block_content').hide(); 
	$('#9block_head').hide(); 
	$('#body_content').show(); 
	$('#body_head').show();
}

function openAboutUs() {
	resetWorldView();
	$('#login_content').slideUp('fast'); 
	$('#body_content').load('/aboutus.php', function() {
		restoreEvents();
	}); 
	//$('#body_head').load('/0block_head.php');
	$('#9block_content').hide(); 
	$('#9block_head').hide(); 
	$('#body_content').show(); 
	$('#body_head').show();
	
}

function openGallery() {
	log("opening gallery");
	resetWorldView();
	$('#login_content').slideUp('fast'); 
	$('#body_content').load('/photogallery.php', function() {
		restoreEvents();
	}); 
	//$('#body_head').load('/0block_head.php');
	$('#9block_content').hide(); 
	$('#9block_head').hide(); 
	$('#body_content').show(); 
	$('#body_head').show();
}

function openCatalog() {
	checkLogin(function() { openCatalogVictory() }, function() { openReasonsToRegister() });
}

function showMyProjects() {
	resetWorldView();
	var action=$('#action').val();
	if (action == "wipesome"){
		$('#loadmyaccountcontent').slideUp(400,function(){
			$('#loadmyaccountcontent').load('myprojects.php', function(){ 
				$('#loadmyaccountcontent').slideDown(400);
				restoreEvents();
			});
		});
	}else if (action == "wipeall"){
		$('#body_content').hide();
		$('#body_content').load('/myaccount_new.php',function(){
			$('#loadmyaccountcontent').load('/myprojects.php',function(){
				restoreEvents();
			});
		});
		$('#body_content').show();
	}
}

function showCatalogFromMyAccount() {
	resetWorldView();
	$('#body_content').load('listcats.php',function(){
		restoreEvents();
		//$('#body_head').load('/10block_head.php',function(){
		//	restoreEvents();
		//});
	});
	setHistory("catalog");
	$('#9block_content').hide();
	$('#9block_head').hide();
	$('#body_content').show();
	$('#body_head').show();
}

function showManageAccount() {
	resetWorldView();
	var action=$('#action').val();
	if (action == "wipesome"){
		$('#loadmyaccountcontent').slideUp(400,function(){
			$('#loadmyaccountcontent').load('manageaccount.php',function(){
				$('#loadmyaccountcontent').slideDown(400);
				restoreEvents();
			});
		});
	}else if (action == "wipeall"){
		$('#body_content').hide();
		$('#body_content').load('/myaccount_new.php',function(){
			$('#loadmyaccountcontent').load('/manageaccount.php',function(){
				$('#body_content').show();
				restoreEvents();
			});
		});
	}
}

function showProjectList() {
	resetWorldView();
	$('#loadmyaccountcontent').slideUp(400,function(){
		$('#loadmyaccountcontent').load('projectLIST.php',function(){
			$('#loadmyaccountcontent').slideDown(400);
			restoreEvents();
		});
	});
}

function showProject(id) {
	var userid=$('#userid').val();
	$.post("projects_new.php", {
		action: "checkuser",
		projectid: id
	},
        function(data) {
	        if (data == "yes"){
	                setHistory("myaccount|project|" + id);
	                resetWorldView();
			$('#9block_content').hide();
			$('#9block_head').hide();
	                $('#body_content').hide();
	                $('#body_content').load('projects_new.php?project_id=' + id ,function(){
	                        restoreEvents();
	                });
	                $('#body_content').show();
	        } else {
	                openMyAccountVictory();
	        }
	});
}

function loadCreateProject() {
	resetWorldView();
	$('#loadmyaccountcontent').slideUp(400,function(){
		$('#loadmyaccountcontent').load('createNewProject.php',function(){
			$('#loadmyaccountcontent').slideDown(400);
			restoreEvents();

			$('#newProject').keydown(function(event) {
                		if(event.keyCode == '13') {
                        		log("Enter pressed");
                        		$('#submitProject').click();
                		}
        		});
		});
	});
}

function openCatalogVictory() {
	previousSearch = "";
	resetWorldView();
	$('#body_content').load('listcats.php', function() {
		restoreEvents();
	}); 
	//$('#body_head').load('/10block_head.php', function() {
	//	restoreEvents();
	//}); 
	$('#9block_content').hide(); 
	$('#9block_head').hide(); 
	$('#body_content').show(); 
	//$('#body_head').show();
	
//setHistory("catalog");
}

function setHistory(hash) {
	jQuery.history.load(hash);
}

function openReasonsToRegister() {
	resetWorldView();
	$('#nav').load('/loadnav.php');
	$('#body_content').load('/reasonstoregister.php',function(){
		restoreEvents();
	}); 
	//$('#body_head').load('/0block_head.php');
	$('#9block_content').hide(); 
	$('#9block_head').hide(); 
	$('#body_content').show(); 
	$('#body_head').show();
}

function openMyAccountVictory() {
	log("opening my account");
	resetWorldView();
	$('#body_content').load('myaccount_new.php', function() {
		//$('#body_head').load('/4block_head.php', function() {
                	restoreEvents();
		//});
	});
	setHistory("myaccount");
	$('#9block_content').hide(); 
	$('#9block_head').hide(); 
	$('#body_content').show(); 
	$('#body_head').show();
}

function loadItemView(holder_id, item_id) {
        //killFloaters();
	if(inItemLoad == true) return;
	inItemLoad = true;

	holder_id = "#viewholder_" + holder_id;
        log("itemid is " + item_id);
        $('.itemviewholder').slideUp('slow');
        
        $(holder_id).html("");
        $(holder_id).css('height',0);
        $(holder_id).show();
        log("made it here");
        $(holder_id).load("view_new.php?item_id=" + item_id, function(data) {
        	var topOffset = $(holder_id).offset();
        	
        	$(holder_id).css('height','');
        	var topAt = topOffset.top;
        	var finalPoint = $(holder_id).offset().top - 160;
        	log("die?");
		log("final point: " + finalPoint + "," + topAt);
        	$(holder_id).hide();
        	$("html, body").animate({scrollTop: finalPoint},"slow");
                
                $(holder_id).slideDown('slow', function() {
                        log("showing...");
                        //build the top grey box
                        var offset = $(holder_id).offset();
                        var top = 0;
                        var left = 0;
                        var height = offset.top;
                        var width = $('body').css('width');
                        var scrollTo = height;
                        var topdiv = "<div onclick='restoreItemView();' id='topfloater' style='display: none; position: absolute; height: " + height + "px; width: 100%; top: 0; left: 0; background-color: #CCCCCC; z-index: 11001; opacity: 0.5; filter: alpha(opacity=80);'>&nbsp;</div>";

                        log("top: " + offset.top);
                        log("height: " + $(holder_id).height());
                        log("bodyheight: " + $(document).height());

                        top = offset.top + $(holder_id).height();
                        height = $(document).height() - top;
                        var bottomdiv = "<div onclick='restoreItemView();' id='bottomfloater' style='display: none; position: absolute; min-height: 120px; height: " + height + "px; width: 100%; top: " + top + "px; left: 0; background-color: #CCCCCC; z-index: 11001; opacity: 0.8; filter: alpha(opacity=80);'>&nbsp;</div>";

                        //log(topdiv);
                        $(topdiv).appendTo("body");
                        //log(bottomdiv);
                        $(bottomdiv).appendTo("body");

                        //var finalPoint = scrollTo - 160;
			//$("html, body").animate({scrollTop: finalPoint},"slow");

                        $('#bottomfloater').fadeIn('slow');
			$('#topfloater').fadeIn('slow');
			inItemLoad = false;
                });
        });

	//store this to history
        //setHistory("catalog|loadsearch|" + historyState[2] + "|" + historyState[3] + "|" + historyState[4] + "|" + historyState[5] + "|" + item_id);
}

function killFloaters() {
	$('#topfloater').remove();
	$('#bottomfloater').remove();
}

function restoreItemView() {
        $('#topfloater').fadeOut('slow', function(data) {
		$('#topfloater').remove();
	});
        $('#bottomfloater').fadeOut('slow', function(data) {
        	$('#bottomfloater').remove();
        });
        $('.itemviewholder').slideUp('slow');
	$('.itemviewholder').html('');
        $('.itemrow').animate({
                opacity: 1.0
        }, 2000, function() {

        });
}

function showCollection(path) {
	if( $("#collection_content").is(":visible") ) {
		$("#collection_content").slideUp("fast");
	}
	var currentPage=$('#page').val();
	log(currentPage + " | " + path);
	$('.reasonstoregister').hide();
	if (currentPage != path){
		var start = $("#collection_content").html();

		$("#collection_content").load(path, function(response, status, xhr) {
			if(response != start) {
				$("#collection_content").slideDown("fast", function() {
					//moveTo('#collectionholder');
					moveTo('#collection_content', -100);
					log("done moving to collection");
				});
			}
		});
	} else {
		$('#page').val('');
	}
}

function resetWorldView() {
	$("#bottomfloater").remove();
	$("#topfloater").remove();
	$("html, body").animate({scrollTop: 0},"slow");
	restoreEvents();
}

function showSidemark() {
	if($('#sendEmailDiv').is(':visible')) {
		$('#sendEmailDiv').hide();
		var offset = $("#bottomfloater").offset();
        	var top = offset.top - 110;
        	$("#bottomfloater").css("top", top);
	}
	if(!$('#sidemarkItemDiv').is(':visible')) {
		$('#sidemarkItemDiv').slideDown('slow', function() {
			$('html,body').animate({scrollTop: $('#sidemarkItemDiv').offset().top - 150},'slow');
		});
        	var offset = $("#bottomfloater").offset();
        	log("start top is:" + offset.top);
        	var top = offset.top + 110;
        	log("end top is:" + top);
        	$("#bottomfloater").css("top", top);
	}
}

function closeSidemark() {
        var height=$('#topfloater').height() - 150;
        $('html,body').animate({scrollTop: $('#topfloater').offset().top + height},'slow');
	$('#sidemarkItemDiv').slideUp('slow');
	var offset = $("#bottomfloater").offset();
	log("start top is:" + offset.top);
	var top = offset.top - 110;
	log("end top is:" + top);
	$("#bottomfloater").css("top", top);
}

function showEmailIt() {
	if($('#sidemarkItemDiv').is(':visible')) {
		$('#sidemarkItemDiv').hide();
		var offset = $("#bottomfloater").offset();
        	var top = offset.top - 170;
        	$("#bottomfloater").css("top", top);
	}
	log ("fog created, showing email div");
	if(!$('#sendEmailDiv').is(':visible')) {
		$('#sendEmailDiv').slideDown('slow', function() {
			$('html,body').animate({scrollTop: $('#sendEmailDiv').offset().top - 150},'slow');
		});
		var offset = $("#bottomfloater").offset();
		log("start top is:" + offset.top);
		var top = offset.top + 170;
		log("end top is:" + top);
		$("#bottomfloater").css("top", top);
	}
}

function closeEmailIt() {
	var height=$('#topfloater').height() - 150;
	$('html,body').animate({scrollTop: $('#topfloater').offset().top + height},'slow');
	$('#sendEmailDiv').slideUp('slow');
	clearError("#emailerror");
	var offset = $("#bottomfloater").offset();
	log("start top is:" + offset.top);
	var top = offset.top - 170;
	log("end top is:" + top);
	$("#bottomfloater").css("top", top);
}

function sendEmailTo(item_id) {
	var to_email = $("#to_email").val();
	var from_email = $("#emailfrom").val();
	var from_name = $("#fromName").val();
	var subject = $("#subject").val();
	var message = $("#message").val();
	var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	clearError("#emailerror");
	log("to_email = " + to_email + " and from_email = " + from_email + " and from_name = " + from_name);

	if (filter.test(to_email)){	
	        log("Disabling send button");
	        $('#emailsend').attr("disabled","true");

		$.post("email.php", {
		       sendtoEmail: to_email,
		       fromEmail: from_email,
		       fromName: from_name,
		       subject: subject,
		       message: message,
		       operation: 'single',
		       item_id: item_id,
	               start: 1 },
		       function(data) {
			alert("This piece has been emailed to " + to_email + " successfully.");
		       	closeEmailIt();
			$('#emailsend').removeAttr("disabled");
		       }
		);
	} else {
		$('#to_email').css('background-image','url(/images/inputfield_ON.png)')
		setError("Please enter a valid email address in the \'To\' field","#emailerror");
	}
}

function uncheckAllCompanies() {
	log("go away");
	
	$('input[name=company_dessinfournir_search]').prop('checked',false);
	$('input[name=company_gerard_search]').prop('checked',false);
	$('input[name=company_kerryjoyce_search]').prop('checked',false);
	$('input[name=company_palmerhargrave_search]').prop('checked',false);
	$('input[name=company_quickship_search]').prop('checked',false);
	$('input[name=company_whatsnew_search]').prop('checked',false);
}

function clearSearchAll() {
	$("#company_searchall").prop('checked',false);
}

function changeProductView(newURL) {
	log("loading " + newURL);
	$('#product_view').attr('src','/images/View/' + newURL);
	$('#zoomholder').attr('src','/images/Presentation/' + newURL);
	var options = {
                                zoomWidth: 592,
                                zoomHeight: 310
                        };
        $('#zoomholder').jqzoom(options);
}

function sidemarkItem() {
	log("sidemarking: " + $("#sidemarkItemId").val());
	var item_id = $("#sidemarkItemId").val();
	var sidemark_id = $("#addToSidemark").val();
	var sidemark_name = $("#newsidemark").val();
	
	log("passed: " + item_id + "," + sidemark_id + "," + sidemark_name);

	$.post("/sidemarkit.php",{item_id: item_id, sidemark_id: sidemark_id, sidemark_name: sidemark_name}, function(data, textStatus, jqXHR) {
		log("its sidemarked!");	
		alert("This item has been successfully sidemarked");
		closeSidemark();
	}, "json");
}

function loadExternal(staticURL) {
	resetWorldView();
        $('#nav').load('/loadnav.php');
	log("loading external page");
        
        //$('#body_head').load('/0block_head.php');
        $('#9block_content').hide();
        $('#9block_head').hide();
	$('#body_content').load(staticURL);
        $('#body_content').show();
        $('#body_head').show();
}

function loadStatic(staticURL) {
	log("loading static page");
	resetWorldView();
        $('#nav').load('/loadnav.php');
        
        //$('#body_head').load('/0block_head.php');
        $('#9block_content').hide();
        $('#9block_head').hide();
	$('#body_content').load("/static/" + staticURL + ".html");
        $('#body_content').show();
        $('#body_head').show();
}

function sidemarkAllResults() {
	if( $("#sidemarkall").prop("checked") == true) {
		$(".itemsidemark").prop("checked",true);
	} else {
		$(".itemsidemark").prop("checked",false);
	}
}

function sidemarkSelected() {
	//generate a list of item ids!
	var items = "";
	$(".itemsidemark:checked").each(function(data) {
		items = items + $(this).attr("id") + "," + $(this).attr("image") + "," + $(this).attr("itemname") + "|";
	});
	
	log("sending: " + items);

	$("#sidemarkAllContainer").load("/sidemarkall.php", {mode: 'view', items: items}, function() {
		$("#sidemarkAllContainer").slideDown("slow", function() {
			//grey ist he new pink!
			//build the top grey box
                	var offset = $("#sidemarkAllContainer").offset();
                	var top = 0;
                	var left = 0;
                	var height = offset.top;
                	var width = $('body').css('width');
                	var scrollTo = height;
                	var topdiv = "<div onclick='closeSidemarkAll()();' id='topfloater' style='display: none; position: absolute; height: " + height + "px; width: 100%; top: 0; left: 0; background-color: #CCCCCC; z-index: 11001; opacity: 0.5; filter: alpha(opacity=80);'>&nbsp;</div>";

                	log("top: " + offset.top);
                	log("height: " + $("#sidemarkAllContainer").height());
                	log("bodyheight: " + $(document).height());

                	top = offset.top + $("#sidemarkAllContainer").height();
                	height = $(document).height() - top;
                	var bottomdiv = "<div onclick='closeSidemarkAll();' id='bottomfloater' style='display: none; position: absolute; height: " + height + "px; width: 100%; top: " + top + "px; left: 0; background-color: #CCCCCC; z-index: 11001; opacity: 0.8; filter: alpha(opacity=80);'>&nbsp;</div>";
			
                	log(topdiv);
                	$(topdiv).appendTo("body");
                	log(bottomdiv);
                	//$(bottomdiv).appendTo("body");

                	//$('#bottomfloater').fadeIn('slow');
			$('#topfloater').fadeIn('slow');
		});
	});
}

function finalizeSidemarkSelected() {
	log("starting finalize");
	var sidemarkall_to = $("#item_addtosidemark_all").val();
	var sidemarkall_createnew = $("#newsidemarkforall").val();

	var items = "";
	$(".single_sidemark_all_select").each(function(data) {
		items = items + $(this).val() + "," + $(this).attr("item_id") + "|";
	});
	log("Items are: " + items);
	log("sidemarkall_to: " + sidemarkall_to);
	log("sidemark_createnew: " + sidemarkall_createnew); 
	
	$.post("/sidemarkall.php",{sidemarkall_to: sidemarkall_to, sidemarkall_createnew: sidemarkall_createnew,
				   items: items, mode: 'save'}, function(data) {
		log(data);
		closeSidemarkAll();
		alert("These items have been successfully sidemarked.");
	});
}

function closeSidemarkAll() {
	$("#sidemarkAllContainer").slideUp("slow", function() {
		$("#sidemarkAllContainer").html("");
	});	
	$('#topfloater').fadeOut('slow', function(data) {
                $('#topfloater').remove();
        });
        $('#bottomfloater').fadeOut('slow', function(data) {
                $('#bottomfloater').remove();
        });
}

function createSidemarkProject() {
	var projectName = $("#newsidemarkforall").val();
	log("creating: " + projectName);
	
	var items = "";
	$(".itemsidemark:checked").each(function(data) {
		items = items + $(this).attr("id") + "," + $(this).attr("image") + "," + $(this).attr("itemname") + "|";
	});

	$.post("sidemarkall.php",{mode:'createProject',projectName: projectName,items: items}, function(data) {
		//$("#allSidemarkItems").html(data);
		alert("Your new sidemark has been created.  Please select it from the drop down box.");
		$("#sidemarkAllContainer").html(data);
	});
}

function emailProject() {
        var project_oid=$('#projectoid').val();
        var to_email=$('#emailto').val();
        var from_email=$('#emailfrom').val();
        var from_name=$('#fromName').val();
        var subject=$('#emailsubject').val();
        var message=$('#emailmessage').val();
	var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	clearError("#projects_error_message");

        if (filter.test(to_email)){
		setError("Your project is being emailed...","#projects_error_message");
		$('#emailsend').attr("disabled", "true");
                $.post("email.php", {
                        sendtoEmail: to_email,
                        fromName: from_name,
                        fromEmail: from_email,
                        subject: subject,
                        message: message,
                        operation: 'project',
                        project_id: project_oid,
                        project: project_oid,
                        start: 1
                },
                function(data){
                        clearError("#projects_error_message");
                        $('#emailproject').slideUp(800,function(){
				alert("Your email has been sent to " + to_email + " successfully.");
				$('#emailsend').removeAttr("disabled");
			});
			
                });
        } else {
		$('#emailto').css('background-image','url(/images/inputfield_ON.png)')
                setError("Please enter a valid email address in the \'To\' field.","#projects_error_message");
        }
}

function openFinishes(finish) {
	var path = "";
	log("starting on: " + finish);
	if(finish == "brass") {
		path = "/finishes_brass.php";
	} else if(finish == "ceramic") {
		path = "/finishes_ceramic.php";
	} else if(finish == "wood") {
		path = "/finishes_wood.php";
	} else if(finish == "fritschiron") {
		path = "/finishes_fritschiron.php";
	} else if(finish == "fritschstainless") {
		path = "/finishes_fritschstainless.php";
	} else if(finish == "lacquer") {
		path = "/finishes_lacquer.php";
	} else if(finish == "leather") {
		path = "/finishes_leather.php";
	}

	log("opening finish:" + path);
	resetWorldView();
	$('#body_content').load(path, function() {
                restoreEvents();
	});
	$('#9block_content').hide(); 
	$('#9block_head').hide(); 
	//$('#body_head').load('/0block_head.php');
	$('#body_content').show(); 
	$('#body_head').show();
}

