var aTimeRequest = new Request({method: 'post', url: '../../lib/ajax/index.php'});

window.addEvent('domready', function() {

	var IE6 = (navigator.userAgent.toLowerCase().indexOf('msie 6') != -1) && (navigator.userAgent.toLowerCase().indexOf('msie 7') == -1);

	if(IE6) 
	{
		$('ie6message').setStyles({display:'block' });
		$('ie6message').fade('in');
		$('ie6message').addEvent('click', function() {
			this.fade('out');
		});
	}
	
	if($('register')) 
	{
		new FormCheck('register');
	}
	
	$("formholder").getElements('form').setStyle('display', 'none');
	
	if($('addprojectlink'))
	{
		var aAddProjectForm = new Fx.Slide('addproject');
		aAddProjectForm.hide();
		$('addproject').style.display = 'block';
		$('addprojectlink').addEvent('click', function() {
			
			if($('addcategory').style.display == "block")
			{
				var aAddCategoryForm = new Fx.Slide('addcategory');
				aAddCategoryForm.slideOut();
			}
			
			aAddProjectForm.toggle();
			return false;
		});
	}
	
	if($('filterdateslink'))
	{
		var aAddCategoryForm = new Fx.Slide('datefilter');
		aAddCategoryForm.hide();
		$('datefilter').style.display = 'block';
		$('filterdateslink').addEvent('click', function() {

			var aAddProjectForm = new Fx.Slide('datefilter');
			aAddCategoryForm.toggle();
			return false;
		});
	}

	if($('addcategorylink'))
	{
		var aAddCategoryForm = new Fx.Slide('addcategory');
		aAddCategoryForm.hide();
		$('addcategory').style.display = 'block';
		$('addcategorylink').addEvent('click', function() {
			
			if ($('addproject'))
			{
				if($('addproject').style.display == "block")
				{
					var aAddProjectForm = new Fx.Slide('addproject');
					aAddProjectForm.slideOut();
				}
			}
			
			aAddCategoryForm.toggle();
			return false;
		});
	}
	
	if($('TaxRate'))
	{
		$('TaxRate').addEvent('keyup', function() {
			var aSubTotal = parseFloat($('SubTotal').get('value'));
			var aTaxRate = parseFloat($('TaxRate').get('value'));
			var aCurrency = $('Curr').get('value');
			aTotalDue = (aSubTotal+(aTaxRate*(aSubTotal/100)));
			$('total-inc-tax').innerHTML = aCurrency + formatCurrency(parseFloat(aTotalDue));
		});
	}
	
	if($('invoiceextraitems'))
	{
    	var counter = 0;
	    function new_rows() {
	        counter = counter + 1;
	        var myHTMLRequest = new Request({
	            url: '../../lib/ajax/index.php',
	            method: 'post',
	            autoCancel: true,
	            data: {
	                'action': 'extra',
	                num: counter
	            },
	            onComplete: function(responseText) {
	                var new_rows = new Element('div', {
	                    'html': responseText,
						'class' : 'extra'
	                });

	                new_rows.inject($('invoiceextraitems'), 'bottom');

	                //var myFx = new Fx.Scroll(window).toElement('extra_' + counter);
	            }
	        }).send();
	    }
	
	    $('add_item').addEvent('click', function(e) {
			e.stop();
			new_rows();
		});
	    //new_rows();
	}
	
	if($('addtasklink'))
	{
		var aAddTaskForm = new Fx.Slide('addtask');
		aAddTaskForm.hide();

		$('addtask').style.display = 'block';
		$('addtasklink').addEvent('click', function() {
			aAddTaskForm.toggle();
			return false;
		});
	}
	
	if($('addtasklink'))
	{
		var aAddTaskForm = new Fx.Slide('addtask');
		aAddTaskForm.hide();
		$('addtask').style.display = 'block';
		$('addtasklink').addEvent('click', function() {
			if($('projectsettingsform').style.display == "block")
			{
				var aProjectSettingForm = new Fx.Slide('projectsettingsform');
				aProjectSettingForm.slideOut();
			}
			
			aAddTaskForm.toggle();
			return false;
		});
	}
	
	if($('projectsettingslink'))
	{
		var aProjectSettingForm = new Fx.Slide('projectsettingsform');
		aProjectSettingForm.hide();
		$('projectsettingsform').style.display = 'block';
		$('projectsettingslink').addEvent('click', function() {
			if($('addtask').style.display == "block")
			{
				var aAddTaskForm = new Fx.Slide('addtask');
				aAddTaskForm.slideOut();
			}
			
			aProjectSettingForm.toggle();
			return false;
		});
	}
	
	$$('.rem').addEvent('click', function() {
		return Confirmation();
	});
	
	$$('.notification').addEvent('mouseover', function() {
		this.style.display = 'none';
	});
	
	$$('.arc').addEvent('click', function() {
		return ArchiveConfirmation();
	});
	
	if($$('.timerstop').length > 0)
	{
        $$('.timerstop').addEvent('click', function() {
            var aID = this.get('ID');
            eval(aID +'.stop('+ aID +')');

        	var aCurrentTime = $(aID).get('value');
			var aTotalTime = document.getElementById('totalseconds').firstChild.nodeValue;
			var aAllTasks = document.getElementById('alltasks').firstChild.nodeValue;
        	var aCurrentProjectID = document.getElementById('project_'+ aID).firstChild.nodeValue;
			var aCurrentProjectRate = document.getElementById('project_rate_'+ aID).firstChild.nodeValue;
        	var aCurrentTaskID = document.getElementById('task_'+ aID).firstChild.nodeValue;
			var aServerHash = document.getElementById('serverid').firstChild.nodeValue;

        	aTimeRequest.send('action=addTtime&t='+ aCurrentTaskID +'&p='+ aCurrentProjectID +'&single=true&rate='+ aCurrentProjectRate +'&Ttime='+ aCurrentTime.trim()+'&server='+escape(aServerHash));

			var aTotalReq = new Request.HTML({
				method: 'post',
				url: '../../lib/ajax/index.php',
				data: { 'action' : 'totalbar', 'tasktime' : aTotalTime, 'p' : aCurrentProjectID, 'a' : aAllTasks, rate : aCurrentProjectRate },
				update: $('totalbar')
			}).send();
			
			var aBillableDiv = 'billable_'+aID;
			var aBillableReq = new Request.HTML({
				method: 'post',
				url: '../../lib/ajax/index.php',
				data: { 'action' : 'billable', 'tasktime' : aCurrentTime.trim(), 'p' : aCurrentProjectID, 'a' : aAllTasks, rate : aCurrentProjectRate },
				update: $(aBillableDiv)
			}).send();
			
			var aPercentageDiv = 'percentage_'+aID;			
			var aPercentage = new Request.HTML({
				method: 'post',
				url: '../../lib/ajax/index.php',
				data: { 'action' : 'percentage', 'tasktime' : aCurrentTime.trim(), 'p' : aCurrentProjectID, 'a' : aAllTasks, rate : aCurrentProjectRate },
				update: $(aPercentageDiv)
			}).send();
			
        });
	}
	
	
	if($$('.timerstart').length > 0)
	{
        $$('.timerstart').addEvent('click', function() {
            var aID = this.get('ID');
            eval(aID +'.start('+ aID +')');
        });
	}
});

