function submitbutton(pressbutton, validate) {
	
	if (!validate) {
		validate = false;	
	}
	
	var form = document.adminForm;
	form.task.value=pressbutton;
	
	var pass = true;
	
	if (pressbutton == 'save' || validate == true) {
		pass = validateForm();
	}

	if (pressbutton == 'trash') {
		if (document.adminForm.boxchecked.value == 0) {
			alert("Please select items to delete");
			pass = false;
		} else if ( confirm("Are you sure you wish to delete these items")) {
			pass = true;
		} else {
			pass = false;
		}
	}
	
	if (pass) {
		form.submit();
	} else {
		return false;	
	}
}

function testForObject(Id, Tag)
{
  var o = document.getElementById(Id);
  if (o)
  {
    if (Tag)
    {
      if (o.tagName.toLowerCase() == Tag.toLowerCase())
      {
        return o;
      }
    }
    else
    {
      return o;
    }
  }
  return null;
}

function addAttachment() {
	
	var filebox = new Element('input', {
		'class'	:	'inputbox',
		'type'	:	'file',
		'name'	:	'file[]'
	});
	
	var brk = new Element('br');
	$('attachments').appendChild(brk);
	$('attachments').appendChild(filebox);
}

/* QUICK ADD MODAL */
function quicksubmit(pressbutton) {
	var form = document.quickAddForm;
	form.task.value=pressbutton;
	
	var pass = true;
	
	if(pressbutton == 'cancel') {
		closeModal();
		return false;
	}
	
	if (pressbutton == 'quickAdd') {
		var model = $$('#quickAddForm .open').getProperty('id');
		$('model').setProperty('value',model);
		var container = model+'QuickAdd';
		
		pass = validateForm(container);
	}
	
	if (pass) {
		form.submit();
	} else {
		closeModal();	
	}

}
function validateComment() {
// JW	var message = tinyMCE.getContent();
	var message = getTinyMceContent(); // JW
	
	if (message == '') {
		alert('Please enter a reply.')
		return false;
	} else {
		return true;
	}
}
function validateForm(container) {
	
	var inputs = '';
	var selects = '';
	var textareas = '';
	
	if (container) {
		inputs += '#'+container+' ';
		selects += '#'+container+' ';
		textareas += '#'+container+' ';
	}
	
	inputs += 'input.required';
	selects += 'select.required';
	textareas += 'textarea.required';
	
	var tags = new Array(inputs,selects,textareas);
	var tagString = tags.join(', ',tags);
	var pass = true;
	var msg = "Please fill out all fields.";
	
	$$(tagString).each(function(el) {
		value = el.getProperty('value');
	
		if (!value) {
			pass = false;
			if (!el.hasClass('hilite')) {
				el.addClass('hilite');
				var name = el.getProperty('name');
				var id = el.getProperty('id');
				if (document.getElement('label[for='+id+']')) {
					document.getElement('label[for='+id+']').addClass('labelHilite');
				} else if (document.getElement('label[for='+name+']')) {
					document.getElement('label[for='+name+']').addClass('labelHilite');
				}
			}
		} else {
			if (el.hasClass('hilite')) {
				el.removeClass('hilite');	
				var name = el.getProperty('name');
				var id = el.getProperty('id');
				if (document.getElement('label[for='+id+']')) {
					document.getElement('label[for='+id+']').removeClass('labelHilite');
				} else if (document.getElement('label[for='+name+']')) {
					document.getElement('label[for='+name+']').removeClass('labelHilite');
				}
			}
		}
	});
		
	var validTill = testForObject('validtill');
	if (validTill) {
		if($('validtill').value < $('publishdate').value) {
			pass = false;
			document.getElement('label[for=validtill]').addClass('labelHilite');
			document.getElement('label[for=publishdate]').addClass('labelHilite');
			msg = 'Valid Till Date must be after Start Publishing Date';
		}

		if($('serviceSelect_0').value=='') {
			pass = false;
			document.getElement('.listTitle').addClass('labelHilite');
			msg = 'You must define at least one service item.';
		}
		
	}	

	if (!pass) {
		alert(msg);	
	}
	
	return pass;

}

function saveServicesForm(pressbutton) {
	
	if (pressbutton == 'save') {
		updateTotals();	
	}
	
	submitbutton(pressbutton);
}

