var people_array = new Array();

function add_enter_handlers(type, div, edit) {
	if(type == "contacts") {
		if(div == 0) {
			$("#firstName").keypress(function(event) {
				key = event.which;
				if(key == 'enter'){submit_form();} 
			});
			$("#lastName").keypress(function(event) {
				key = event.which;
				if(key == 'enter'){submit_form();} 
			});
			$("#email").keypress(function(event) {
				key = event.which;
				if(key == 'enter'){submit_form();} 
			});
			$("#phone").keypress(function(event) {
				key = event.which;
				if(key == 'enter'){submit_form();} 
			});
			$("#mobile").keypress(function(event) {
				key = event.which;
				if(key == 'enter'){submit_form();} 
			});
			if(edit != 1) {
				$("#passwd").keypress(function(event) {
					key = event.which;
					if(key == 'enter'){submit_form();} 
				});
			}
		} else {
			$("#firstName_"+div).keypress(function(event) {
				key = event.which;
				if(key == 'enter'){submit_form();} 
			});
			$("#lastName_"+div).keypress(function(event) {
				key = event.which;
				if(key == 'enter'){submit_form();} 
			});
			$("#email_"+div).keypress(function(event) {
				key = event.which;
				if(key == 'enter'){submit_form();} 
			});
			$("#phone_"+div).keypress(function(event) {
				key = event.which;
				if(key == 'enter'){submit_form();} 
			});
			$("#mobile_"+div).keypress(function(event) {
				key = event.which;
				if(key == 'enter'){submit_form();} 
			});
			if(edit != 1) {
				$("#passwd_"+div).keypress(function(event) {
					key = event.which;
					if(key == 'enter'){submit_form();} 
				});
			}
		}
	}
	//Add enter handlers.
	if(type == "company") {
		$("#company").keypress(function(event) {
			key = event.which;
			if(key == 'enter'){submit_form(null,null,1);} 
		});
		$("#address1").keypress(function(event) {
			key = event.which;
			if(key == 'enter'){submit_form(null,null,1);} 
		});
		$("#address2").keypress(function(event) {
			key = event.which;
			if(key == 'enter'){submit_form(null,null,1);} 
		});
		$("#city").keypress(function(event) {
			key = event.which;
			if(key == 'enter'){submit_form(null,null,1);} 
		});
		$("#state").keypress(function(event) {
			key = event.which;
			if(key == 'enter'){submit_form(null,null,1);} 
		});
		$("#zip").keypress(function(event) {
			key = event.which;
			if(key == 'enter'){submit_form(null,null,1);} 
		});
		$("#phone").keypress(function(event) {
			key = event.which;
			if(key == 'enter'){submit_form(null,null,1);} 
		});
		$("#fax").keypress(function(event) {
			key = event.which;
			if(key == 'enter'){submit_form(null,null,1);} 
		});
		$("#website").keypress(function(event) {
			key = event.which;
			if(key == 'enter'){submit_form(null,null,1);} 
		});
	}
}