function PingTimes()
{
	aActiveTasks = $$('.active');

	if($$('.aActiveTasks'))
	{
		aActiveTaskStoppers = aActiveTasks.getElement('.timerstop');
				
		if(aActiveTaskStoppers.length > 0)
		{
			$each(aActiveTaskStoppers, function(value, key){
				var aID = value.get('ID');
			
	        	var aCurrentTime = $(aID).get('value');
				var aTotalTime = document.getElementById('totalseconds').firstChild.nodeValue;
				var aAllTasks = document.getElementById('alltasks').firstChild.nodeValue;
	        	var aCurrentProjectID = document.getElementById('project_'+ aID).firstChild.nodeValue;
				var aCurrentProjectRate = document.getElementById('project_rate_'+ aID).firstChild.nodeValue;
	        	var aCurrentTaskID = document.getElementById('task_'+ aID).firstChild.nodeValue;
				var aServerHash = document.getElementById('serverid').firstChild.nodeValue;

	        	aTimeRequest.send('action=addTtime&t='+ aCurrentTaskID +'&p='+ aCurrentProjectID +'&single=true&rate='+ aCurrentProjectRate +'&Ttime='+ aCurrentTime.trim()+'&server='+aServerHash);

				var aTotalReq = new Request.HTML({
					method: 'post',
					url: '../../lib/ajax/index.php',
					data: { 'action' : 'totalbar', 'tasktime' : aTotalTime, 'p' : aCurrentProjectID, 'a' : aAllTasks, rate : aCurrentProjectRate },
					update: $('totalbar')
				}).send();
			
				var aBillableDiv = 'billable_'+aID;
				var aBillableReq = new Request.HTML({
					method: 'post',
					url: '../../lib/ajax/index.php',
					data: { 'action' : 'billable', 'tasktime' : aCurrentTime.trim(), 'p' : aCurrentProjectID, 'a' : aAllTasks, rate : aCurrentProjectRate },
					update: $(aBillableDiv)
				}).send();
			
				var aPercentageDiv = 'percentage_'+aID;			
				var aPercentage = new Request.HTML({
					method: 'post',
					url: '../../lib/ajax/index.php',
					data: { 'action' : 'percentage', 'tasktime' : aCurrentTime.trim(), 'p' : aCurrentProjectID, 'a' : aAllTasks, rate : aCurrentProjectRate },
					update: $(aPercentageDiv)
				}).send();
			
			});
		}
	}
}

