var ff = '';
var arrTr;

d1k=document;l1k=d1k.layers;op=navigator.userAgent.indexOf('Opera')!=-1;
function gE(e,f){if(l1k){f=(f)?f:self;var v1k=f.document.layers;if(v1k[e])return v1k[e];for(var W=0;W<Ver.length;)t=gE(e,v1k[W++]);return t;}if(d1k.all)return d1k.all[e];return d1k.getElementById(e);}
function sE(e){l1k?e.visibility='show':e.style.visibility='visible';}
function hE(e){l1k?e.visibility='hide':e.style.visibility='hidden';}
function sD(e){l1k?e.display='block':e.style.display='block';}
function hD(e){l1k?e.display='none':e.style.display='none';}
function tD(e){isD(e)?sD(e):hD(e)}
function isD(e) {return l1k?e.display=='block':e.style.display=='block';}
function sZ(e,z){l1k?e.zIndex=z:e.style.zIndex=z;}
function sX(e,x){l1k?e.left=x:op?e.style.pixelLeft=x:e.style.left=x+px;}
function sY(e,y){l1k?e.top=y:op?e.style.pixelTop=y:e.style.top=y+px;}
function sW(e,w){l1k?e.clip.width=w:op?e.style.pixelWidth=w:e.style.width=w+px;}
function sH(e,h){l1k?e.clip.height=px(h):op?e.style.pixelHeight=px(h):e.style.height=px(h);}
function sC(e,t,r,b,x){l1k?(X=e.clip,X.top=t,X.right=r,X.bottom=b,X.left=x):e.style.clip='rect('+t+' '+r+' '+b+' '+x+')';}
function wH(e,h){if(l1k){Y=e.document;Y.open();Y.write(h);Y.close();}if(e.innerHTML)e.innerHTML=h;}

function reconfirm(message) {
	if (confirm(message)) {
		return confirm("Are you sure?\nThis is, like, serious, you know!");
	} else {
		return false;
	}
}

function freak_pop_url(name,url,x,y) {
	return window.open(url,name,'toolbar=0,location=0,directories=0,menuBar=0,scrollbars=1,resizable=0,status=1,alwaysRaised=0,width='+x+',height='+y)
}

function freak_pop(name, x, y) {
   return freak_pop_url(name,'',x,y);
}

function freak_sav() {
	ff.mode.value = 'save';
	if (!ff.title.value) {
		alert('please enter title!');
		return false;
	} else {
		return true;
	}
}
function freak_clean() {
	ff.id.value='';
	ff.priority.value = '3';
	ff.deadlineDate.value = '';
	ff.title.value='';
	if (ff.sProject.value) {
		for(i=0;i<ff.project.options.length;i++) {
			if (ff.project.options[i].value == ff.sProject.value) {
				ff.project.selectedIndex = i;
				break;
			}
		}
	} else {
		ff.project.selectedIndex = 0;
	}
	ff.project2.value='';
	g = gE('project_txt');
	if (isD(g))	{
		hD(g);
		sD(gE('project_sel'));
	}
	for (i=1; i<6; i++) {
		vn = 'status'+i;
		if (ff.elements[vn])
		{
			ff.elements[vn].checked = false;
		}
	}	
}
function freak_rld() {
	freak_clean();
	ff.mode.value = '';
	ff.method = 'GET';
	ff.submit();
}
function freak_new() {
	e = document.getElementById('fedit');
	if (ff.description) ff.description.value='';
	if (e.style.display == 'block') {
		freak_clean();
	} else {
		e.style.display = 'block';
		ff.priority.focus();
	}
}
function freak_sort(column) {
	if (ff.sort.value == column) {
		ff.dir.value = -ff.dir.value;
	} else {
		ff.sort.value=column;
		ff.dir.value = 1;
	}
	ff.mode.value='';
	ff.submit();
}
function freak_sts(id,status) {
	ff.id.value = id;
 	ff.mode.value=status;
 	ff.submit();
}
function freak_del(id) {
	ff.id.value = id;
 	ff.mode.value='delete';
 	ff.submit();
}
function freak_adj(idx) {
	vn = 'status'+idx;
	if (!ff.elements[vn].checked) {
		idx--;
	}
	for (i=1; i<=idx; i++) {
		vn = 'status'+i;
		ff.elements[vn].checked = true;
	}
	for (i=idx+1; i<6; i++) {
		vn = 'status'+i;
		ff.elements[vn].checked = false;
	}
}
function freak_view(id) {
	e = document.getElementById('fview');
	if (id == 0) {
		e.style.display = 'none';
	} else {
		if (ff.description) {
			f = document.getElementById('vdesc');
			f.innerHTML = 'loading...';
			load_view(id);
		}
		if (id==0) {
			e.style.display = 'none';
		} else {
			f = document.getElementById('vprio');
			g = document.getElementById('eprio'+id);
			f.innerHTML = g.innerHTML;
			if (f = document.getElementById('vctxt'))
			{
				g = document.getElementById('ectxt'+id);
				f.innerHTML = g.innerHTML;
			}
			f = document.getElementById('vdead');
			g = document.getElementById('edead'+id);
			f.innerHTML = g.innerHTML;
			f = document.getElementById('vproj');
			g = document.getElementById('eproj'+id);
			f.innerHTML = g.innerHTML;
			f = document.getElementById('vtitl');
			g = document.getElementById('etitl'+id);
			f.innerHTML = g.innerHTML;
			sts = 0;
			for (i=1; i<=5; i++) {
				s = document.getElementById('est'+i+id);
				if (s && s.className != 'sts0') {
					sts++;
				} else {
					break;
				}
			}
			freak_calc(sts);
			e.style.display = 'block';
		}
	}
}
function stripHtml(str) { 
	re = /<\S[^>]*>/g; 
	str = str.replace(re,""); 
	re = /&gt;/g; 
	str = str.replace(re,">"); 
	re = /&lt;/g; 
	str = str.replace(re,"<"); 
	re = /&amp;/g; 
	if (str == '-') { str=''; }
	return str.replace(re,"&"); 
}
function freak_switch(field) {
	g = gE(field+'_sel');
	if (isD(g))	{
		hD(g);
		ff.elements[field].selectedIndex = 0;
		sD(gE(field+'_txt'));
	} else {
		ff.elements[field+'2'].value = '';
		hD(gE(field+'_txt'));
		sD(g);
	}
}
function freak_edit(id) {
	e = document.getElementById('fedit');
	//if (e.style.display == 'block') {
	if (id == 0) {
		e.style.display = 'none';
		freak_clean();
	} else {
		ff.id.value = id;
		ff.mode.value='';
		g = document.getElementById('eprio'+id);
		ff.priority.value = stripHtml(g.innerHTML);
		g = document.getElementById('ectxt'+id);
		if (g) {
			ctxt = stripHtml(g.innerHTML).substring(0,1);
			for (i=0;i<ff.context.options.length;i++) {
				if (ff.context.options[i].value == ctxt) {
					ff.context.selectedIndex = i;
					break;
				}
			}
		}
		g = document.getElementById('edead'+id);
		ff.deadlineDate.value = stripHtml(g.innerHTML);
		g = document.getElementById('eproj'+id);
		f = ff.project;
		str = stripHtml(g.innerHTML);
		for (i=1; i<f.length ; i++ ) {
			if (f.options[i].text == str)
			{
				f.selectedIndex = i;
				break;
			}
		}
		g = document.getElementById('etitl'+id);
		ff.title.value = stripHtml(g.innerHTML);
		e.style.display = 'block';
		for (i=1; i<=5; i++) {
			s = document.getElementById('est'+i+id);
			if (s) {
				if (s.className != 'sts0') {
					ff.elements['status'+i].checked = true;
				} else {
					ff.elements['status'+i].checked = false;
				}
			}
		}
		if (ff.description) {
			load_edit(id);
		}
	}
}