function add_person() {
	var personCount = parseInt($("#count").val());
	personCount = personCount + 1;
	$("#count").val(personCount);
	people_array.push(personCount);
	
	var combined = "";
	
	var fieldsetStart = "<fieldset id='fieldset_person_"+personCount+"'><ol>";
	var liStart = "<li id='field_firstName_" + personCount + "'>";
	var label = "<label for='firstName_" + personCount + "'><b>First Name</b></label>";
	var input = "<input type='text' name='firstName_" + personCount + "' id='firstName_"+ personCount + "' />";
	var errorMessage = "<div id='message_firstName_" + personCount + "' class='help'></div>";
	var liEnd = "</li>";
	var fieldsetEnd = "</ol></fieldset>";
	
	//Combine first li;
	combined = combined + fieldsetStart + liStart + label + input + errorMessage + liEnd;
	
	//Next li.
	var liStart = "<li id='field_lastName_" + personCount + "'>";
	var label = "<label for='lastName_" + personCount + "'><b>Last Name</b></label>";
	var input = "<input type='text' name='lastName_" + personCount + "' id='lastName_"+ personCount + "'/>";
	var errorMessage = "<div id='message_lastName_" + personCount + "' class='help'></div>";
	var liEnd = "</li>";
	combined = combined + liStart + label + input + errorMessage + liEnd;
	
	//Next li.
	var liStart = "<li id='field_email_" + personCount + "'>";
	var label = "<label for='email_" + personCount + "'><b>Email</b></label>";
	var input = "<input type='text' name='email_" + personCount + "' id='email_" + personCount + "' />";
	var errorMessage = "<div id='message_email_" + personCount + "' class='help'></div>";
	var liEnd = "</li>";
	combined = combined + liStart + label + input + errorMessage + liEnd;
	
	//Next li.
	var liStart = "<li id='field_emailUpdates_" + personCount + "' class='flipped'>";
	var label = "<label for='emailUpdates_" + personCount + "'>I would like email updates on relevant opportunities</label>";
	var input = "<input type='checkbox' class='normal' name='emailUpdates_" + personCount + "' id='emailUpdates_" + personCount + "' />";
	var errorMessage = "<div id='message_emailUpdates_" + personCount + "' class='help'></div>";
	var liEnd = "</li>";
	combined = combined + liStart + input + label + errorMessage + liEnd;
	
	//Next li.
	var liStart = "<li class='required' id='field_phone_" + personCount + "'>";
	var label = "<label for='phone_" + personCount + "'>Phone</label>";
	var input = "<input type='text' id='phone_"+personCount+"' name='phone_" + personCount + "' />";
	var liEnd = "</li>";
	combined = combined + liStart + label + input + liEnd;
	
	//Next li.
	var liStart = "<li id='field_mobile_" + personCount + "'>";
	var label = "<label for='mobile_" + personCount + "'>Mobile</label>";
	var input = "<input type='text' name='mobile_" + personCount + "' />";
	var liEnd = "</li>";
	combined = combined + liStart + label + input + liEnd;
	
	//Next li.
	var liStart = "<li id='field_passwd_" + personCount + "'>";
	var label = "<label for='passwd_" + personCount + "'><b>Password</b></label>";
	var input = "<input type='password' name='passwd_" + personCount + "' id='passwd_"+ personCount + "'/>";
	var errorMessage = "<div id='message_passwd_" + personCount + "' class='help'></div>";
	var liEnd = "</li>";
	combined = combined + liStart + label + input + errorMessage + liEnd;
	
	//Removal
	var rm = "<li><a class='button-subtle cancel' onClick='cancel_add("+personCount+");'><b>Do NOT add this person</b></a></li>";
	combined = combined + rm;
	
	combined = combined + fieldsetEnd;
	$("#add_person").html($("#add_person").html() + combined);
	
	//Add event listener.
	$("#firstName_"+personCount).keypress(function(event) {
		key = event.which;
		if(key == 'enter'){submit_form();} 
	});
	$("#lastName_"+personCount).keypress(function(event) {
		key = event.which;
		if(key == 'enter'){submit_form();} 
	});
	$("#email_"+personCount).keypress(function(event) {
		key = event.which;
		if(key == 'enter'){submit_form();} 
	});
	$("#phone_"+personCount).keypress(function(event) {
		key = event.which;
		if(key == 'enter'){submit_form();} 
	});
	$("#mobile_"+personCount).keypress(function(event) {
		key = event.which;
		if(key == 'enter'){submit_form();} 
	});
	$("#passwd_"+personCount).keypress(function(event) {
		key = event.which;
		if(key == 'enter'){submit_form();} 
	});
}

function add_drag_drop() {
	Sortable.create('servicesProvided', {containment:['servicesProvided', 'servicesNeeded'], dropOnEmpty: true, constraint:false});
	Sortable.create('servicesNeeded', {containment:['servicesProvided', 'servicesNeeded'], dropOnEmpty: true,constraint:false});
	
}

function add_to_bid_watch_list(companyID, bidID) {
	divID = "#bid_watch_" + bidID;
	queryString = "&companyID=" + companyID + "&bidID=" + bidID;
	if($(divID).hasClass("watching")) {
		queryString = queryString + "&destroy=1";
	}
	base_ajax("", "../../../includes/modules/bids/controllers/fn-bidList.php?formAction=addToBidWatchList", queryString, "add_to_bid_watch_list_callback(response,"+bidID+");");
}

