/*
 * Reora utility js functions
 *
 * Copyright 2007, 2008 Reora, Inc.
 *
 * Written by: Paul Higginbottom
 *
 * last revised: 01/29/08
 */

var curpicnum = 0;

/*
function setpic(path, desc)
{
	var bigimg = document.getElementById("bigpic");
	bigimg.src = path;
	var bigimgdesc = document.getElementById("bigpicdesc");
	bigimgdesc.innerHTML = desc;
}
*/

function setpic(path, num)
{
	//alert('num='+num);
	curpicnum = num;
	var bigimg = document.getElementById("bigpic");
	bigimg.src = path;
	//setpicnum();
}

function setpicnum()
{
	picnum = document.getElementById("picnum");
	if (picnum) {
		picnum.innerHTML = curpicnum;
	}
}

function nextpic()
{
	var nextpicnum = curpicnum;
	
	if (curpicnum < (numpics-1)) {
		nextpicnum++;
	} else {
		nextpicnum = 0;
	}
	var thumbcell = document.getElementById("pic" + nextpicnum);
	if (thumbcell) {
		link = thumbcell.href;
		if (link) {
			//alert(link);
			setpic(link, nextpicnum);
		}
	} else {
		alert('no pic');
	}
}

function prevpic()
{
	var nextpicnum = curpicnum;
	
	if (curpicnum > 0) {
		nextpicnum--;
	} else {
		nextpicnum = (numpics-1);
	}
	var thumbcell = document.getElementById("pic" + nextpicnum);
	if (thumbcell) {
		link = thumbcell.href;
		if (link) {
			//alert(link);
			setpic(link, nextpicnum);
		}
	}
}

// called from iframes to let them change the parent URL
function change_parent_url(url)
{
	document.location=url;
}		
    
function change_folder(e, folderkey, page, extra)
{
	var foldersframe = window.frames[1].document;
	/*
	if (foldersframe) {
		alert('2:'+foldersframe.name);
	}
	*/

	var markers = foldersframe.getElementsByTagName("IMG");	// find all markers

	// reset all markers
	for(var x=0; x<markers.length; x++) {
		markers[x].src = 'images/blank10.gif';
		var link = markers[x].parentNode;
		if (link) {
			link.className = 'folder';
		}
	}

	var folders = foldersframe.getElementsByTagName("A");	// find all folder links

	// reset
	for(var x=0; x<folders.length; x++) {
		var link = folders[x];
		if (link) {
			link.className = 'folder';
		}
	}

	var markerID = 'marker' + folderkey;
	//alert('markerID=' + markerID);
	var marker = window.frames[1].document.getElementById(markerID);
	if (marker) {
		marker.src = 'images/navbullet.gif';
	} else {
		alert('could not find marker' + folderkey);
	}

	var link = marker.parentNode;

	folderID = 'folder' + folderkey;
	var link = window.frames[1].document.getElementById(folderID);

	if (link) {
		link.className = 'folder selfolder';
	}
	
	var picsframe = parent.document.getElementById("folder");
	/*
	if (picsframe) {
		var x = picsframe.getElementsByTagName("IMG");	// find all markers
		alert('3:'+picsframe.name + picsframe.nodeType + x.length);
	}
	*/
	var url = page + '?f='+folderkey;
	if (extra) {
		url += '&' + extra;
	}
	
	picsframe.src = url;
}
    
var fields = [];
var formchanged = false;

function prompt(str, link)
{	
	if (confirm(str)) {			    
		window.location = link;
	}
}

function ConfirmSubmit()	{
	if (formchanged) {
		return confirm("Save changes?");
	} else {
		//alert('nothing changed');
		return true;
	}
}

function ConfirmLink(link)	{
	if (formchanged && confirm("Save changes?")) {
		var redirect = document.getElementById('redirect');
		if (redirect) {
			//alert('putting in subcommand: '+link);
			redirect.value = link;
		} else {
			//alert('could not find subcommand field');
		}
		//document.forms[0].submit();
		return true;
	} else {
		window.location = link;
		return false;
	}
}