/* Loading stuff */

var cp = new cpaint();
// cp.set_debug(true);

cp.set_response_type('TEXT');
function load_edit(id) {
	cp.call('cpaint.task.php', 'load_edit', response_edit, id);
}
function load_view(id) {
	cp.call('cpaint.task.php', 'load_view', response_view, id);
}

function response_edit(result) {
	if (ff.description)	ff.description.value=result;
}
function response_view(result) {
	f = document.getElementById('vdesc');
	f.innerHTML = result;
}

/* rows highlight on mouse over and click */

function startList() {
	if (document.all&&document.getElementById) {
		elems = document.getElementsByTagName("ul");
		for(var i = 0; i < elems.length; i++)
		{
			elem = elems[i];
			id = elem.id;
			cls = elem.className;
			if (id == 'nav' || cls == 'level1' || cls =='level2') {
				for (m=0; m<elem.childNodes.length; m++) {
					node = elem.childNodes[m];
					if (node.nodeName=="LI") {
						node.onmouseover=function() {
							this.className+=" over";
						}
						node.onmouseout=function() {
							this.className=this.className.replace(" over", "");
						}
					}
				}
			}
		}
	}
}

function listenClick(e) {
	// this function makes clicking area bigger on drop down menu
	var targ;
	if (!e) var e = window.event;
	if (e.target) targ = e.target;
	else if (e.srcElement) targ = e.srcElement;
	if (targ.nodeType == 3) // defeat Safari bug
		targ = targ.parentNode;
	if (targ.tagName == 'LI') {
		var str = targ.firstChild;
		if (str.tagName == 'A') {
			if (str.onclick) {
				// needs popup
				freak_pop_url('freak2',str.href,400,400);
			} else {
				// direct loadin
				window.location.href=str.href;
			}
		}
	} else if (targ.tagName == 'TD' && !targ.onclick) {
		var str = targ.parentNode;
		if (!isNaN(str.id)) {
			freak_view(str.id);
		}
	}
}

function freak_init() {
	ff = document.zappa;
	arrTr = document.getElementsByTagName("tr");
	for (i=0, j=arrTr.length; i < j; i++) {
		if (arrTr[i].className != 'nothanks')
		{
			/* arrTr[i].onclick = function() {
				if (this.className == 'high') {
					this.className = '';
				} else {
					this.className = 'high';
				}
			} */
			arrTr[i].onmouseover = function() {
				if (this.className != 'high') {
					this.className = 'hover';
				}
			}
			arrTr[i].onmouseout = function() {
				if (this.className != 'high') {
					this.className = '';
				}
			}
		}
	}
	if (fm = document.getElementById("message")) {
		self.setTimeout("fm.style.display='none'",2000);
	}
	startList();
	Calendar.setup({});
}

window.onload = function() {
	freak_init();
}