function initializeTinyMCE() {
	tinyMCE.init({
		mode : "textareas",
		theme : "advanced",
		theme_advanced_buttons1 : "bold,italic,underline,separator,strikethrough,justifyleft,justifycenter,justifyright, justifyfull,bullist,numlist,undo,redo,link,unlink",
		theme_advanced_buttons2 : "",
		theme_advanced_buttons3 : "",
		theme_advanced_toolbar_location : "top",
		theme_advanced_toolbar_align : "left",
		theme_advanced_statusbar_location : "bottom",
		theme_advanced_resizing : true,
		theme_advanced_resize_horizontal : false
		});	
}

function refreshModals() {
	SqueezeBox.initialize({});
		$$('a.modal').each(function(el) {
			el.addEvent('click', function(e) {
				new Event(e).stop();
				SqueezeBox.fromElement(el);
			});
		});
	
}
function refreshTooltips() {
	var JTooltips = new Tips($$('.hasTip'), { maxTitleChars: 50, fixed: false});
}

function subscribeMe(id,type, pid) {
	var url = 'index.php?format=raw&option=com_jforce&c=ajax&task=subscribeMe';
	var postData = 'id='+id;
	postData += '&type='+type;
	postData += '&pid='+pid;
	new Ajax(url, {
		method: 'post',
		onSuccess: function(response) {
			$('subscribeLink').setHTML(response);
		}
	}).request(postData);
	
}

function remindPeople(id,type) {
	var url = 'index.php?format=raw&option=com_jforce&c=ajax&task=remindPeople';
	var postData = 'id='+id;
	postData += '&type='+type;
	new Ajax(url, {
		method: 'post',
		onSuccess: function(response) {
		alert('A reminder email has been sent');
		// Response Option Here
		}
	}).request(postData);
	
}

function subscribeMeTask(id,type, pid) {
	var url = 'index.php?format=raw&option=com_jforce&c=ajax&task=subscribeMe';
	var postData = 'id='+id;
	postData += '&type='+type;
	postData += '&pid='+pid;
	new Ajax(url, {
		method: 'post',
		onSuccess: function(response) {
			$('s'+id).setHTML(response);
		}
	}).request(postData);
	
}

function toggleMilestone(id) {
	var url = 'index.php?format=raw&option=com_jforce&c=ajax&task=toggleMilestone';
	var postData = 'id='+id;
	new Ajax(url, {
		method: 'post',
		onSuccess: function(response) {
			var response = ajaxDecode(response);
			$('milestoneStatus').setHTML(response[0]);
			$('toggleLink').setHTML(response[1]);
		}
	}).request(postData);
}

function toggleBillable(id) {
	var url = 'index.php?format=raw&option=com_jforce&c=ajax&task=toggleBillable';
	var postData = 'id='+id;
	new Ajax(url, {
		method: 'post',
		onSuccess: function(response) {
			$(id).setProperty('src', response);
		}
	}).request(postData);
}

function togglePotentialType() {
	var leadvisibility = $('lead0').getProperty('checked');	

	if(leadvisibility == false) {
		$('leadfield').setStyle('display','block');
		$('companyfield').setStyle('display','none');
	} else {
		$('leadfield').setStyle('display','none');
		$('companyfield').setStyle('display','block');
	}
}
	
function toggleJUserBlock() {
	
	if ($('uidList').getProperty('value') == '') {
		$('JUserBlock').setStyle('display', 'block');	
	} else {
		$('JUserBlock').setStyle('display', 'none');
	}
	
}
	
function updateIcon(model) {
	var id = window.parent.$('id').value;
	var url = 'index.php?format=raw&option=com_jforce&c=ajax&task=getProfileIcon';
	var postData = 'id='+id;
	postData += '&model='+model;
	new Ajax(url, {
		method: 'post',
		onSuccess: function(response) {
			var previewLogo = window.parent.$('previewLogo');
			previewLogo.setHTML(response);
		}
	}).request(postData);
}

function removeIcon(model) {
	var id = window.parent.$('id').value;
	
	var url = 'index.php?format=raw&option=com_jforce&c=ajax&task=removeProfileIcon';
	var postData = 'id='+id;
	postData += '&model='+model;
	new Ajax(url, {
		method: 'post',
		onSuccess: function(response) {
			if(model == 'person') {
				var path = 	'jf_projects/people_icons/default_large.png';
			} else {
				var path = 	'jf_projects/company_icons/default_large.png';
			}
			var img = window.parent.$('previewLogo').getElement('img');
			img.setProperty('src', path);
		}
	}).request(postData);
}

