function anyChecked(idName)
{
	var any = false;
				
	var ins = document.getElementsByTagName('input')
	var i;
	for(i=0;i<ins.length;i++)
	{
		if(ins[i].type=="checkbox" && ins[i].id == idName)
		{
			if(ins[i].checked == true)
				any = true;
		}				
	}

	return any;
}

function isModifierPrice(str)
{
	var re = /[^\. %\$ 0-9]/g
	if (re.test(str)) return false;
	return true;
}

function validateProductModifier()
{
        var status = true;
        var msg = '';
        var id = '';
        var section = null;
        setFocus = false;

	var title = $("input[name='title']:first");
	var anyAttr = false;
	var pricesOK = true;

	$('input.attribute_titles').each(function() {
		if($(this).val() != "" && $(this).val() != "Attribute")
		{
			var price = $(this).parents("tr:first").find("td:eq(2)").find("input[type='text']:first");
			if(!isModifierPrice(price.val()))
				pricesOK = false;

			anyAttr = true;
		}
	});

        if(isEmpty(title.val()))
        {
                msg = 'Please enter in a title.';
                id = 'pm_title';
		setFocus = true;
                status = false;
        }
        else if(!anyAttr)
        {
                msg = 'Please enter in some attributes for this modifier.';
                id = '';
                status = false;
        }
        else if(!pricesOK)
        {
                msg = 'Please check that the price offsets are correct. They must be a valid price or percentage.';
                id = '';
                status = false;
        }

        if(!status)
        {
                toggleJavascriptError(msg, id, section, setFocus);
        }

        return status;
}


function validateNewsletterList()
{
	var status = true;
	var msg = '';
	var id = '';
	var section = 0;

	var name = document.getElementById('name').value;

	if(isEmpty(name))
	{
		msg = 'Please enter in a name for this list.';
		id = 'name';

		status = false;
	}
	if(!status)
	{
		toggleJavascriptError(msg, id, section);
	}

	return status;
}

function validateNewsletterRecipient()
{
	var status = true;
	var msg = '';
	var id = '';
	var section = null;

	var name = document.getElementById('name').value;
	var email = document.getElementById('email').value;
	
	if(isEmpty(name))
	{
		msg = 'Please enter in a name for this recipient.';
		id = 'name';
		status = false;
	}
	else if(!isEmail(email))
	{
		msg = 'Please enter in a valid email address for the recipient.';
		id = 'email';
		status = false;
	}
	else if(document.getElementById('lists') && !anyChecked('lists'))
	{
		msg = 'Please select at least one list for this recipient to belong to.';
		id = 'lists';
		status = false;
	}
	if(!status)
	{
		toggleJavascriptError(msg, id, section);
	}

	return status;
}

function validateNewsletterCustomer()
{
	var status = true;
	var msg = '';
	var id = '';
	var section = 0;

	var email = document.getElementById('email').value;
	var newsletter_consent_method = document.getElementById('newsletter_consent_method').value;
	
	if(isEmpty(email))
	{
		msg = 'Please enter an email address';
		id = 'email';
		status = false;
	}
	else if(!isEmail(email))
	{
		msg = 'The email address seems invalid.';
		id = 'email';
		status = false;
	}

	else if(isEmpty(newsletter_consent_method))
	{
		msg = 'Please select a consent method';
		id  = 'newsletter_consent_method';
		status = false;
	}

	if(!status)
	{
		toggleJavascriptError(msg, id, section);
	}

	return status;
}

function validateNewsletterTemplate()
{
	var status = true;
	var msg = '';
	var id = '';
	var section = 0;
	setFocus = true;

	var name = document.getElementById('name').value;
	var template = FCKeditorAPI.GetInstance('template').GetHTML();

	if(isEmpty(name))
	{
		msg = 'Please enter in a name for this template.';
		id = 'name';
		status = false;
	}
	else if(!template.match(/\[content\]/g))
	{
		msg = 'You must have a [content] tag some where in your template. This specifies where the newsletter content will be placed.<br /><a href="javascript:void(0);" onclick="newsletterTemplateAddContentTag();">Automatically add this for me.</a>';
		id = 'template';
		setFocus = false;
		status = false;
	}
	if(!status)
	{
		toggleJavascriptError(msg, id, section, setFocus);
	}

	return status;
}

function validateNewsletterCopy()
{
	var status = true;
	var msg = '';
	var id = '';
	var section = null;

	var name = document.getElementById('name').value;

	if(isEmpty(name))
	{
		msg = 'Please enter in a name for this template.';
		id = 'name';
		status = false;
	}

	if(!status)
	{
		toggleJavascriptError(msg, id, section);
	}

	return status;
}

