// Fatvine specific functions
// (c) Fatvine.com 2006-2007
var canSubmitJoin = 1;
var canSubmitAccount = 1;

function fv_bookmark(url,title) {
  if ((navigator.appName == "Microsoft Internet Explorer") && (parseInt(navigator.appVersion) >= 4)) {
  window.external.AddFavorite(url,title);
  } else if (navigator.appName == "Netscape") {
    window.sidebar.addPanel(title,url,"");
  } else {
    alert("Press CTRL-D (Netscape) or CTRL-T (Opera) to bookmark");
  }
}

function CreateBookmarkLink() {
 title = document.title; 
 url = 'http://www.fatvine';
	if (window.sidebar) { 
		// Mozilla Firefox Bookmark
		window.sidebar.addPanel(title, url,"");
	} else if( window.external ) { 
		// IE Favorite
		window.external.AddFavorite( url, title); }
	else if(window.opera && window.print) { 
		// Opera Hotlist
		return true; 
	}
 }

function fv_submit_header_search() {
	var filterbar = document.searchfilterbar;
	var header = document.searchheader;
	if (header) {
		if (header.keywords.value == "Enter Keyword") {
			header.keywords.value = "";
		}
	}
	if (filterbar) {
		if (filterbar.type) header.type.value = filterbar.type.options[filterbar.type.selectedIndex].value;		
		if (filterbar.ctypes) {
			if (filterbar.ctypes.options) { 
				header.ctypes.value = filterbar.ctypes.options[filterbar.ctypes.selectedIndex].value;		
			} else {
				header.ctypes.value = filterbar.ctypes.value;		
			}
		}
		if (filterbar.catid) header.catid.value = filterbar.catid.options[filterbar.catid.selectedIndex].value;		
		if (filterbar.subcatid) header.subcatid.value = filterbar.subcatid.options[filterbar.subcatid.selectedIndex].value;		
		if (filterbar.sort) header.sort.value = filterbar.sort.options[filterbar.sort.selectedIndex].value;		
		if (filterbar.days) header.days.value = filterbar.days.value;		
		if (filterbar.picks) header.picks.value = filterbar.picks.value;		
		if (filterbar.conpicks) header.conpicks.value = filterbar.conpicks.value;		
		if (filterbar.itemid) header.itemid.value = filterbar.itemid.value;		
		if (filterbar.userid) header.userid.value = filterbar.userid.value;		
		if (filterbar.tag) header.tag.value = filterbar.tag.value;		
		if (filterbar.newcon) header.newcon.value = filterbar.newcon.value;		
		if (filterbar.location) header.location.value = filterbar.location.value;		
	}
	document.searchheader.submit();
}

function fv_submit_filterbar_search() {
	var filterbar = document.searchfilterbar;
	var header = document.searchheader;
	if (header) {
		if (header.keywords.value == "Enter Keyword") {
			header.keywords.value = "";
		}
		if (header.keywords) filterbar.keywords.value = header.keywords.value;
	}
//	if (filterbar.type && filterbar.sort.options[filterbar.sort.selectedIndex].value != "items") {
	if (filterbar.type && filterbar.type.value != "items") {
		//filterbar.days.value = 0;
	}
	document.searchfilterbar.submit();
}

function fv_submit_filterbar_search_change_type(type) {
	var filterbar = document.searchfilterbar;
	if (type) {
		if (type == "items") {
			if (filterbar.sort) {
				filterbar.sort.options.length = 0;
				filterbar.sort.options[0] = new Option("Rating", "rating", false, false);
				filterbar.sort.options[0].selected = true;
			}
		} else if (type == "members") {
			if (filterbar.sort) {
				filterbar.sort.options.length = 0;
				filterbar.sort.options[0] = new Option("Newest", "newest", false, false);
				filterbar.sort.options[0].selected = true;
			}
		}
		if (filterbar) {
			if (filterbar.type) {
				filterbar.type.value = type;
			}
		}
	}
	fv_submit_filterbar_search();
}

function fv_submit_login() {
	document.login.submit();
}

function fv_submit_clear_filterbar() {
	fv_clear_filterbar();
	fv_submit_filterbar_search();
}