function selectOptions() {
	var allOptions = $$('#unsubSelect option');
	
	var selectedOptions = $$('#subSelect div');
	
	for (var i=0; i<allOptions.length; i++) {
		var option = allOptions[i];
		if (option.selected == true) {	
			moveOption(option);
		}
	}
	
}

function in_ElementArray(needle, haystack) {
	var pass = false;
	
	for (var i=0; i<haystack.length; i++) {
		if(haystack[i].id == needle) {
			pass = true;	
		}
	}
	
	return pass;

}

function in_array(needle, haystack) {
	var pass = false;
	
	for (var i=0; i<haystack.length; i++) {
		if(haystack[i] == needle) {
			pass = true;	
		}
	}
	
	return pass;

}

function closeModal() {
	window.parent.$('sbox-window').close();	
}

function loadSelectedUsers() {
	if ($('type')) {
		if ($('type').value == 'assignment') {
			var div = '#hiddenAssignments';
			var parent = 'asgmntVisible_';
		} else {
			var div = '#hiddenSubscriptions';
			var parent = 'subVisible_';
		}
	} else {
		var div = '#hiddenSubscriptions';
		var parent = 'subVisible_';
	}
	
	var current = new Array();
	
	window.parent.$$(div+' input').each(function(el) {
		var value = el.value;
		var text = window.parent.$(parent+value).innerHTML;
		createSelectedOption(value, text);
	});
	
}

function moveOption(option) {
	var selectedOptions = $$('#subSelect div');
	var divid = 'selectedUser_'+option.value;
	if(in_ElementArray(divid, selectedOptions)) {
		var div = $(divid);
		highlightDiv(div);
	} else {
		var value = option.value;
		var text  = option.innerHTML;
		createSelectedOption(value, text);
	}
	
}

function createSelectedOption(value, text) {
	var holder = $('subSelect');
	var newSelectDiv = new Element('div', {
		'class'	:	'selectedUser',
		'id'	:	'selectedUser_'+value
	});
	
	var newSelectSpan = new Element('span', {
		'id'	:	'selectedUserName_'+value
	});
	
	var newSelectRemove = new Element('a', {
		'id'		:	'remove_'+value,
		'class'		:	'removeLink',
		'events'	:	{
			'click'		:	function() {
				removeOption('selectedUser_'+value);	
			}
		}
	});
	newSelectRemove.setHTML('<img src="components/com_jforce/images/removeLite.png" border="0" class="removeLite" />');
	var hiddenField = new Element('input', {
		'type'		:	'hidden',
		'name'		:	'selectedUsers[]',
		'value'		:	value
	});
	
	var newSelectText = document.createTextNode(text);

	newSelectDiv.appendChild(newSelectRemove);
	newSelectSpan.appendChild(newSelectText);
	newSelectDiv.appendChild(newSelectSpan);
	newSelectDiv.appendChild(hiddenField);
	
	holder.appendChild(newSelectDiv);
	
	highlightDiv(newSelectDiv);
}

function removeOption(id) {
	var div = $(id);
	$('subSelect').removeChild(div);
}

function getBGColor(div) {
	var bgColor = div.getStyle('background-color');
	
	if(bgColor == 'transparent') {
		var parent = div.getParent();
		bgColor = getBGColor(parent);
	} 
	
	if(bgColor != 'transparent') {
		return bgColor;
	}
	
}

function highlightDiv(div, color) {
	
	if(!color) {
		var color = getBGColor(div);
	}
	
	var fx = new Fx.Style(div, 'background-color', {duration:500});
	fx.start(color,'#fffdd0').chain(function() {
		this.start('#fefdd5', color)
	});
	
}
	


function arrayDiff(array1, array2) {
	var diff = new Array();
	array1.each(function(a) {
		if (!in_array(a, array2)) {
			diff.push(a);
		}
	
	});
	return diff;
}