function newsletterTemplateAddContentTag()
{
	var template = FCKeditorAPI.GetInstance('template').GetHTML();
	
	template += '<p>[content]</p>';
	
	FCKeditorAPI.GetInstance('template').SetHTML(template);
}


function validateAddRecipients2List()
{
	var newsletter_list_id = document.getElementById('add_newsletter_list_id');
	
	if(isEmpty(newsletter_list_id.value))
	{
		alert("You must select a list to add these recipients to.");
		
		newsletter_list_id.selectedIndex = 0;
		
		return false;
	}
	else if(!anyChecked('selectedRecipients'))
	{
		alert("You must select at least one recipient.");
		
		newsletter_list_id.selectedIndex = 0;
		
		return false;
	}

	return true;
}

function validateAddCustomersToList()
{
	if(!anyChecked('customersToAdd'))
	{
		alert("You must select at least one customer to add.");

		return false;
	}
	else
	{
		var consentsSelected = true;
		
		var ins = document.getElementsByTagName('select')
		var i, divName;
		for(i=0;i<ins.length;i++)
		{
			if(ins[i].id == 'customersConsentMethod')
			{
				divName = ins[i].name;
				divName = divName.replace(/(customersConsentMethod|\[|\])/g,'');
				if(document.getElementById('consentMethod'+divName).style.display == 'block' && ins[i].value == '')
					consentsSelected = false;
			}				
		}
		
		if(consentsSelected)
		{
			return true;
		}
		else
		{
			alert("You must select a consent method for each customer.");
			
			return false;	
		}
			
	}

	return true;
}

function validateRemoveRecipientsFromList()
{
	var newsletter_list_id = document.getElementById('remove_newsletter_list_id');
	
	if(isEmpty(newsletter_list_id.value))
	{
		alert("You must select a list to remove these recipients from.");
		
		newsletter_list_id.selectedIndex = 0;
		
		return false;
	}
	else if(!anyChecked('selectedRecipients'))
	{
		alert("You must select at least one recipient.");
		
		newsletter_list_id.selectedIndex = 0;
		
		return false;
	}

	return true;
}

function validateNewsletter(checkEnquiryGroups)
{
	var status = true;
	var msg = '';
	var id = '';
	var section = null;
	var setFocus = true;
 	
	var subject = document.getElementById('subject').value;
	var content = FCKeditorAPI.GetInstance('content').GetHTML();
	var lists = anyChecked('newsletter_list_id');
	var termsConditions = document.getElementById('terms_conditions');
	var func = document.getElementById('newsletterFunc').value;
	var sentletter = document.getElementById('sentTimes').value;
	var sentRecp = document.getElementById('sentRecp').value;
	
	if(checkEnquiryGroups == true) {
		var enquiryGroups = anyChecked('group_id');
		
		var listCount = 0;
		var groupCount = 0;

		$("[name='newsletter_list_id[]']:checked").each(function(index) {
			listCount++;
		});

		$("[name='group_id[]']:checked").each(function(index) {
			groupCount++;
		});

		if(listCount > 0 && groupCount > 0) {
			var onlyListsOrGroups = false;
		}
	}
	
	if(isEmpty(subject))
	{
		msg = 'Please enter in a subject for this newsletter.';
		id = 'subject';
		section = 0;
		status = false;
	}
	else if(onlyListsOrGroups == false)
	{
		msg = 'You can only select lists OR groups, not both types. Unselect some lists or groups.';
		id = 'sendto';
		section = 0;
		status = false;
		setFocus = false;
	}
	else if(lists == false)
	{
		if(checkEnquiryGroups == true) {
			if(enquiryGroups == false) {
				msg = 'Please select at least one list or enquiry group to send this newsletter to.';
				id = 'sendto';
				section = 0;
				status = false;
				setFocus = false;
			}
		} else {
			msg = 'Please select at least one list to send this newsletter to.';
			id = 'sendto';
			section = 0;
			status = false;
			setFocus = false;
		}
	}
	else if(isEmpty(content))
	{
		msg = 'Please enter in some content for this newsletter.';
		id = 'content';
		section = 0;
		setFocus = false;
		status = false;
	}
	else if(func == "send" && termsConditions.checked == false)
	{
		msg = 'Before sending you must agree to the terms and conditions.';
		id = 'terms_conditions';
		section = 0;
		setFocus = false;
		status = false;
	}
	else
	{
		if(func == "send")
		{
			if(confirmSend(sentletter,sentRecp))
				return true;
			else
				return false;
		}
		else if(func == "save")
		{
	
			if(confirmNewsletterSave())
	
				return true;
			else
				return false;
		}
	}
	
	if(!status)
	{
		toggleJavascriptError(msg, id, section, setFocus);
	}

	return status;
}