function fv_clear_filterbar() {
	var filterbar = document.searchfilterbar;
	var header = document.searchheader;
	if (header) {
		header.keywords.value = "";
		if (header.userid)	header.userid.value = 0;
	}
	if (filterbar) {
		if (filterbar.type)		filterbar.type.selectedIndex = 0;		
		if (filterbar.ctypes)	filterbar.ctypes.selectedIndex = 0;
		if (filterbar.catid)	filterbar.catid.selectedIndex = 0;
		if (filterbar.subcatid) filterbar.subcatid.selectedIndex = 0;
		if (filterbar.sort)	filterbar.sort.selectedIndex = 0;
		if (filterbar.days)	filterbar.days.value = 0;
		if (filterbar.picks)	filterbar.picks.value = 0;
		if (filterbar.conpicks)	filterbar.conpicks.value = 0;
		if (filterbar.itemid)	filterbar.itemid.value = 0;
		if (filterbar.userid)	filterbar.userid.value = 0;
		if (filterbar.tag)	filterbar.tag.value = "";
		if (filterbar.newcon)	filterbar.newcon.value = 0;
		if (filterbar.location)	filterbar.location.value = 0;
		fv_getSortFields();
	}
}

function fv_check_change_type() {
	var filterbar = document.searchfilterbar;
	if (filterbar) {
		if (filterbar.type && filterbar.type.value == "members") {
			if ((filterbar.days && filterbar.days.value > 0) || (filterbar.userid && filterbar.userid.value > 0)) {
				if (filterbar.picks) filterbar.picks.value = 1;	
			}
		}
	}
}

function fv_submit_shake_the_vine() {
	var filterbar = document.searchfilterbar;
	if (filterbar) {
		var sort = filterbar.sort;
		if (sort) {
			var numsorts = sort.options.length;
			var x = sort.options.selectedIndex;
			if (x < (numsorts - 1)) {
				x = x + 1;
			} else {
				x = 0;
			}
			sort.options.selectedIndex = x;
		}
	}
	fv_submit_filterbar_search();
}

function fv_submit_add_comment() {
	hideId("badwordscomments");
	ret = fv_check_badwords_add_comment();
	if (ret) return; // bypass submit if there are bad words.
	document.addcomment.submit();
}

function fv_submit_change_contact_type() {
	var urlBase = siteurl+"index2.php?option=com_jam_fv&task=changecontacttype&no_html=1";
	var contactid = document.ctypeform.contactid.value;
	var ctypeid = document.ctypeform.ctypeid.options[document.ctypeform.ctypeid.selectedIndex].value;
	//alert(ctypeid + " " + contactid);
	var fAjax = new Ajax(urlBase+'&contactid='+contactid+'&ctypeid='+ctypeid, {method: 'get'}).request();	
}

function fv_submit_edit_member() {
	hideId("badwords");
	var form = document.editmember;
	var first = form.cffirstname.value;
	fv_clear_default_fields_edit_member();
	ret = fv_check_badwords_edit_member();
	if (ret) return; // bypass submit if there are bad words.
	first = first.replace(/ /g,"");	
	if (!first) {
		alert("You must enter a name.");
		return;
	}
	document.editmember.submit();
}

function fv_submit_edit_item() {
	hideId("badwords");
	fv_clear_default_fields_edit_item();
	ret = fv_check_badwords_edit_item();
	if (ret) return; // bypass submit if there are bad words.
	if (!fv_validate_item_form()) return;	
	document.edititem.submit();
}

function fv_submit_add_item() {
	hideId("badwords");
	var ret;
	fv_clear_default_fields_edit_item();
	ret = fv_check_badwords_add_item();
	if (ret) return; // bypass submit if there are bad words.
	if (!fv_validate_item_form()) return;	
	document.edititem.submit();
}

function fv_submit_quick_add_item() {
	var ret;
	fv_clear_default_fields_quick_add_item();
	if (!fv_validate_quick_add_item_form()) return;	
	document.quickadditem.submit();
}

function fv_validate_item_form() {
	var form = document.edititem;
	var title = form.title.value;
	var catid = form.catid.value * 1;
	var subcatid = form.subcatid.value * 1;
	var fulltext = form.fulltext.value;
	var memberlink = form.memberlink.value;
	var urls;
	if (form.urls) urls = form.urls.value;
	var tempid;
	if (form.tempid) tempid = form.tempid.value;
	var msg = "You must enter a name, category, subcategory, and at least one of the following:  description, link, or image.";
	title = title.replace(/ /g,"");	
	fulltext = fulltext.replace(/ /g,"");	
	memberlink = memberlink.replace(/ /g,"");	
	if (urls) urls = urls.replace(/ /g,"");	
	if (!title || !catid || !subcatid) {
		alert(msg);
		return false;
	} else if (!(fulltext || memberlink || urls || tempid)) {
		alert(msg);
		return false;
	}
	return true;
}

function fv_validate_quick_add_item_form() {
	var form = document.quickadditem;
	var url = form.url.value;
	var msg = "You must enter a url.";
	url = url.replace(/ /g,"");	
	if (!url) {
		alert(msg);
		return false;
	}
	return true;
}