function saveSubscriptions() {
	if ($('type')) {
		if ($('type').value == 'assignment') {
			var div = '#hiddenAssignments';	
			var type = 'assignment';
		} else {
			var div = '#hiddenSubscriptions';
			var type = 'subscription';
		}
	} else {
		var div = '#hiddenSubscriptions';
		var type = 'subscription';
	}
	
	var selected = new Array();
	var current = new Array();
	
	window.parent.$$(div+' input').each(function(el) {
		current.push(el.value);									 
	});

	$$('input[type=hidden]').each(function(el) {
		if (el.id != 'type') {
			selected.push(el.value);								   
		}
	});

	var toDelete = arrayDiff(current, selected);
	var toAdd = arrayDiff(selected, current);
	
	if (type == 'assignment') {
		storeAssignments(toDelete, toAdd);
	} else {
		storeSubscriptions(toDelete, toAdd);
	}
}

function storeAssignments(toDelete, toAdd) {
	
	toDelete.each(function(id) {
		var hiddenField = window.parent.$('asgmntHidden_'+id);
		var listField = window.parent.$('asgmntVisible_'+id);
		window.parent.$('currentAssignments').removeChild(listField);
		window.parent.$('hiddenAssignments').removeChild(hiddenField);
	});
	
	toAdd.each(function(id) {
		var username = $('selectedUserName_'+id).innerHTML;
		
		/* JW BEGIN: IE FIX */
		var listField       = window.parent.document.createElement('div');
		listField.className = 'assignedList';
		listField.id        = 'asgmntVisible_'+id;
		listField.innerHTML = username;

		var hiddenField   = window.parent.document.createElement('input');
		hiddenField.type  = 'hidden';
		hiddenField.id    = 'asgmntHidden_'+id;
		hiddenField.name  = 'hiddenAssignment[]';
		hiddenField.value = id;
		/* JW END */
/* JW		
		var listField = new Element('div', {
			'class'	:	'assignedList',
			'id'	:	'asgmntVisible_'+id
		});
		listField.setHTML(username);
		var hiddenField = new Element('input', {
			'type'	:	'hidden',
			'id'	:	'asgmntHidden_'+id,
			'name'	:	'hiddenAssignment[]',
			'value'	:	id
		});
*/		
		window.parent.$('currentAssignments').appendChild(listField);
		window.parent.$('hiddenAssignments').appendChild(hiddenField);
	});
	
	if(window.parent.$$('#currentAssignments div').length) {
		window.parent.$('noAssignments').setStyle('display', 'none');
	} else {
		window.parent.$('noAssignments').setStyle('display', 'block');
	}
	
}

function storeSubscriptions(toDelete, toAdd) {
	
	toDelete.each(function(id) {
		var hiddenField = window.parent.$('subHidden_'+id);
		var listField = window.parent.$('subVisible_'+id);
		window.parent.$('currentSubscriptions').removeChild(listField);
		window.parent.$('hiddenSubscriptions').removeChild(hiddenField);
	});
	
	toAdd.each(function(id) {
		var username = $('selectedUserName_'+id).innerHTML;

		/* JW BEGIN: IE FIX */
		var listField       = window.parent.document.createElement('div');
		listField.className = 'subscribedList';
		listField.id        = 'subVisible_'+id;
		listField.innerHTML = username;

		var hiddenField   = window.parent.document.createElement('input');
		hiddenField.type  = 'hidden';
		hiddenField.id    = 'subHidden_'+id;
		hiddenField.name  = 'hiddenSubscription[]';
		hiddenField.value = id;
		/* JW END */		
/* JW		
		var listField = new Element('div', {
			'class'	:	'subscribedList',
			'id'	:	'subVisible_'+id
		});
		listField.setHTML(username);
		var hiddenField = new Element('input', {
			'type'	:	'hidden',
			'id'	:	'subHidden_'+id,
			'name'	:	'hiddenSubscription[]',
			'value'	:	id
		});
*/		
		window.parent.$('currentSubscriptions').appendChild(listField);
		window.parent.$('hiddenSubscriptions').appendChild(hiddenField);
	});


	if(window.parent.$$('#currentSubscriptions div').length) {
		window.parent.$('noSubscriptions').setStyle('display', 'none');
	} else {
		window.parent.$('noSubscriptions').setStyle('display', 'block');
	}
}
				
function deleteItem(item){ 
	var fadebox = $("service_"+item); 
	if (fadebox) {
		var fx = fadebox.effects({duration: 300});
		fx.start ({
			opacity: 1
		}).chain(function() {
			fx.start.delay(0, fx, {
				opacity: 0
			});
		}).chain(function() {
			fx.start ({
				opacity: 0,
				width: 0,
				height: 0
			});
		}).chain(function() {
			fadebox.remove();	
		});
	}	
		
}