function add_to_bid_watch_list_callback(response, bidID) {
	divID = "#bid_watch_" + bidID;
	if($(divID).hasClass("add")) {
		$(divID).removeClass("add");
		$(divID).addClass("watching");
	} else {
		$(divID).removeClass("watching");
		$(divID).addClass("add");
	}
	location.reload(true);
}

function add_to_watch_list(companyID, serviceID) {
	divID = "#service_watch_" + serviceID;
	queryString = "&companyID=" + companyID + "&serviceID=" + serviceID;
	if($(divID).hasClass("watching")) {
		queryString = queryString + "&destroy=1";
	} 
	base_ajax("", "../../../includes/modules/bids/controllers/fn-updateInformationSummary.php?formAction=addToWatchList", queryString, "add_to_watch_list_callback(response,"+serviceID+");");
}

function add_to_watch_list_callback(response, serviceID) {
	divID = "#service_watch_" + serviceID;
	if($(divID).hasClass("add")) {
		$(divID).removeClass("add");
		$(divID).addClass("watching");
	} else {
		$(divID).removeClass("watching");
		$(divID).addClass("add");
	}
	
}

function cancel_add(el) {
	$("#fieldset_person_"+el).remove();
	index = people_array.indexOf(el);
	if(index != -1) {
		people_array.splice(index, 1);
	}
}

function password_reminder(modulesURL, pageid, bidID) {
	innerHTMLPassword = " \
	<div style='display: block;' id='passwordRemind'> \
		<form class='admin front' method='post' action='"+ modulesURL +"/bids/controllers/fn-login.php' name='remindForm' id='remindForm'> \
		<fieldset> \
			<h3>Enter your email address to retrieve your password.</h3> \
			<ol> \
				<li class='required '> \
					<label for='un'>Email</label> \
					<input type='text' value='' id='un' name='un'> \
				</li> \
			</ol> \
		</fieldset> \
		<fieldset class='buttons'> \
			<h3 class='access'>Form Actions</h3> \
			<ol> \
				<li> \
					<label class='access'>Submit</label> \
					<input type='submit' style='display: none;' class='inline' value='Get Password'> \
					<a class='button confirm' href=\"javascript:$('remindForm').submit();\"><b>Get Password</b></a> \
					<input type='hidden' value='" + pageid + "' name='pageid' /> \
					<input type='hidden' value='remind' id='formAction' name='formAction' \> \
					<input type='hidden' value='" + bidID + "' id='bidid' name='bidid' \> \
					<input type='hidden' value='1' id='dontInclude' name='dontInclude' /> \
				</li> \
			</ol> \
		</fieldset> \
		</form> \
	</div> \
	";
	
	$("#requestPassword").html(innerHTMLPassword);
}