function fv_validate_add_fav_form() {
	var form = document.edititem;
	var title = form.name.value;
	var catid = form.catid.value * 1;
	var subcatid = form.subcatid.value * 1;
	var fulltext = form.desc.value;
	var memberlink = form.memberlink.value;
	var urls;
	if (form.urls) urls = form.urls.value;
	var tempid;
	if (form.tempid) tempid = form.tempid.value;
	var msg = "Name, category, subcategory, and description must entered.";
	title = title.replace(/ /g,"");	
	fulltext = fulltext.replace(/ /g,"");	
	memberlink = memberlink.replace(/ /g,"");	
	if (urls) urls = urls.replace(/ /g,"");	
	if (!title || !catid || !subcatid || !fulltext) {
		alert(msg);
		return false;
	}
	return true;
}

function fv_submit_upload_photo() {
	fv_clear_default_fields_edit_item();
	document.edititem.subtask.value = "uploadphoto";
	document.edititem.submit();
}

function fv_submit_delete_photo() {
	fv_clear_default_fields_edit_item();
	document.edititem.subtask.value = "deletephoto";
	document.edititem.submit();
}

function fv_submit_upload_photo_edit_member() {
	fv_clear_default_fields_edit_member();
	document.editmember.subtask.value = "uploadphoto";
	document.editmember.submit();
}

function fv_submit_delete_photo_edit_member() {
	fv_clear_default_fields_edit_member();
	document.editmember.subtask.value = "deletephoto";
	document.editmember.submit();
}

function fv_clear_default_fields_edit_item() {
	var form = document.edititem;
	if (form.tags && form.tags.value == "tag, tag, tag, tag") {
		form.tags.value = "";
	}
	if (form.memberlink && form.memberlink.value == "http://www.domain.com") {
		form.memberlink.value = "";
	}
	if (form.urls && form.urls.value == "http://www.domain.com") {
		form.urls.value = "";
	}
	if (form.title && form.title.value == "item name") {
		form.title.value = "";
	}
}

function fv_clear_default_fields_quick_add_item() {
	var form = document.quickadditem;
	if (form.url && form.url.value == "http://www.domain.com") {
		form.url.value = "";
	}
}

function fv_clear_default_fields_edit_member() {
	var form = document.editmember;
	if (form.cffirstname && form.cffirstname.value == "First Name") {
		form.cffirstname.value = "";
	}
	if (form.location && form.location.value == "Location") {
		form.location.value = "";
	}
	if (form.websiteurl && form.websiteurl.value == "Website URL") {
		form.websiteurl.value = "";
	}
	if (form.defaultcategory && form.defaultcategory.value == "Default Category") {
		form.defaultcategory.value = "";
	}
	if (form.aimusername && form.aimusername.value == "AIM") {
		form.aimusername.value = "";
	}
	if (form.skypeusername && form.skypeusername.value == "Skype") {
		form.skypeusername.value = "";
	}
}

function fv_submit_delete_item_comment(cid, itemid) {
	var urlBase = siteurl+"index2.php?option=com_jam_fv&task=deletecomment&no_html=1";
	var fAjax = new Ajax(urlBase+'&cid='+cid, {method: 'get'}).request();	
	iniXMLItemComments(itemid);
}
function fv_submit_delete_item_comments(itemid) {
	var urlBase = siteurl+"index2.php?option=com_jam_fv&task=deletecomment&no_html=1";
//	var cids = document.interest.check;
	var cids = document.getElementsByName("check");
	if (cids.length > 0) {

		for (i = 0; i < cids.length; i++) {	
			if (cids[i].checked) {
				var fAjax = new Ajax(urlBase+'&cid='+cids[i].value, {method: 'get'}).request();	
			}
		}
	} else {
		//var fAjax = new Ajax(urlBase+'&cid='+cids.value, {method: 'get'}).request();	
	}
	iniXMLItemComments(itemid);
}


function fv_browse_photos() {
}

function toggleDisplay(id) { 
	if( document.getElementById(id).style.display == "none" ) {
    document.getElementById(id).style.display = "block"; 
    document.getElementById(id).style.display = "block"; 
  } else { 
    document.getElementById(id).style.display = "none"; 
  }
}

function showId(id) { 
  document.getElementById(id).style.display = "block"; 
}

function hideId(id) { 
  document.getElementById(id).style.display = "none"; 
}

function checkAllSubcats(){
	var form = document.editmember;
	for (i = 0; i < form.length; i++) {
		if (form.elements[i].type == "checkbox") {
			form.elements[i].checked = true ;
		}
	}
}

function uncheckAllSubcats(){
	var form = document.editmember;
	for (i = 0; i < form.length; i++) {
		if (form.elements[i].type == "checkbox") {
			form.elements[i].checked = false ;
		}
	}
}

