var schedule = {

	toggle:function(item) {
		var items = item.parentNode.parentNode.childNodes;
		if (item.className != 'nomaxmin') {
			for (i=0; i < items.length; i++) {
				if (items[i].nodeName == "UL") {
					if (item.className.match('maximize')) {
						$(items[i]).show();
						item.className = item.className.replace('maximize', 'minimize');
					}
					else {
						$(items[i]).hide();
						item.className = item.className.replace('minimize', 'maximize');
					}
				}
			}
		}
	},
	
	select:function(item) {
		schedule.selected = item;
	},
	
	slide:function(item,pcla) {
		var ptype;
		var addon;
		if (pcla)
			ptype = pcla;
		else
			ptype = 'task';
		
		if (item) {
			if (ptype == 'list') {
				ptype = 'doc';
				var last = 'list';
			}
			var $lefty = $("#"+ptype+"edit");
			$lefty.animate({
				left: parseInt($lefty.css('left'),10) == 0 ?
				-$lefty.outerWidth() : 0
			});
			if (last) {
				ptype = last;
			}
			
			if (document.getElementById('_custom')) {
				addon = '&custom='+document.getElementById('_custom').value;
			}
			
			if (ptype == 'task')
				sys.connect(null, 'common.schedule.edit&task='+item.id.replace('_edit', '')+'&pclass='+document.getElementById('pclass').value+'&pid='+document.getElementById('pid').value, 'taskedit');
			else if (ptype == 'doc')
				sys.connect(null, 'common.documents.edit&doc='+item.id.replace('_edit', '')+'&pclass='+document.getElementById('pclass').value+'&pid='+document.getElementById('pid').value+addon, 'docedit');
			else if (ptype == 'list')
				sys.connect(null, 'common.documents.list&list='+item.id.replace('_edit', '')+'&pclass='+document.getElementById('pclass').value+'&pid='+document.getElementById('pid').value, 'docedit');
			else if (ptype == 'team')
				sys.connect(null, 'common.team.access&team='+item.id.replace('_edit', '')+'&pclass='+document.getElementById('pclass').value+'&pid='+document.getElementById('pid').value, 'teamedit');
			else if (ptype == 'job')
				sys.connect(null, 'common.resumes.job.default&jobopp='+item.id.replace('_edit', '')+'&pclass='+document.getElementById('pclass').value+'&pid='+document.getElementById('pid').value, 'jobedit');
		}
		else {
			var $lefty = $("#"+ptype+"edit");
			$lefty.animate({
				left: parseInt($lefty.css('left'),10) == 525 ?
				$lefty.outerWidth() :  525
			 });
		}
	},
	
	assigntask:function() {
		
		if (document.getElementById('warningmessage')) {
			var div = document.getElementById('warningmessage');
			div.parentNode.removeChild(div);
		}
		
		if (document.getElementById('setUser').value.length > 0) {
			var task 	= document.getElementById('task').value;
			var assign 	= document.getElementById('form_task_lead').value;
			var esthrs  = document.getElementById('esthours').value;
			var active  = document.getElementById('active').options[document.getElementById('active').selectedIndex].value;
			sys.connect(null, 'common.schedule.edit&pclass=task&adduser=1&task='+task+'&assign='+assign+'&esthrs='+esthrs+'&active='+active, 'taskedit');
		}
		else {
			alert('You must enter a Participants Name to assign hours to them.');
		}
	},
	
	
	addtask:function() {
	
		// reset our canvas
		document.getElementById('nowrite').innerHTML='';
		
		if (schedule.selected == null)
			schedule.selected = document.getElementById('0');
		
		// check the inputs
		if (document.getElementById('setDate').value.length==0) {
			var m_names = new Array("Jan", "Feb", "Mar", "Apr", "May", "June", "July", "Aug", "Sep", "Oct", "Nov", "Dec");
			var d = new Date();
			var curr_date = d.getDate();
			var curr_month = d.getMonth();
			var curr_year = d.getFullYear();
			document.getElementById('setDate').value= m_names[curr_month] + ' ' + curr_date + ', ' + curr_year;
		}
		if (document.getElementById('setManager').value.length==0) {
			document.getElementById('setManager').value='Not Assigned';
		}
		var txt='';
		var attachto = schedule.selected.parentNode.parentNode;
		var indent = 1+ Number(schedule.selected.parentNode.parentNode.parentNode.getAttribute("indent"));
		// align item as a child element
		var lineindent = (indent*15);
		if (lineindent==0)	
			lineindent=15;
		var ptype = schedule.selected.parentNode.parentNode.className;
		var id = Math.random();
		txt = '<div class="task taskSelect"><input name="selTask" type="radio" onclick="schedule.select(this);" id="'+id+'"/></div>';
		txt    += '<div class="task taskLabel">';
		txt    += '<div class="nomaxmin" style="margin-left:'+lineindent+'px;" onclick="schedule.toggle(this);" id="'+id+'_label">&nbsp;</div>';
		txt    += '<div class="taskChild"><span id="task_label_'+id+'">'+document.getElementById('taskname').value+'</span></div>';
		txt    += '<div class="clear"><!-- --></div>';
		txt    += '</div>';
		txt    += '<div class="task taskMan"><span id="task_lead_'+id+'">'+document.getElementById('setManager').value+'</span></div>';
		txt    += '<div class="task taskDueDate"><span id="task_starts_'+id+'">'+document.getElementById('setDate').value+'</span></div>';
		txt    += '<div class="task taskEdit" style="line-height:20px;width:20px;background-color:#F4F8FD;" onclick="schedule.slide(this);" id="'+id+'_edit"><div class="openslide">&nbsp;</div></div>';
		txt    += '<div class="clear" style="border-bottom:1px dotted #efefef;"><!-- --></div>';
		if (document.getElementById(schedule.selected.id+'_label').className.match('nomaxmin')) {
			indent += 1;
			document.getElementById(schedule.selected.id+'_label').className = document.getElementById(schedule.selected.id+'_label').className.replace('nomaxmin', 'minimize');
			var newul = document.createElement('ul');
			newul.setAttribute("indent", indent+1);
			newul.setAttribute("id", "ul_"+id);
			var newli = document.createElement('li');
			newli.setAttribute("id", "li_"+id);
			newli.setAttribute("class", "parent");
			newli.innerHTML = txt;
			newul.appendChild(newli);
			attachto.appendChild(newul);
		}
		else {
			var newli = document.createElement('li');
			newli.setAttribute("id", "li_"+id);
			newli.innerHTML = txt;
			var ul = attachto.getElementsByTagName('ul');
			ul[0].appendChild(newli);
		}
		schedule.lastadd = id;
		sys.connect(null, 'common.schedule.save&pclass='+document.getElementById('pclass').value+'&pid='+document.getElementById('pid').value+'&label='+document.getElementById('taskname').value+'&lead='+document.getElementById('form_contact').value+'&starts='+document.getElementById('setDate').value+'&ptask='+schedule.selected.id, 'nowrite');
		setTimeout("schedule.updatetask();",1000);
	},
	updatetask:function() {
		document.getElementById(schedule.lastadd).setAttribute("id", document.getElementById('nowrite').innerHTML);
		document.getElementById(schedule.lastadd+"_label").setAttribute("id", document.getElementById('nowrite').innerHTML+"_label");
		document.getElementById(schedule.lastadd+"_edit").setAttribute("id", document.getElementById('nowrite').innerHTML+"_edit");
		document.getElementById('task_label_'+ schedule.lastadd).setAttribute("id", "task_label_"+document.getElementById('nowrite').innerHTML);
		document.getElementById('task_lead_'+ schedule.lastadd).setAttribute("id", "task_lead_"+document.getElementById('nowrite').innerHTML);
		document.getElementById('task_starts_'+ schedule.lastadd).setAttribute("id", "task_starts_"+document.getElementById('nowrite').innerHTML);
		document.getElementById('li_'+ schedule.lastadd).setAttribute("id", "li_"+document.getElementById('nowrite').innerHTML);
		if (document.getElementById('li_'+ schedule.lastadd))
			document.getElementById('ul_'+ schedule.lastadd).setAttribute("id", "ul_"+document.getElementById('nowrite').innerHTML);
	},
	
	deletetask:function() {
		Ext.MessageBox.show({
		    title: 'Delete Task',
		    msg: '<div style="padding:10px;">Are you sure you want to delete this task including all subtasks?</div>',
		    width:300,
		    buttons: Ext.MessageBox.OKCANCEL,
		    fn: function(btn) {
				if (btn=='ok') {
					$("#li_"+schedule.selected.id).remove();
					$("#ul_"+schedule.selected.id).remove();
					sys.connect(null, 'common.schedule.deletetask&task='+schedule.selected.id+'&confirm=1', 'debug');
				}
			}
		});
	}
};
schedule.lastadd;
schedule.selected;