function submit_form(noValidate, validateEmails, edit) {
	
	
	if(validateEmails != null) {
		count = $("#count").val();
		
		//Check first/last name
		$("#message_firstName").removeClass("warning");
		$("#field_firstName").removeClass("warning");
		$("#message_firstName").html("");
		$("#message_lastName").removeClass("warning");
		$("#field_lastName").removeClass("warning");
		$("#message_lastName").html("");
		$("#field_email").removeClass("warning");
		$("#message_phone").html("");
		$("#field_phone").removeClass("warning");
		
		//Remove some classes and warnings
		try {
			$("#field_passwd").removeClass("warning");
			$("#message_passwd").removeClass("warning");
			$("#message_passwd").html("");
		} catch (err){}
		for(i = 2; i <= count; i++) {
			try{
			$("#field_email_"+i).removeClass("warning");
			$("#field_phone_"+i).removeClass("warning");
			try {
				$("#field_passwd_"+i).removeClass("warning");
				$("#message_passwd_"+i).removeClass("warning");
				$("#message_passwd_"+i).html("");
			} catch(err){}
			$("#field_firstName_"+i).removeClass("warning");
			$("#message_firstName_"+i).removeClass("warning");
			$("#field_lastName_"+i).removeClass("warning");
			$("#message_lastName_"+i).removeClass("warning");
			$("#message_phone_"+i).html("");
			$("#message_firstName_"+i).html("");
			$("#message_lastName_"+i).html("");
			}catch(err){}
		}
		queryString = "";
		queryString = queryString + $("#email").val() + "::message_email-";
		$("#message_email").removeClass("warning");
		$("#message_email").html("");
		$("#field_email").removeClass("warning");
		for(i = 2; i <= count; i++) {
			try{
			queryString = queryString + $("#email_"+i).val() + "::message_email_" + i + "-";
			$("#field_email_"+i).removeClass("warning");
			$("#message_email_"+i).removeClass("warning");
			$("#message_email_"+i).html("");
			}catch(err){}
		}
		queryString = "formAction=validateEmail&vals=" + queryString;
		base_ajax("", "../../../includes/modules/bids/controllers/fn-register.php?", queryString, "submit_form_callback(response);");
	} else {
		if(edit != null) {
			//Get company, address, city, state, zip, phone
			company = $("#company").val();
			address = $("#address1").val();
			city = $("#city").val();
			state = $("#state").val();
			zip = $("#zip").val();
			phone = $("#phone").val();
			
			$("#field_company").removeClass("warning");
			$("#message_company").removeClass("warning");
			$("#message_company").html("");
			$("#field_address1").removeClass("warning");
			$("#message_address1").removeClass("warning");
			$("#message_address1").html("");
			$("#field_city").removeClass("warning");
			$("#message_city").removeClass("warning");
			$("#message_city").html("");
			$("#field_state").removeClass("warning");
			$("#message_state").removeClass("warning");
			$("#message_state").html("");
			$("#field_zip").removeClass("warning");
			$("#message_zip").removeClass("warning");
			$("#message_zip").html("");
			$("#field_phone").removeClass("warning");
			$("#message_phone").removeClass("warning");
			$("#message_phone").html("");
			
			count = 0;
			if(company == "") {
				$("#field_company").addClass("warning");
				$("#message_company").addClass("warning");
				$("#message_company").html("Please enter a company.");
				count++;
			}
			if(address == "") {
				$("#field_address1").addClass("warning");
				$("#message_address1").addClass("warning");
				$("#message_address1").html("Please enter an address.");
				count++;
			}
			if(city == "") {
				$("#field_city").addClass("warning");
				$("#message_city").addClass("warning");
				$("#message_city").html("Please enter a city.");
				count++;
			}
			if(state == "") {
				$("#field_state").addClass("warning");
				$("#message_state").addClass("warning");
				$("#message_state").html("Please enter a state.");
				count++;
			}
			if(zip == "") {
				$("#field_zip").addClass("warning");
				$("#message_zip").addClass("warning");
				$("#message_zip").html("Please enter a zip.");
				count++;
			}
			if(phone == "") {
				$("#field_phone").addClass("warning");
				$("#message_phone").addClass("warning");
				$("#message_phone").html("Please enter a phone.");
				count++;
			}

			if(count == 0) {
				$("#specialForm").submit();
			}

		}
		if(noValidate == null) {
			errorCount = 0;
			//Check first/last name
			$("#message_firstName").removeClass("warning");
			$("#field_firstName").removeClass("warning");
			$("#message_firstName").html("");
			$("#message_lastName").removeClass("warning");
			$("#field_lastName").removeClass("warning");
			$("#message_lastName").html("");
			$("#field_email").removeClass("warning");
			$("#message_phone").html("");
			$("#field_phone").removeClass("warning");

			//Remove some classes and warnings
			try {
				$("#field_passwd").removeClass("warning");
				$("#message_passwd").removeClass("warning");
				$("#message_passwd").html("");
			} catch (err){}
			for(i = 2; i <= ($("#count").val()); i++) {
				try{
				$("#field_email_"+i).removeClass("warning");
				$("#field_phone_"+i).removeClass("warning");
				try {
					$("#field_passwd_"+i).removeClass("warning");
					$("#message_passwd_"+i).removeClass("warning");
					$("#message_passwd_"+i).html("");
				} catch(err){}
				$("#field_firstName_"+i).removeClass("warning");
				$("#message_firstName_"+i).removeClass("warning");
				$("#field_lastName_"+i).removeClass("warning");
				$("#message_lastName_"+i).removeClass("warning");
				$("#message_phone_"+i).html("");
				$("#message_firstName_"+i).html("");
				$("#message_lastName_"+i).html("");
				}catch(err){}
			}
			
			//result = validate_form_ajax($("#specialForm"), 'specialForm');
			if($("#firstName").val() == "") {
				$("#message_firstName").addClass("warning");
				$("#field_firstName").addClass("warning");
				$("#message_firstName").html("Please enter a first name.");
				errorCount++;
			}
			if($("#lastName").val() == "") {
				$("#message_lastName").addClass("warning");
				$("#field_lastName").addClass("warning");
				$("#message_lastName").html("Please enter a last name.");
				errorCount++;
			}
			if($("#phone").val() == "") {
				$("#message_phone").addClass("warning");
				$("#field_phone").addClass("warning");
				$("#message_phone").html("Pleae enter a phone number.");
				errorCount++;
			}
			if($("#email").val() == "") {
				$("#field_email").addClass("warning");
				$("#message_email").html("Please enter an email address.");
				$("#message_email").addClass("warning");
				errorCount++;
			}
			for(i = 2; i <= ($("#count").val()); i++) {
				try{
					//fname
					try{
						if($("#email_"+i).val() == "") {
							$("#field_email_"+i).addClass("warning");
							$("#message_email_"+i).html("Please enter an email address.");
							$("#message_email_"+i).addClass("warning");
							errorCount++;
						}
					}catch(err){}
				//fname
				if($("#firstName_"+i).val() == "") {
					$("#field_firstName_"+i).addClass("warning");
					$("#message_firstName_"+i).html("Please enter a first name.");
					$("#message_firstName_"+i).addClass("warning");
					errorCount++;
				}
				//lname
				if($("#lastName_"+i).val() == "") {
					$("#field_lastName_"+i).addClass("warning");
					$("#message_lastName_"+i).html("Please enter a last name.");
					$("#message_lastName_"+i).addClass("warning");
					errorCount++;
				}
				if($("#phone_"+i).val() == "") {
					$("#field_phone_"+i).addClass("warning");
					$("#message_phone_"+i).html("Please enter a phone number.");
					$("#message_phone_"+i).addClass("warning");
					errorCount++;
				}
				if($("#email_"+i).val() == "") {
					$("#field_email_"+i).addClass("warning");
					$("#message_email_"+i).html("Please enter an email address.");
					$("#message_email_"+i).addClass("warning");
					errorCount++;
				}
				}catch(err){}
			}
			if(errorCount == 0) {
				result = true;
			}
		} else {
			result = true;
		}

		$("#specialForm").submit();
		
	}
}