function fv_submit_my_site(itemid) {
	var urlBase = siteurl+"index2.php?option=com_jam_fv&task=togglemysite&no_html=1";
	var fAjax = new Ajax(urlBase+'&itemid='+itemid, {method: 'get'}).request();	
}

function fv_submit_add_tags(itemid) {
	hideId("badwords");
	ret = fv_check_badwords_add_tags();
	if (ret) return; // bypass submit if there are bad words.
	var tags = encodeURI(document.tagsedit.tags.value);
	var urlBase = siteurl+"index2.php?option=com_jam_fv&task=addtags&no_html=1";
	var fAjax = new Ajax(urlBase+'&itemid='+itemid+'&tags='+tags, {method: 'get'}).request();	
	toggleDisplay('ADD-TAGS'); 
	toggleDisplay('ADDTAGSLINK');
	document.tagsedit.origtags.value = document.tagsedit.tags.value;
	document.tagsedit.tags.onclick = null;
}

function fv_cancel_add_tags(itemid) {
	toggleDisplay('ADD-TAGS'); 
	toggleDisplay('ADDTAGSLINK');
	hideId("badwords");
	document.tagsedit.tags.value = document.tagsedit.origtags.value;
}

function fv_submit_join() {
	hideId("badwords");
	ret = fv_check_badwords_join();
	if (ret) return; // bypass submit if there are bad words.
	canSubmitJoin = 1;
//	var urlBase = siteurl+"index2.php?option=com_jam_fv&no_html=1&task=";
	var urlBase = siteurl+"index2.php";
	var postBodyBase = "option=com_jam_fv&no_html=1&task=";
	var r = new RegExp("[^0-9A-Za-z]", "i");
	var uRules = "No space, at least 4 characters, only numbers and letters";
	var pRules = "No space, at least 4 characters, only numbers and letters";
	var fRequired = "This field is required.";
	var doValidateEmail = 0;
	var doIsDuplicateEmail = 0;
	var doIsDuplicateUsername = 0;
	$("SHOWMSG").innerHTML = "";
	$("emailnote").innerHTML = "&nbsp;";
	if ($("email").value.trim() == "") {
		$("email").setStyle("background", "red");
		$("emailnote").setStyle("color", "red");
		$("emailnote").innerHTML = fRequired;
		canSubmitJoin = 0;
	} else {
//		var fValidateEmail = new Ajax(urlBase+"validateemail&email="+$("email").value, {method: 'get', onComplete: validateEmail }).request();	
//		var fIsDuplicateEmail = new Ajax(urlBase+"isduplicateemail&email="+$("email").value, {method: 'get', onComplete: isDuplicateEmail }).request();	
		//var fValidateEmail = new Ajax(urlBase, {postBody: postBodyBase+"validateemail&email="+$("email").value, onComplete: validateEmail }).request();	
		//var fIsDuplicateEmail = new Ajax(urlBase, {postBody: postBodyBase+"isduplicateemail&email="+$("email").value, onComplete: isDuplicateEmail }).request();	
		doValidateEmail = 1;
		doIsDuplicateEmail = 1;
	}
	$("usernamenote").innerHTML = uRules;
	$("usernamenote").setStyle("color", "gray");
	if ($("fvusername").value.length < 4) {
		$("fvusername").setStyle("background", "red");
		$("usernamenote").innerHTML = uRules;
		$("usernamenote").setStyle("color", "red");
		canSubmitJoin = 0;
	} else if (r.exec($("fvusername").value)) {
		$("fvusername").setStyle("background", "red");
		$("usernamenote").innerHTML = uRules;
		$("usernamenote").setStyle("color", "red");
		canSubmitJoin = 0;
	} else {
//		var fIsDuplicateUsername = new Ajax(urlBase+"isduplicateusername&username="+$("fvusername").value, {method: 'get', onComplete: isDuplicateUsername }).request();	
//		var fIsDuplicateUsername = new Ajax(urlBase, {postBody: postBodyBase+"isduplicateusername&username="+$("fvusername").value, onComplete: isDuplicateUsername }).request();	
		doIsDuplicateUsername = 1;
	}
	$("passwordnote").setStyle("color", "gray");
	$("password2note").innerHTML = "&nbsp;";
	if ($("password").value.length < 4) {
		$("password").setStyle("background", "red");
		$("passwordnote").innerHTML = pRules;
		$("passwordnote").setStyle("color", "red");
		canSubmitJoin = 0;
	} else if (r.exec($("password").value)) {
		$("password").setStyle("background", "red");
		$("passwordnote").innerHTML = pRules;
		$("passwordnote").setStyle("color", "red");
		canSubmitJoin = 0;
	} else if (($("password").value.trim() != "") && ($("password").value != $("password2").value)){
		$("password").setStyle("background", "red");
		$("password2").setStyle("background", "red");
		$("password2note").innerHTML = "Passwords must match!";
		$("password2note").setStyle("color", "red");
		canSubmitJoin = 0;
	}
	if ($("password2").value.length < 4) {
		$("password2").setStyle("background", "red");
		canSubmitJoin = 0;
	}
	if ($("cffirstname").value.trim() == "") {
		$("cffirstname").setStyle("background", "red");
		$("cffirstnamenote").setStyle("color", "red");
		$("cffirstnamenote").innerHTML = fRequired;
		canSubmitJoin = 0;
	}
	if ($("cfpostalcode").value.trim() == "") {
		$("cfpostalcode").setStyle("background", "red");
		$("cfpostalcodenote").setStyle("color", "red");
		$("cfpostalcodenote").innerHTML = fRequired;
		canSubmitJoin = 0;
	}
	$("cfgendernote").innerHTML = "&nbsp;";
	if (!$("cfgenderfemale").checked && !$("cfgendermale").checked) {
		$("cfgendernote").innerHTML = "Please pick a gender!";
		$("cfgendernote").setStyle("color", "red");
		canSubmitJoin = 0;
	}
	
	// Ajax calls are needed.
	if (doValidateEmail || doIsDuplicateEmail || doIsDuplicateUsername) {
		var fValidateFields = new Ajax(urlBase, {postBody: postBodyBase+"validatefields&username="+$("fvusername").value+"&email="+$("email").value, onComplete: processValidateFieldsResponse }).request();	
	}
	if (!canSubmitJoin) cannotSubmit();
}