function updateId(id, count) {
	var idArray = id.split('_');
	idArray[1] = count;
	newId = idArray.join('_');
	return newId;
}

function addService() {
	var count = $$('div.serviceTotals').length - 1;
	var k = 1 - count%2;
	
	var last = count - 1;
	
	var serviceRow = $('service_'+last).clone();
	serviceRow.setProperty('id', 'service_'+count);
	
	var toChange = new Array(
		'totalHidden_'+last,
		'subtotalHidden_'+last,
		'descriptionHidden_'+last,
		'descriptionEdit_'+last,
		'descriptionEditLink_'+last,
		'description_'+last,
		'priceField_'+last,
		'serviceSelect_'+last,
		'removeLink_'+last,
		'subtotal_'+last,
		'total_'+last
	);
	
	var output = '';
	serviceRow.getElements('*').each(function(el) {
		var oldId = el.getProperty('id');
		
		if (in_array(oldId, toChange)) {
			var newId = updateId(oldId, count);
			el.setProperty('id', newId);
		}
	});	
	
	var servicesArea = $('servicesArea');
	servicesArea.appendChild(serviceRow);
		
	$$('#service_'+count+' input').each(function(el) {
		if (el.getProperty('name') == 'services[quantity][]') {
			el.setProperty('value', '1');
		} else {
			el.removeProperty('value');											 
		}
	});
	
	$$('#service_'+count+' select').each(function(el) {
		el.removeProperty('value');	
		el.addEvent('change', function() {
			updateTotals();							   
		});
	});
	
	$('removeLink_'+count).removeEvents('click');
	
	$('removeLink_'+count).addEvent('click', function() {
		var removeId = this.id.substr(11);											  
		deleteItem(removeId);
	});
	
	$('serviceSelect_'+count).addEvent('change', function() {
		getServiceInfo(this.value, this.id);													  
	});
	
	$('descriptionEditLink_'+count).removeEvents('click');
	$('descriptionEditLink_'+count).setProperty('href', 'index.php?option=com_jforce&c=general&view=modal&layout=editdescription&tmpl=component&i='+count);										   
	
	$('description_'+count).setHTML(null);
	$('subtotal_'+count).setHTML('0');
	$('total_'+count).setHTML('0');
	
	initializeTinyMCE();
	refreshModals();
	
	$$('#servicesArea input').addEvent('blur', function() {
		updateTotals();												 
	});
	
}

function confirmAction(action) {
	if(confirm('Are you sure you want to '+action+' this item?')) {
		return true;
	} else {
		return false;
	}
}

function updateTotals() {
	
	var serviceCount = $$('div.serviceTotals').length - 1;

	var totalDiscount	= 0;
	var totalTax		= 0;
	var totalSubtotal	= 0;
	var grandTotal		= 0;
	

	for (var i=0; i<serviceCount; i++) {
		var service = $('service_'+i);
		
		var inputs = service.getElements('input');
		var selects = service.getElements('select');
		
		var priceField = inputs[0];
		var subtotalField = inputs[5];
		var discountField = inputs[1];
		var quantityField = inputs[2];
		var totalHiddenField = inputs[4];
		
		var taxField = selects[1];
		var discountType = selects[0];
		var discountAmount	= 0;
		
		var subtotal = priceField.value.replace(',', '') * quantityField.value.replace(',', '');
		
		subtotalField.setProperty('value', subtotal);
		$('subtotal_'+i).setHTML(formatCurrency(subtotal));
	
	
		if (discountField.value != '') {
			if (discountType.value == 'amount') {
					discountAmount = parseFloat(discountField.value);
				} else if (discountType.value == 'percent') {
					var rate = parseFloat(discountField.value);
					discountAmount = subtotal*(rate/100);
				}
		}

		var taxRate = (taxField.value/100)+1;
		
		var total = (subtotal - discountAmount)*taxRate;
		totalHiddenField.setProperty('value', total);
		$('total_'+i).setHTML(formatCurrency(total));
		
		var taxAmount = total - (subtotal-discountAmount);
	
		totalDiscount 	+= discountAmount;
		totalTax		+= taxAmount;
		totalSubtotal	+= subtotal;
		grandTotal		+= total;
	}
	
	$('subtotal').setHTML(formatCurrency(totalSubtotal));
	$('discount').setHTML(formatCurrency(totalDiscount));
	$('tax').setHTML(formatCurrency(totalTax));
	$('total').setHTML(formatCurrency(grandTotal));
	
	$('subtotalHidden').setProperty('value', totalSubtotal.toFixed(2));
	$('discountHidden').setProperty('value', totalDiscount.toFixed(2));
	$('taxHidden').setProperty('value', totalTax.toFixed(2));
	$('totalHidden').setProperty('value', grandTotal.toFixed(2));
	

}