function validateProduct()
{
	var status = true;
	var msg = '';
	var id = '';
	var section = 0;
	var setFocus = true;

	var productCatalogue = document.getElementById('PRODUCT_CATALOGUE').value;

	if(document.getElementById('code'))
		code = document.getElementById('code').value;

	if(document.getElementById('name'))
		pname = document.getElementById('name').value;

	if(document.getElementById('price'))
	{
		price = document.getElementById('price').value;
		price = price.replace("$","");
	}

	if(document.getElementById('special_price'))
	{
		special_price = document.getElementById('special_price').value;
		special_price = special_price.replace("$","");
	}

	if(document.getElementById('stockLevel'))
		stockLevel = document.getElementById('stockLevel').value;

	if(document.getElementById('weight'))
		weight = document.getElementById('weight').value;

	if(document.getElementById('images'))
		images = document.getElementById('images').value;

	if(document.getElementById('categories'))
	{
		categories = document.getElementById('categories');
		catArr = returnSelectedMultiple(categories);
	}
	else
	{
		catArr = ""
	}
	
	/*
	validate attached files.
	Enforce a title for each file.
	*/
	var digiProdOK = true;
	
	var fileInputs = $('.digiprod_file_input');
	
	if(fileInputs.length)
	{
		for(i=0;i<fileInputs.length;i++)
		{
			fileElem = $(fileInputs[i]);
			
			elemID = fileElem.attr("id");
			elemID = elemID.replace("file_", "");
			
			titleElem = $('#file_title_' + elemID);
			removeElem = $('#file_remove_' + elemID + ':checked');
			oldElem = $('#file_old_file_' + elemID);
			
			// if remove is not checked.
			if(removeElem.val() === undefined)
			{
				// if file is not empty and title is.
				if(fileElem.val() != "" && titleElem.val() == "")
				{
					digiProdOK = false;
				}
				
				// if oldElem exists AND
				// if old file is not empty and title is.
				if(oldElem.length)
				{
					if(oldElem.val() != "" && titleElem.val() == "")
					{
						digiProdOK = false;
					}
				}
			}
		}
	}
	
	/*
	validate attached documents.
	Enforce a title for each document.
	*/
	var prodDocOK = true;
	
	var docInputs = $('.prod_doc_input');
	
	if(docInputs.length)
	{
		for(i=0;i<docInputs.length;i++)
		{
			docElem = $(docInputs[i]);
			
			elemID = docElem.attr("id");
			elemID = elemID.replace("doc_", "");
			
			titleElem = $('#doc_title_' + elemID);
			removeElem = $('#doc_remove_' + elemID + ':checked');
			oldElem = $('#doc_old_doc_' + elemID);
			
			// if remove is not checked.
			if(removeElem.val() === undefined)
			{
				// if file is not empty and title is.
				if(docElem.val() != "" && titleElem.val() == "")
				{
					prodDocOK = false;
				}
				
				// if oldElem exists AND
				// if old doc is not empty and title is.
				if(oldElem.length)
				{
					if(oldElem.val() != "" && titleElem.val() == "")
					{
						prodDocOK = false;
					}
				}
			}
		}
	}

	imgFlag = true;
	imgMsg = '';
	imgId = '';
	imgSection = '';
	for(i=0;i<10;i++)
	{
		if(document.getElementById('image'+i))
		{
			theimage = document.getElementById('image'+i).value;
			if(!isEmpty(theimage) && !isImage(theimage))
			{
				imgFlag = false;
				imgMsg = 'The image must be of the format JPG or PNG.';
				imgId = 'image'+i;
				imgSection = 2;

				break;
			}
		}
	}

	if(isEmpty(code) && productCatalogue == 0)
	{
		msg = 'Please enter in a product code.';
		id = 'code';
		section = 0;
		status = false;
	}		
	else if(isEmpty(pname))
	{
		msg = 'Please enter in a name for this product.';
		id = 'name';
		section = 0;
		status = false;
	}
	else if(isEmpty(price) && productCatalogue == 0)
	{
		msg = 'Please enter in a price.';
		id = 'price';
		section = 0;
		status = false;
	}
	else if(!isPrice(price) && productCatalogue == 0)
	{
		msg = 'Product price must contain only numerical values.';
		id = 'price';
		section = 0;
		status = false;
	}
	else if((!isEmpty(special_price) && !isPrice(special_price)) && document.getElementById('special_price') && productCatalogue == 0)
	{
		msg = 'Special Price must contain only numerical values.';
		id = 'special_price';
		section = 0;
		status = false;
	}
	else if(catArr.length == 0)
	{
		msg = 'You must select at least one category for this product.';
		id = 'categories';
		section = 2;
		setFocus = false;
		status = false;
	}
	else if(digiProdOK == false)
	{
		msg = 'You must enter in a title for each file.';
		id = '';
		section = 3;
		setFocus = false;
		status = false;
	}
	else if(prodDocOK == false)
	{
		msg = 'You must enter in a title for each document.';
		id = '';
		section = 5;
		setFocus = false;
		status = false;
	}
	else if(imgFlag == false)
	{
		msg = imgMsg;
		id = imgId;
		section = imgSection;
		setFocus = false;
		status = false;
	}
	else
	{
		status = true;
	}
				
	if(!status)
	{			
		toggleJavascriptError(msg, id, section, setFocus);
	}

	return status;
}