function processValidateFieldsResponse() {
	//alert(responseXML);
	response = this.transport.responseXML.getElementsByTagName("response")[0];
	isDuplicateUsernameX = [getElementTextNS("isduplicateusername", response, 0)];
	if (isDuplicateUsernameX && isDuplicateUsernameX != notAvail) {
		isDuplicateUsername();
	}
	isDuplicateEmailX = [getElementTextNS("isduplicateemail", response, 0)];
	if (isDuplicateEmailX && isDuplicateEmailX != notAvail) isDuplicateEmail();
	isInvalidEmailX = [getElementTextNS("isinvalidemail", response, 0)];
	if (isInvalidEmailX && isInvalidEmailX != notAvail) isInvalidEmail();
	doSubmit();
}

function isInvalidEmail() {
	$("email").setStyle("background", "red");
	$("emailnote").innerHTML = "Email format is not valid!";
	$("emailnote").setStyle("color", "red");
	canSubmitJoin = 0;
	canSubmitAccount = 0;
}

function isDuplicateEmail() {
	$("email").setStyle("background", "red");
	$("emailnote").innerHTML = "Email is already in use!";
	$("emailnote").setStyle("color", "red");
	canSubmitJoin = 0;
	canSubmitAccount = 0;
}

function isDuplicateUsername() {
	$("fvusername").setStyle("background", "red");
	$("usernamenote").innerHTML = "Username is already in use!";
	$("usernamenote").setStyle("color", "red");
	canSubmitJoin = 0;
	canSubmitAccount = 0;
}

function doSubmit() {
	if ($("accountform")) {
		if (canSubmitAccount == 1) {
			document.accountform.submit();
		} else {
			cannotSubmit(); 
		}
	} else if ($("mosForm")) {
		if (canSubmitJoin == 1) {
			document.mosForm.submit();
		} else {
			cannotSubmit(); 
		}
	}
}