function getServiceInfo(service, id) {
	
	var i = id.substr(14);
	
	if (service != '' && service != '0') {
		var url = 'index.php?format=raw&option=com_jforce&c=ajax&task=getServiceInfo';
		var postData = 'id='+service;
		new Ajax(url, {
			method: 'post',
			onSuccess: function(response) {
				response = ajaxDecode(response);
				$('priceField_'+i).setProperty('value', response[0]);
				$('descriptionHidden_'+i).setProperty('value', response[1]);
				$('description_'+i).setHTML(response[1]);
				updateTotals();
			}
		}).request(postData);
	} else {
		$('priceField_'+i).setProperty('value', 0);
		$('descriptionHidden_'+i).removeProperty('value');
		$('description_'+i).setHTML(null);
	}
	
	
	updateTotals();
	
}

function editDescription(i) {
	var text = window.parent.$('descriptionHidden_'+i).value;
	
	$('descriptionText').setProperty('value', text);
	
}

function saveDescription() {
	var i = $('i').value;
	var descriptionDiv = window.parent.$('description_'+i);
	var text = getTinyMceContent(); // JW
	window.parent.$('descriptionHidden_'+i).setProperty('value', text);
	descriptionDiv.setHTML(text);
	closeModal();
	
}

function toggleDescription(id) {
	var i = id.substr(20);
	
	var descriptionDiv = $('description_'+i);
	var descriptionText = $('descriptionEdit_'+i);
	var editLink = $(id);
	var textArea = $('descriptionHidden_'+i);
	
	var editorId = parseInt(i+1);
	
	if (descriptionText.getStyle('display') == 'block') {
		var text = tinyMCE.get('mce_editor_'+editorId).getContent(); 
		descriptionDiv.setHTML(text);
		descriptionText.setStyle('display', 'none')
		descriptionDiv.setStyle('display', 'block');
		editLink.setHTML('Edit');
	
	} else {
		descriptionText.setStyle('display', 'block')
		descriptionDiv.setStyle('display', 'none');
		editLink.setHTML('Save');
	}
	
	
}

function initProjectRoles() {

	$('accessrole').addEvent('change', function() {
		toggleCustomProjectRoles();								 
	});
}

function initAutoAddToggle() {
	
	$('auto_add0').addEvent('change', function() {
		autoAddToggle();								 
	});
	$('auto_add1').addEvent('change', function() {
		autoAddToggle();								 
	});
}

function autoAddToggle() {
	if($('accessrole').getProperty('value') != '') {
		$('projectPermissions').setStyle('display','none');
		$('customProjectRoles').setStyle('display', 'none');			
	} else {
		$('projectPermissions').setStyle('display','block');	
		toggleCustomProjectRoles();
	}
}
function toggleCustomProjectRoles() {
	var projectrole = $('accessrole').value;
	
	if (projectrole != '') {
		$('customProjectRoles').setStyle('display', 'none');	
	} else {
		$('customProjectRoles').setStyle('display', 'block');
	}
	
}

function prefillCompanyFields(id) {

	var url = 'index.php?format=raw&option=com_jforce&c=ajax&task=prefillCompany';

	var postData = 'id='+id;

	new Ajax(url, {
		method: 'post',
		onSuccess: function(response) {
			var company = ajaxDecode(response);
			var companyName = company[0];
			var companyAddress = company[1];
			var companyPhone = company[2];
			var companyFax = company[3];
			var companyHomepage = company[4];

			$('name').value = companyName;
			$('address').value = companyAddress;
			$('phone').value = companyPhone;
			$('fax').value = companyFax;
			$('homepage').value = companyHomepage;

			if(companyName) {
				$$('input[type=text]').setProperty('readonly','readonly'); 
			} else {
				$$('input[type=text]').removeProperty('readonly'); 
			}
		}
	}).request(postData);
}