function showrows(e, catnum, addurl) {

	if (!e) var e = window.event;	// IE doesn't do events - get the proprietary method
	var target = (window.event) ? e.srcElement : e.target;
	var link = target;
	while (link.tagName != 'A') {
		link = link.parentNode;
		//alert('go outer');
	}
	var icon = link.firstChild;		// icon is first child inside link
	//alert('icon src='+icon.src);
	var tdsel = link.parentNode;	// cell is outside link
	var trsel = tdsel.parentNode;	// row is outside cell
	//alert('row id=' + trsel.id + ', class=' + trsel.className);

	var visiblerows=0;
	var opt1s=0;
	var iconson=0;
	var iconsoff=0;
	
	var catrowid = 'catrow'+catnum;
	var rows=document.getElementsByTagName("TR");	// find all rows
	//alert(catrows.length + ' rows');

	// look through all table rows in the entire page
	for(var x=0; x<rows.length; x++) {
		//alert(x);
		if (rows[x].className.search(/catrow/) != -1) {
			if (rows[x].id == catrowid) {
				rows[x].style.display = '';
				visiblerows++;	// 1 more visible
			} else {
				rows[x].style.display = 'none';
			}
		} else if (rows[x].className.search(/catsel/) != -1) {
			if (rows[x].id == trsel.id) {
				//alert('icon src for row='+rows[x].id+' was='+icon.src);
				icon.src = 'images/marker2.gif';
				rows[x].style.backgroundColor = '#c0ffff';	//'#f0f8ff';
				//alert('icon src for row='+rows[x].id+' now='+icon.src);
				iconson++;
			} else {
				//alert('icon src for row='+rows[x].id+' was='+icon.src);
				rows[x].style.backgroundColor = '';
				tdx = rows[x].firstChild;
				linkx = tdx.firstChild;
				iconx = linkx.firstChild;
				iconx.src = 'images/blank16.gif';
				//alert('icon src for row='+rows[x].id+' now='+icon.src);
				iconsoff++;
			}
			opt1s++;
		}
	}

	//alert('visiblerows='+visiblerows+', opt1rows='+opt1s+', iconson='+iconson+', iconsoff='+iconsoff);

	var norowsmsg = document.getElementById('catrownrmsg');
	if (norowsmsg) {
		var nrdisp = 'none';
		//alert('visiblerows='+visiblerows);
		if (!visiblerows) {
			nrdisp = '';
		}
		norowsmsg.style.display = nrdisp;
	}

	var addlink = document.getElementById('addlink');
	if (addlink) {
		addlink.style.display = '';
		addlink.href = addurl;
	}
}

// flip checkboxes
//
function flip(ctrl) {
	//if (!e) var e = window.event;	// IE doesn't do events - get the proprietary method
	//var control = (window.event) ? e.srcElement : e.target;
	c = document.getElementById(ctrl);
	val = c.checked;
	inputs = document.getElementsByTagName("input");
	var changed=0;
	for(var x=0; x < inputs.length; x++) {
		if ((inputs[x].type == 'checkbox') && (inputs[x].id != c.id)){
			inputs[x].checked = val;	//!inputs[x].checked;
			++changed;
		}
	}
}

// make sure we have indexOf function available in IE!
//
if (!Array.prototype.indexOf)
{
  Array.prototype.indexOf = function(elt)
  {
    var len = this.length;

    var from = Number(arguments[1]) || 0;
    from = (from < 0)
         ? Math.ceil(from)
         : Math.floor(from);
    if (from < 0)
      from += len;

    for (; from < len; from++)
    {
      if (from in this &&
          this[from] === elt)
        return from;
    }
    return -1;
  };
}

// data format
//
// var indexrows new Array();
// indexrows[] = new Array('ID', 'name', new Array([contact set IDs]);
//