function fv_submit_account() {
	hideId("badwords");
	ret = fv_check_badwords_account();
	if (ret) return; // bypass submit if there are bad words.
	canSubmitAccount = 1;
	var urlBase = siteurl+"index2.php";
	var postBodyBase = "option=com_jam_fv&no_html=1&task=";
	var r = new RegExp("[^0-9A-Za-z]", "i");
	var pRules = "No space, at least 4 characters, only numbers and letters";
	var fRequired = "This field is required.";
	var doValidateEmail = 0;
	var doIsDuplicateEmail = 0;
	$("SHOWMSG").innerHTML = "";
	$("emailnote").innerHTML = "&nbsp;";
	if ($("email").value.trim() == "") {
		$("email").setStyle("background", "red");
		$("emailnote").setStyle("color", "red");
		$("emailnote").innerHTML = fRequired;
		canSubmitAccount = 0;
	} else {
		doValidateEmail = 1;
		doIsDuplicateEmail = 1;
	}
	$("passwordnote").setStyle("color", "gray");
	$("password2note").innerHTML = "&nbsp;";
	if ($("password").value.length > 0) {
		if ($("password").value.length < 4) {
			$("password").setStyle("background", "red");
			$("passwordnote").innerHTML = pRules;
			$("passwordnote").setStyle("color", "red");
			canSubmitAccount = 0;
		} else if (r.exec($("password").value)) {
			$("password").setStyle("background", "red");
			$("passwordnote").innerHTML = pRules;
			$("passwordnote").setStyle("color", "red");
			canSubmitAccount = 0;
		} else if (($("password").value.trim() != "") && ($("password").value != $("password2").value)){
			$("password").setStyle("background", "red");
			$("password2").setStyle("background", "red");
			$("password2note").innerHTML = "Passwords must match!";
			$("password2note").setStyle("color", "red");
			canSubmitAccount = 0;
		}
		if ($("password2").value.length < 4) {
			$("password2").setStyle("background", "red");
			canSubmitAccount = 0;
		}
	} else {
		$("password2").value = "";
	}
	if ($("cffirstname").value.trim() == "") {
		$("cffirstname").setStyle("background", "red");
		$("cffirstnamenote").setStyle("color", "red");
		$("cffirstnamenote").innerHTML = fRequired;
		canSubmitAccount = 0;
	}
	if ($("cfpostalcode").value.trim() == "") {
		$("cfpostalcode").setStyle("background", "red");
		$("cfpostalcodenote").setStyle("color", "red");
		$("cfpostalcodenote").innerHTML = fRequired;
		canSubmitAccount = 0;
	}
	$("cfgendernote").innerHTML = "&nbsp;";
	if (!$("cfgenderfemale").checked && !$("cfgendermale").checked) {
		$("cfgendernote").innerHTML = "Please pick a gender!";
		$("cfgendernote").setStyle("color", "red");
		canSubmitAccount = 0;
	}

	// Ajax calls are needed.
	if (doValidateEmail || doIsDuplicateEmail) {
		var fValidateFields = new Ajax(urlBase, {postBody: postBodyBase+"validatefields&email="+$("email").value, onComplete: processValidateFieldsResponse }).request();	
	}
	if (!canSubmitAccount) {
		cannotSubmit(); 
	}
}

function cannotSubmit() {
	$("SHOWMSG").innerHTML = "There was an error(s) with your submission.  Please correct the fields in question.  See the messages in red for more information.";
}

function fv_has_badwords(text) {
	var ret = false;
	var pos;
	if (text) {
		for (x=0; x < badwords_regexps.length; x++) {
			pos = text.search(badwords_regexps[x]);
			//alert(badwords_regexps[x] + " --- " + pos + " --- " + text);
			if (pos > -1) {
				return true;
			}
		}
	}
	return ret;
}

function fv_mark_badwords(text) {
	var pos;
	var markedtext = text;
	if (text) {
		for (y=0; y < badwords_regexps.length; y++) {
			pos = text.search(badwords_regexps[y]);
			if (pos > -1) {
				var bwstr = new String(badwords_regexps[y]);
				bwstr = bwstr.replace(/\\b/g,"");
				badword = bwstr.substr(1, bwstr.length - 3 );
				//alert(bwstr.length + " - " + bwstr + " - " + badword);
				markedtext = markedtext.replace(badwords_regexps[y], "<span class=\"red\">"+badword+"</span>");
			}
		}
	}
	return markedtext;
}

function fv_get_badword_fields_add_favorite() {
	var istitle = false;
	var istags = false;
	var isfulltext = false;
	var iscomment = false;
	var form = document.edititem;
	if (form.name)	istitle = fv_has_badwords(form.name.value);
	if (form.tag)	istags = fv_has_badwords(form.tag.value);
	if (form.desc)	isfulltext = fv_has_badwords(form.desc.value);
	if (form.comment)	iscomment = fv_has_badwords(form.comment.value);
	var fields = new Array();
	var x = 0;
	if (istitle) {
		fields.push(new Array());
		fields[x].push("Name");
		fields[x].push(form.name.value);
		fields[x].push("input-text");
		x = x + 1;
	}
	if (istags) {
		fields.push(new Array());
		fields[x].push("Tags");
		fields[x].push(form.tag.value);
		fields[x].push("input-text");
		x = x + 1;
	}
	if (isfulltext) {
		fields.push(new Array());
		fields[x].push("Description");
		fields[x].push(form.desc.value);
		fields[x].push("textarea");
		x = x + 1;
	}
	if (iscomment) {
		fields.push(new Array());
		fields[x].push("Comment");
		fields[x].push(form.comment.value);
		fields[x].push("textarea");
		x = x + 1;
	}
	return fields;
}