function prefillProjectFields(pid) {

	var url = 'index.php?format=raw&option=com_jforce&c=ajax&task=prefillProject';

	var postData = 'pid='+pid;

	new Ajax(url, {
		method: 'post',
		onSuccess: function(response) {
			var project = ajaxDecode(response);
			var projectName = project[0];
			var projectDescription = project[1];

			$('name').value = projectName;
			tinyMCE.setContent(projectDescription);		
			
			if(projectName) {
				$$('input[type=text]').setProperty('readonly','readonly'); 
			} else {
				$$('input[type=text]').removeProperty('readonly'); 
			}
		}
	}).request(postData);
}

function ajaxDecode(response) {
	var delimiter = '|%|';
	var unencode = response.split(delimiter);
	
	return unencode;
}

 function copyObject(id, type) {
	if(confirm("Are you sure you want to copy this "+type+"?")) {
		
		var c = getRequest('c');
		var pid = getRequest('pid');
		if(c=='') c = 'project';
			
		window.location = 'index.php?option=com_jforce&c='+c+'&model='+type+'&task=copyObject&pid='+pid+'&id='+id;

	}
 }
 
 
 /* GET REQUEST VARIABLE */
 function getRequest( name ) {
	name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
	var regexS = "[\\?&]"+name+"=([^&#]*)";
	var regex = new RegExp( regexS );
	var results = regex.exec( window.location.href );
	
	if( results == null )
		return "";
	else
		return results[1];
}

function quoteAccept(form, accept) {
	form.accept.value = accept;
	form.submit();
}



/* MODAL TIME FORM */
function modalTimeSubmit(pressbutton) {
	var form = document.adminForm;
	form.task.value=pressbutton;
	
	var pass = true;
	
	if(pressbutton == 'cancel') {
		closeModal();
		return false;
	}
	
	if (pressbutton == 'save') {
		pass = validateForm();
	}
	
	if (pass) {
		form.submit();
	} else {
		return false;
	}

}

function retrieveDashboard(reLoad) {
	if (!reLoad) {
		reLoad = false;	
	}
	
	var layout = $('jf_active').getProperty('value');
	var tab = $(layout);
	var type = $('jf_type').getProperty('value');
	var holder = $(layout+'_'+type);
	
	if(holder.hasClass('empty') || reLoad == true) {
		$('ajaxLoader').setStyle('display','block');
		var url = 'index.php?format=raw&option=com_jforce&c=general&view=dashboard&layout='+layout+'&type='+type;
		new Ajax(url, {
			method: 'get',
			update: holder,
			onSuccess: function(response) {
				holder.removeClass('empty');
				$('ajaxLoader').setStyle('display','none');
				switchActive(holder, tab);
			}
		}).request();
		
	} else {
		switchActive(holder, tab);
	}
	
}

function switchActive(holder, tab) {
	$$('.dashboardTray li').removeClass('active');
	tab.addClass('active');
	
	var activeHolder = document.getElement('div.activeHolder');
	
	if (activeHolder) {
		activeHolder.removeClass('activeHolder');
		
		var fx = new Fx.Style(activeHolder, 'opacity', {duration: 350} ).start(0);
		fx.chain(function() { 
			activeHolder.setStyle('display','none'); 
			fadeInActive(holder);
		});
	
	} else {
		fadeInActive(holder);
	}
	holder.addClass('activeHolder');
}

function fadeInActive(holder) {
	holder.setStyles({
		display : 'block',
		opacity : 0
	});
	new Fx.Style(holder, 'opacity', {duration: 350} ).start(1);
}

function viewTimeTracker(link) {
	window.parent.location = link;
}