function updateSubOptions(opt1, opt2, indexrows)
{
	var i;

	//alert(indexrows.length);
	
	// flush subchoices
	opt2.options.length = 0;

	//set the first option for each (being messages to do a select).
	opt2.options[opt2.length] = new Option("-- not selected --", "");

	//Now loop through and set the second option list

	//if a first was chosen, find it in each indexrows entry's subarray
	if(opt1.options[opt1.selectedIndex].value != "") {
		var csid = opt1.options[opt1.selectedIndex].value;
		for (i=0; i<indexrows.length; i++) {
			//alert(indexrows[i][1].length);
			try {
				if (indexrows[i][2].indexOf(csid) != -1) {
					//alert('found a match: ' + indexrows[i][1]);
					opt2.options[opt2.length] = new Option(indexrows[i][1], indexrows[i][0]);
				}
			} catch (error) {
				alert('index='+i);
			}
		}
	}
}

var windowHandle = null;

function helpwin(url,name,attributes) {
	windowHandle = window.open(url,name,attributes);
	windowHandle.focus();
	return false;
}

function popupEmail(to)
{
	subjectField = document.getElementById('subject');
	directionsField = document.getElementById('directions');

	// SET MESSAGE VALUES
	var cc = "";
	var bcc = "";
	var subject = "";
	var body = "";

	if (!to) {
		to = "";
	}	
	if (subjectField) {
		subject = "directions to: " + subjectField.value;
	}
	if (directionsField) {
		body = directionsField.value;
	}

	// BUILD MAIL MESSAGE COMPONENTS 
	var doc = "mailto:" + to; 
	//"?cc=" + cc + 
	//"&bcc=" + bcc + 
	
	if (subject != "") {
		doc += "&subject=" + escape(subject);
	}
	
	if (body != "") {
		doc += "&body=" + escape(body);
	}

	// POP UP EMAIL MESSAGE WINDOW
	window.location = doc;
}

function setblogpic(path, blogid)
{
	var blogimg = document.getElementById('blogpic');
	if (path) {
		blogimg.src = path;
	}
	var simpleblogtitle = document.getElementById('blogtitle' + blogid);
	var blogtitle = document.getElementById('blogtitle');
	blogtitle.innerHTML = simpleblogtitle.innerHTML;
	var simpleblognote = document.getElementById('blognote' + blogid);
	var blognote = document.getElementById('blognote');
	blognote.innerHTML = simpleblognote.innerHTML;
	var simpleblogdate = document.getElementById('blogdate' + blogid);
	var blogdate = document.getElementById('blogdate');
	blogdate.innerHTML = '(' + simpleblogdate.innerHTML + ')';
}

function shownotes(flag)
{
	//if (!document.styleSheets) return;
	var thecss = new Array();
	if (document.styleSheets[0].cssRules)  // Standards Compliant
	{
		thecss = document.styleSheets[0].cssRules;
	}
	else
	{         
		thecss = document.styleSheets[0].rules;  // IE 
	}

	var show = "";
	var hide = "";
	if (flag) {
		show = "showable";
		hide = "hideable";
	} else {
		show = "hideable";
		hide = "showable";
	}

	for (i=0;i<thecss.length;i++)
	{
		//thecss[i].style.color = "red";
		if ((thecss[i].selectorText.toLowerCase()== "." + show))
		{
			thecss[i].style.cssText="display: inline;";
		}
		if ((thecss[i].selectorText.toLowerCase()== "." + hide))
		{
			thecss[i].style.cssText="display: none;";
		}
	}
}

function expandschedule(e)
{
	if (!e) var e = window.event;	// IE doesn't do events - get the proprietary method
	var target = (window.event) ? e.srcElement : e.target;
	
	var expandtoggle = document.getElementById('expandtoggle');
	var shrink = true;
	if (expandtoggle.title == 'expand') {
		shrink = false;
		//expandtoggle.title = target.innerHTML;
		//target.innerHTML = '-';
		expandtoggle.title = 'shrink';
	} else {
		//target.innerHTML = expandtoggle.title;
		expandtoggle.title = 'expand';
	}
	
	var rows=document.getElementsByTagName("TR");	// find all rows

	// look through all table rows in the entire page
	for(var x=0, n=0; x<rows.length; x++) {
		if (rows[x].className.search(/taskrow/) != -1) {
			++n;
			if (shrink && (n > 5)) {
				rows[x].style.display = 'none';
			} else {
				rows[x].style.display = '';
			}
		}
	}
}