function fv_get_badword_fields_add_item() {
	var istitle = false;
	var istags = false;
	var isfulltext = false;
	var form = document.edititem;
	if (form.title)	istitle = fv_has_badwords(form.title.value);
	if (form.tags)	istags = fv_has_badwords(form.tags.value);
	if (form.fulltext)	isfulltext = fv_has_badwords(form.fulltext.value);
	var fields = new Array();
	var x = 0;
	if (istitle) {
		fields.push(new Array());
		fields[x].push("Item Name");
		fields[x].push(form.title.value);
		fields[x].push("input-text");
		x = x + 1;
	}
	if (istags) {
		fields.push(new Array());
		fields[x].push("Tags");
		fields[x].push(form.tags.value);
		fields[x].push("input-text");
		x = x + 1;
	}
	if (isfulltext) {
		fields.push(new Array());
		fields[x].push("Description");
		fields[x].push(form.fulltext.value);
		fields[x].push("textarea");
		x = x + 1;
	}
	return fields;
}

function fv_get_badword_fields_edit_item() {
	var istags = false;
	var isfulltext = false;
	var form = document.edititem;
	if (form.tags)	istags = fv_has_badwords(form.tags.value);
	if (form.fulltext)	isfulltext = fv_has_badwords(form.fulltext.value);
	var fields = new Array();
	var x = 0;
	if (istags) {
		fields.push(new Array());
		fields[x].push("Tags");
		fields[x].push(form.tags.value);
		fields[x].push("input-text");
		x = x + 1;
	}
	if (isfulltext) {
		fields.push(new Array());
		fields[x].push("Description");
		fields[x].push(form.fulltext.value);
		fields[x].push("textarea");
		x = x + 1;
	}
	return fields;
}

function fv_get_badword_fields_edit_member() {
	var isfirst = false;
	var islocation = false;
	var ispdesc = false;
	var form = document.editmember;
	if (form.cffirstname)	isfirst = fv_has_badwords(form.cffirstname.value);
	if (form.location)	islocation = fv_has_badwords(form.location.value);
	if (form.profiledescription)	ispdesc = fv_has_badwords(form.profiledescription.value);
	var fields = new Array();
	var x = 0;
	if (isfirst) {
		fields.push(new Array());
		fields[x].push("First Name");
		fields[x].push(form.cffirstname.value);
		fields[x].push("input-text");
		x = x + 1;
	}
	if (islocation) {
		fields.push(new Array());
		fields[x].push("Location");
		fields[x].push(form.location.value);
		fields[x].push("textarea");
		x = x + 1;
	}
	if (ispdesc) {
		fields.push(new Array());
		fields[x].push("About Me");
		fields[x].push(form.profiledescription.value);
		fields[x].push("textarea");
		x = x + 1;
	}
	return fields;
}

function fv_get_badword_fields_rating_dialog() {
	var istag = false;
	var form = document.tagform;
	if (form.tag)	istag = fv_has_badwords(form.tag.value);
	var fields = new Array();
	var x = 0;
	if (istag) {
		fields.push(new Array());
		fields[x].push("Tag");
		fields[x].push(form.tag.value);
		fields[x].push("input-text");
		x = x + 1;
	}
	return fields;
}

function fv_get_badword_fields_add_tags() {
	var istags = false;
	var form = document.tagsedit;
	if (form.tags)	istags = fv_has_badwords(form.tags.value);
	var fields = new Array();
	var x = 0;
	if (istags) {
		fields.push(new Array());
		fields[x].push("Tags");
		fields[x].push(form.tags.value);
		fields[x].push("input-text");
		x = x + 1;
	}
	return fields;
}

function fv_get_badword_fields_add_comment() {
	var iscomment = false;
	var form = document.addcomment;
	if (form.comment)	iscomment = fv_has_badwords(form.comment.value);
	var fields = new Array();
	var x = 0;
	if (iscomment) {
		fields.push(new Array());
		fields[x].push("Comment");
		fields[x].push(form.comment.value);
		fields[x].push("input-text");
		x = x + 1;
	}
	return fields;
}

function fv_get_badword_fields_account() {
	var isfirst = false;
	var ispc = false;
	var form = document.accountform;
	if (form.cffirstname)	isfirst = fv_has_badwords(form.cffirstname.value);
	if (form.cfpostalcode)	ispc = fv_has_badwords(form.cfpostalcode.value);
	var fields = new Array();
	var x = 0;
	if (isfirst) {
		fields.push(new Array());
		fields[x].push("First Name");
		fields[x].push(form.cffirstname.value);
		fields[x].push("input-text");
		x = x + 1;
	}
	if (ispc) {
		fields.push(new Array());
		fields[x].push("Postal Code");
		fields[x].push(form.cfpostalcode.value);
		fields[x].push("input-text");
		x = x + 1;
	}
	return fields;
}