function validateLabel()
{
	var status = true;
	var msg = '';
	var id = '';
	var section = null ;
	var setFocus = true;
	
	var name = document.getElementById('name').value;
	
	if(isEmpty(name))
	{
		
		msg = 'Please enter a name for the label';
		id = 'name';
		status = false;
		setFocus = false;
	}

	if(!status)
	{	
		
		toggleJavascriptError(msg, id, section, setFocus);
	}

	return status;	
}

function validateLabelType()
{
	var status = true;
	var msg = '';
	var msgdes= '';
	var msgdis='';
	var msgAllow='';
	var id = '';
	var setFocus = true;
	var section = null;
	var name = document.getElementById('name').value;
	
	var display = document.getElementById('display').value; 
	var allowMul = document.getElementById('allow_multiples').value; 
	
	
	if(isEmpty(name))
	{
		msg = 'Please enter a name for the label';
		id = 'name';
		status = false;
		setFocus = false;
	}

	if(isEmpty(display))
	{
		msg = 'Please select to display the label type option';
		id = 'display';
		status = false;
		setFocus = false;
	}
	
	if(isEmpty(allowMul))
	{
		msg = 'Please select to allow multiples for the label type option';
		id = 'allow_multiples';
		status = false;
		setFocus = false;
	}
	
	
	if(!status)
	{	
		toggleJavascriptError(msg, id, section, setFocus);
		
	}

	return status;	
}

function validateDirectory()
{
	var status = true;
	var msg = '';
	var id = '';
	var section = 0;
	var setFocus = true;

	if(document.getElementById('business_name'))
		var business_name = document.getElementById('business_name').value;
		
	if(document.getElementById('address'))
		var address = document.getElementById('address').value;
		
	if(document.getElementById('contact_person'))
		var contact_person = document.getElementById('contact_person').value;

	if(document.getElementById('parent_category_id'))
	{
		var categories = document.getElementById('parent_category_id');
		var catArr = returnSelectedMultiple(categories);
	}
	else
	{
		var catArr = ""
	}

	if(isEmpty(business_name))
	{
		msg = 'Please enter in a business name.';
		id = 'business_name';
		section = 0;
		status = false;
	}
	else if(isEmpty(address))
	{
		msg = 'Please enter in a address.';
		id = 'address';
		section = 0;
		status = false;
	}
	else if(isEmpty(contact_person))
	{
		msg = 'Please enter in a contact person.';
		id = 'contact_person';
		section = 0;
		status = false;
	}
	else if(catArr.length == 0)
	{
		msg = 'You must select at least one category.';
		id = 'parent_category_id';
		section = 3;
		setFocus = false;
		status = false;
	}
	else
	{
		status = true;
	}
				
	if(!status)
	{			
		toggleJavascriptError(msg, id, section, setFocus);
	}

	return status;
}

function validateBlog()
{
	var status = true;
	var msg = '';
	var id = '';
	var section = 0;
	var setFocus = true;

	if(document.getElementById('title'))
		var title = document.getElementById('title').value;
		
	if(document.getElementById('author'))
		var author = document.getElementById('author').value;

	if(document.getElementById('blogCategories'))
	{
		var categories = document.getElementById('blogCategories');
		var catArr = returnSelectedMultiple(categories);
	}
	else
	{
		var catArr = ""
	}

	if(isEmpty(title))
	{
		msg = 'Please enter in a title.';
		id = 'title';
		section = 0;
		status = false;
	}
	else if(isEmpty(author))
	{
		msg = 'Please enter in a author.';
		id = 'author';
		section = 0;
		status = false;
	}
	else if(catArr.length == 0)
	{
		msg = 'You must select at least one category.';
		id = 'blogCategories';
		section = 1;
		setFocus = false;
		status = false;
	}
	else
	{
		status = true;
	}
				
	if(!status)
	{			
		toggleJavascriptError(msg, id, section, setFocus);
	}

	return status;
}