function UpdateTitle()
{
	if($('tasktable'))
	{
        aCurrentTitle = document.title;

        if($$('.active').length > 0)
        {
            if(aCurrentTitle.indexOf('Timing : ') == -1)
            { 
               document.title = aCurrentTitle;
               aNewTitle = 'Timing : ' + document.title;
			   document.title = aNewTitle; 
            }
        }
        else
        {
            if(aCurrentTitle.indexOf('Timing : ') > -1)
            {
                document.title = aCurrentTitle.replace('Timing : ', '');
            }
        }
	}
}

function formatCurrency(num) {
  num = isNaN(num) ? 0 : num;
  var rounded = round(num, 2).toFixed(2);
  
  // split to three parts
  var parts = rounded.match(/^(-?)([0-9]+)(.[0-9]+)$/);
  var sign = parts[1];
  var integer = parts[2];
  var fraction = parts[3];
  
  // split integer part into thousands
  var thousands = [];
  while (integer.length > 3) {
    thousands.unshift( integer.substr(integer.length - 3, 3) );
    integer = integer.substr(0, integer.length - 3);
  }
  thousands.unshift(integer);
  
  // separate thousands with comma and put it all together
  return sign + thousands.join(",") + fraction;
}

function round(nr, digits) {
  digits = digits || 0;
  var multiplier = Math.pow(10, digits);
  return Math.round(nr * multiplier) / multiplier;
};

function Confirmation()
{
	var deleteconf = confirm("Are you sure you want to delete this item?\n\n This cannot be undone!");
	return deleteconf;
}

function SaveTimeConf()
{
	var saveconf = confirm("Are you sure you want to update this task?");
	return saveconf;
}

function ArchiveConfirmation()
{
	var archiveconf = confirm("Are you sure you want to archive this item?");
	return archiveconf;
}

function WaitPause()
{
	for (var i =  0; i <= 1000; i++){
		//console.log(i);
	};
	return true;
}

function SaveAllTasks()
{	
	$$('.timerstop').each(function(el) {
		var aID = el.get('ID');
		eval(aID +'.stop()');
		var aCurrentTime = document.getElementById(aID).firstChild.nodeValue;
		var aCurrentProjectID = document.getElementById('project_'+ aID).firstChild.nodeValue;
		var aCurrentTaskID = document.getElementById('task_'+ aID).firstChild.nodeValue;
        var aSaveRequest = new Request({method: 'post', url: '../../lib/ajax/index.php'});
        aSaveRequest.send('action=addTtime&t='+ aCurrentTaskID +'&p='+ aCurrentProjectID +'&Ttime='+ aCurrentTime.trim());
	});
	WaitPause();
}

function addClass(element, value) {
	if(!element.className) {
		element.className = value;
	} else {
		newClassName = element.className;
		newClassName+= " ";
		newClassName+= value;
		element.className = newClassName;
	}
}