function fv_get_badword_fields_join() {
	var isfirst = false;
	var isusername = false;
	var ispc = false;
	var form = document.mosForm;
	if (form.cffirstname)	isfirst = fv_has_badwords(form.cffirstname.value);
	if (form.username)	isusername = fv_has_badwords(form.username.value);
	if (form.cfpostalcode)	ispc = fv_has_badwords(form.cfpostalcode.value);
	var fields = new Array();
	var x = 0;
	if (isfirst) {
		fields.push(new Array());
		fields[x].push("First Name");
		fields[x].push(form.cffirstname.value);
		fields[x].push("input-text");
		x = x + 1;
	}
	if (isusername) {
		fields.push(new Array());
		fields[x].push("Username");
		fields[x].push(form.username.value);
		fields[x].push("textarea");
		x = x + 1;
	}
	if (ispc) {
		fields.push(new Array());
		fields[x].push("Postal Code");
		fields[x].push(form.cfpostalcode.value);
		fields[x].push("input-text");
		x = x + 1;
	}
	return fields;
}

function fv_check_badwords_add_favorite() {
	var fields = fv_get_badword_fields_add_favorite();
	if (fields.length == 0) return false;
	var ret = fv_show_badwords_dialog_add_fav(fields);
	return ret;
}

function fv_check_badwords_add_item() {
	var fields = fv_get_badword_fields_add_item();
	if (fields.length == 0) return false;
	var ret = fv_show_badwords_dialog(fields);
	return ret;
}

function fv_check_badwords_edit_item() {
	var fields = fv_get_badword_fields_edit_item();
	if (fields.length == 0) return false;
	var ret = fv_show_badwords_dialog(fields);
	return ret;
}

function fv_check_badwords_edit_member() {
	var fields = fv_get_badword_fields_edit_member();
	if (fields.length == 0) return false;
	var ret = fv_show_badwords_dialog(fields);
	return ret;
}

function fv_check_badwords_rating_dialog() {
	var fields = fv_get_badword_fields_rating_dialog();
	if (fields.length == 0) return false;
	//var ret = fv_show_badwords_tag(fields);
	return true;
}

function fv_check_badwords_add_tags() {
	var fields = fv_get_badword_fields_add_tags();
	if (fields.length == 0) return false;
	var ret = fv_show_badwords_dialog(fields);
	return ret;
}

function fv_check_badwords_add_comment() {
	var fields = fv_get_badword_fields_add_comment();
	if (fields.length == 0) return false;
	var ret = fv_show_badwords_dialog(fields, "badwordscomments");
	return ret;
}

function fv_check_badwords_account() {
	var fields = fv_get_badword_fields_account();
	if (fields.length == 0) return false;
	var ret = fv_show_badwords_dialog(fields);
	return ret;
}

function fv_check_badwords_join() {
	var fields = fv_get_badword_fields_join();
	if (fields.length == 0) return false;
	var ret = fv_show_badwords_dialog(fields);
	return ret;
}

function fv_show_badwords_dialog(fields, id) {
	if (!fields || fields.length == 0) return false;

	var innerHTML = "";
	innerHTML += "<h3>Badwords</h3>";
	innerHTML += "<p>There were badwords found in your entry.  Please alter the text that is red highlighted to something more appropriate.</p>";
	innerHTML += "<br />";
	innerHTML += "<ul>";
	for (x=0; x < fields.length; x++) {
		//alert(x + " - " + fields.length);
		innerHTML += "<li>";
		innerHTML += fields[x][0];
		innerHTML += "</li>";
		innerHTML += "<ul><li>";
		innerHTML += fv_mark_badwords(fields[x][1]);
		innerHTML += "</li></ul>";
		innerHTML += "<br />";
	}
	innerHTML += "</ul>";

	if (!id) id = "badwords";
	document.getElementById(id).innerHTML = innerHTML;
	showId(id);
	return true;
}

function fv_show_badwords_dialog_add_fav(fields, id) {
	if (!fields || fields.length == 0) return false;

	var innerHTML = "";
	innerHTML += "<p>Please alter the text that is red highlighted to something more appropriate.</p>";
	//innerHTML += "<br />";
	innerHTML += "<ul>";
	for (x=0; x < fields.length; x++) {
		//alert(x + " - " + fields.length);
		innerHTML += "<li>";
		innerHTML += fields[x][0] + " - ";
		innerHTML += "</li>";
		innerHTML += "<ul><li>";
		innerHTML += fv_mark_badwords(fields[x][1]);
		innerHTML += "</li></ul>";
		//innerHTML += "<br />";
	}
	innerHTML += "</ul>";

	if (!id) id = "badwords";
	document.getElementById(id).innerHTML = innerHTML;
	showId(id);
	return true;
}

function fv_show_badwords_tag(fields) {
	if (!fields || fields.length == 0) return false;

	var innerHTML = "";
	innerHTML += "<p>The tag is a badword.  Please revise.</p>";
	document.getElementById('badwordstag').innerHTML = innerHTML;
	return true;
}

