function submit_form_callback(response) {
	eval("errorReport = " + response);
	for(i = 0; i < errorReport.errorCount; i++) {
		tmp = errorReport.errors[i];
		$(tmp.div).html(tmp.message);
		$(tmp.div).addClass("warning");
	}
	
	
	if($("#firstName").val() == "") {
		$("#message_firstName").addClass("warning");
		$("#field_firstName").addClass("warning");
		$("#message_firstName").html("Please enter a first name.");
	}
	if($("#lastName").val() == "") {
		$("#message_lastName").addClass("warning");
		$("#field_lastName").addClass("warning");
		$("#message_lastName").html("Please enter a last name.");
	}
	if($("#phone").val() == "") {
		$("#message_phone").addClass("warning");
		$("#field_phone").addClass("warning");
		$("#message_phone").html("Please enter a phone number.");
	}
	
	//Error reporting on First/Last/and Password.
	if($("#passwd").val() == "") {
		$("#field_passwd").addClass("warning");
		$("#message_passwd").html("Please enter a password.");
		$("#message_passwd").addClass("warning");
		errorReport.errorCount = 1;
	}
	if($("#email").val() == "") {
		$("#field_email").addClass("warning");
		$("#message_email").html("Please enter an email address.");
		$("#message_email").addClass("warning");
	}
	for(i = 2; i <= $("#count").val(); i++) {
		try{
		if($("#passwd_"+i).val() == "") {
			$("#field_passwd_"+i).addClass("warning");
			$("#message_passwd_"+i).html("Please enter a password.");
			$("#message_passwd_"+i).addClass("warning");
		}
		//fname
		if($("#firstName_"+i).val() == "") {
			$("#field_firstName_"+i).addClass("warning");
			$("#message_firstName_"+i).html("Please enter a first name.");
			$("#message_firstName_"+i).addClass("warning");
		}
		//lname
		if($("#lastName_"+i).val() == "") {
			$("#field_lastName_"+i).addClass("warning");
			$("#message_lastName_"+i).html("Please enter a last name.");
			$("#message_lastName_"+i).addClass("warning");
		}
		if($("#phone_"+i).val() == "") {
			$("#field_phone_"+i).addClass("warning");
			$("#message_phone_"+i).html("Please enter a phone number.");
			$("#message_phone_"+i).addClass("warning");
		}
		if($("#email_"+i).val() == "") {
			$("#field_email_"+i).addClass("warning");
			$("#message_email_"+i).html("Please enter an email address.");
			$("#message_email_"+i).addClass("warning");
		}
		}catch(err){}
	}

	
	if(errorReport.errorCount == 0) {
		//result = validate_form_ajax($("#specialForm"), 'specialForm');
		$("#specialForm").submit();
	}
}