function loadTasks(cid, pid, toHighlight, completed) {
	
	var url = 'index.php?format=raw&option=com_jforce&c=project&view=task&layout=open&cid='+cid+'&pid='+pid;
	var openHolder = $('currentTasks');
	$('ajaxLoaderOpen').setStyle('display','block');

	new Ajax(url, {
		method: 'get',
		onSuccess: function(response) {
			
			openHolder.setHTML(response);
		
			$('ajaxLoaderOpen').setStyle('display','none');
		
			$$('#currentTasks input.taskbox').addEvent('click', function(e) {
				toggleTask(this.value);											 
			});
			
			$$('#currentTasks a.taskSubscribeLinks').addEvent('click',function(e) {
				e = new Event(e);
				subscribeMeTask(this.id.substr(1),'task', pid);
				e.stop();										
			});

			$$('#currentTasks a.taskRemindLinks').addEvent('click',function(e) {
				e = new Event(e);
				remindPeople(this.id.substr(1),'task');
				e.stop();										
			});
			
			refreshModals();
			refreshTooltips();
			
			if (completed == '0') {
				var id = '#task_'+toHighlight;
				var div = openHolder.getElement(id);
				highlightDiv(div);
			}
			
		}
	}).request();
	
	
	var url2 = 'index.php?format=raw&option=com_jforce&c=project&view=task&layout=completed&cid='+cid+'&pid='+pid;
	var closedHolder = $('completedTasksHolder');
	//$('ajaxLoaderCompleted').setStyle('display','block');
	new Ajax(url2, {
		method: 'get',
		onSuccess: function(response) {
			
			closedHolder.setHTML(response);
		
			//$('ajaxLoaderCompleted').setStyle('display','none');
		
			$$('#completedTasksHolder input.taskbox').removeEvents('click');
			$$('#completedTasksHolder input.taskbox').addEvent('click', function(e) {
				toggleTask(this.value);											 
			});
			
			$$('#completedTasksHolder a.taskSubscribeLinks').removeEvents('click');
			$$('#completedTasksHolder a.taskSubscribeLinks').addEvent('click',function(e) {
				e = new Event(e);
				subscribeMeTask(this.id.substr(1),'task', pid);
				e.stop();										
			});
			
			refreshModals();
			refreshTooltips();
			
			if (completed == '1') {
				var id2 = '#task_'+toHighlight;
				var div2 = closedHolder.getElement(id2);
				highlightDiv(div2);
			}	
			
		}
	}).request();
	
	
	
}

function toggleTask(id) {

	var url = 'index.php?format=raw&option=com_jforce&c=ajax&task=toggleTask';

	var postData = 'id='+id;

	new Ajax(url, {
		method: 'post',
		onSuccess: function(response) {
			response = ajaxDecode(response);
			
			var cid = response[2];
			var pid = response[3];
			var completed = response[0];
			
			loadTasks(cid, pid, id, completed);
			
		}
	}).request(postData);

}
function completeTask(id) {
	var toCopy = $('task_'+id);
	var toMove = toCopy.clone();
	
	$('completedTasks').appendChild(toMove);
	$('currentTasks').removeChild(toCopy);
	
	$$('#task_'+id+' input.taskbox').addEvent('click', function(e) {
		toggleTask(this.value);											 
	});
	
}

function reopenTask(id) {
	var toCopy = $('task_'+id);
	var toMove = toCopy.clone();
	
	$('currentTasks').appendChild(toMove);
	$('completedTasks').removeChild(toCopy);
	
	$$('#task_'+id+' input.taskbox').addEvent('click', function(e) {
		toggleTask(this.value);											 
	});
}

function addFooter() {
	var footer = document.createElement('div');
	footer.setAttribute('class','jforceFooter');
	footer.innerHTML = "<a href='http://www.extremejoomla.com' title='Project Management and CRM for Joomla'>JForce Powered</a>";
	var tabContainer = testForObject('tabContainer');
	if (tabContainer) {
		var parent = $('tabContainer').parentNode;
		parent.appendChild(footer);
	}
}

function getTinyMceContent() // JW
{
	var text = '';
	
	try {
		text = tinyMCE.getContent();
	} 
	catch (err) {
		try {
			text = tinyMCE.activeEditor.getContent();
		} 
		catch (e) {
		// return blank string
		}
	}
	
	return text;
}

function formatCurrency(strValue)
{
	var currency;
	try {
		currency = JFORCE_CURRENCY;
	} catch (err) {
		currency = '';
	}
	
	strValue = strValue.toString().replace(/\$|\,/g,'');
	dblValue = parseFloat(strValue);

	blnSign = (dblValue == (dblValue = Math.abs(dblValue)));
	dblValue = Math.floor(dblValue*100+0.50000000001);
	intCents = dblValue%100;
	strCents = intCents.toString();
	dblValue = Math.floor(dblValue/100).toString();
	if(intCents<10)
		strCents = "0" + strCents;
	for (var i = 0; i < Math.floor((dblValue.length-(1+i))/3); i++)
		dblValue = dblValue.substring(0,dblValue.length-(4*i+3))+','+ dblValue.substring(dblValue.length-(4*i+3));
	return (((blnSign)?'':'-') + currency + dblValue + '.' + strCents);
}