function serialize_list() {
	postString = Sortable.serialize('servicesProvided');
	$('serializedServices').value = postString;
	$('identifyServices').submit();
}

function set_publish_message(message) {
	$("#field_published").addClass("warning");
	$("#message_published").addClass("warning");
	$("#field_category_id").addClass("warning");
	$("#field_service_id").addClass("warning");
	$("#message_published").html(message);
}

function start_filter() {
	title = $("#titleField").val();
	status = $("#statusField").val();
	category = $("#categoryField").val();
	
	//Query for items.
	queryString = "&title=" + title + "&status=" + status + "&category=" + category;
	base_ajax("", "../../../includes/modules/bids/controllers/fn-bidList.php?formAction=filter", queryString, "start_filter_callback(response);");
	
	//Query for count.
	base_ajax("", "../../../includes/modules/bids/controllers/fn-bidList.php?formAction=filterCount", queryString, "start_filter_count_callback(response);");
}

function start_filter_callback(response) {
	$("#bidListBottom").html(response);
}

function start_filter_count_callback(response) {
	$("#bidsInFilter").html(response);
}

function toggle_bottom_off() {
	$("#bidListBottom").css("display", "none");
	$("#filterRow").css("display", "none");
	$("#filterRowTitle").css("display", "none");
	$("#bidWatchingTable").css("display", "");
}

function toggle_top_off() {
	$("#bidWatchingTable").css("display", "none");
	$("#bidListBottom").css("display", "");
	$("#filterRow").css("display", "");
	$("#filterRowTitle").css("display", "");
}

function toggle_top_bottom() {
	if($("#bidWatchingTable").css("display") != "none") {
		$("#bidWatchingTable").css("display", "none");
		$("#bidListBottom").css("display", "");
		$("#filterRow").css("display", "");
		$("#filterRowTitle").css("display", "");
		$("#viewType").html("View Watched Bids");
	} else {
		$("#bidWatchingTable").css("display", "");
		$("#bidListBottom").css("display", "none");
		$("#filterRow").css("display", "none");
		$("#filterRowTitle").css("display", "none");
		$("#viewType").html("View All Bids");
	}
}

function update_edit_contact() {
	people = people_array.join(",");
	$("#people").val(people);
}

function update_emailUpdates(companyID) {
	queryString = "&companyID="+companyID;
	base_ajax("", "../../../includes/modules/bids/controllers/fn-updateInformationSummary.php?formAction=emailUpdate", queryString, "update_emailUpdates_callback(response);");
}

function update_emailUpdates_callback(response) {
	if(response == "1") {
		$("#email_updates").checked = true;
	} else {
		$("#email_updates").checked = false;
	}
}

function update_services_needed() {
	category = $("#category_id_select").val();
	currentServices = Sortable.serialize('servicesProvided');
	
	queryString = "&category="+category+"&currentServices="+currentServices;
	base_ajax("", "../../../includes/modules/bids/controllers/fn-updateInformationSummary.php?formAction=updateServicesNeeded", queryString, "update_services_needed_callback(response);");
}

function update_services_needed_callback(response) {
	$("#servicesNeeded").html(response);
	Sortable.create('servicesNeeded', {containment:['servicesProvided', 'servicesNeeded'], dropOnEmpty: true,constraint:false});
}

function validate_reset_password() {
	password1 = $("#newpass1").val();
	password2 = $("#newpass2").val();
	
	if((password1 != password2) || (password1 == "") || (password2 == "")) {
		$("#passwordError").html("<strong>The passwords you typed do not match.</strong>");
	} else {
		$("#specialForm").submit();
	}
}
