/**
 *
 * @access public
 * @return void
 * toggle the display of an element
 * blockid: id of the element to display or hide
 * imgid: id of the image element to switch
 * imgNone: source location of first image
 * imgBlock: source location of second image
 **/

function toggle(blockid, imgid, imgNone, imgBlock) {
	imgid = imgid || '';
	imgBlock = imgBlock || '';
	imgNone = imgNone || '';

	if (blockid != '') {
		if (document.getElementById(blockid).style.display == 'block') {

			document.getElementById(blockid).style.display = 'none';

			if (imgid != '')
			{
				document.getElementById(imgid).src = imgNone;
			}
		} else {
			document.getElementById(blockid).style.display = 'block';

			if (imgid != '')
				document.getElementById(imgid).src = imgBlock;
		}//end else

	}//end if blockid is not blank

}//end toggle

//Used to toggle everything in the document
function toggleall(show, hide, blockid, imgid, imgNone, imgBlock) {
	imgid = imgid || '';
	imgNone = imgNone || '';
	imgBlock = imgBlock || '';

    if(document.getElementById(show).style.display == "none") {
		document.getElementById(show).style.display = "block";
		document.getElementById(hide).style.display = "none";
	} else {
		document.getElementById(show).style.display = "none";
		document.getElementById(hide).style.display = "block";
	}

//	for(var i=1; document.getElementById(blockid+i) != null; i++)
    var div_elements = document.getElementsByTagName("div");
    var img_elements = document.getElementsByTagName("img");
    var j = 0;

    for(var i = 0; i < div_elements.length; i++)
    {
      if(blockid == (div_elements[i].id).substring(0,blockid.length))
      {
        while(true)
        {
          if(imgid == (img_elements[j].id).substring(0, imgid.length))
          {
            toggle(div_elements[i].id, img_elements[j].id, imgNone, imgBlock);
            break;
          }//end if
          j++;
        }//end while
      }//end if
    }//end for
}//end toggleall

/**
 *
 * @access public
 * @return void
 * used to toggle elements to display
 * show: id of element to display
 * hide: id of element to hide
 * imgid: id of image element
 * imgBlock: source location of image to display
 **/
function toggleshowall(show, hide, blockid, imgid, imgBlock) {
	if (show != '' && hide != '') {
		document.getElementById(show).style.display = "block";
		document.getElementById(hide).style.display = "none";
	}

	var div_elements = document.getElementsByTagName("div");
	for (var i = 0; i < div_elements.length; i++) {
  	  if (blockid == (div_elements[i].id).substring(0, blockid.length)) //must start with blockid in order to work
			document.getElementById(div_elements[i].id).style.display = 'block';
	}//end for

	if (imgid != '') {
		var img_elements = document.getElementsByTagName("img");
	
		for (var i =0; i < img_elements.length; i++) {
			if (imgid == (img_elements[i].id).substring(0,imgid.length)) //must start with imgid in order to work
				document.getElementById(img_elements[i].id).src = imgBlock;
		}//end for
	}//end if

/*	document.getElementById(show).style.display = "block";
	document.getElementById(hide).style.display = "none";

	if (imgid != ''){

		for(var i=1; document.getElementById(blockid+i) != null; i++) {

			document.getElementById(blockid+i).style.display = 'block';
			document.getElementById(imgid+i).src = imgBlock;

		}//end for

	}//end if
	else{
		for(var i=1; document.getElementById(blockid+i) != null; i++) {
			document.getElementById(blockid+i).style.display = 'block';
		}//end for
	}//end else*/
}//end toggleshowall

/**
 *
 * @access public
 * @return void
 * used to toggle elements to not display
 * show: id of element to display
 * hide: id of element to hide
 * imgid: id of image element
 * imgBlock: source location of image to display
 **/
function togglehideall(show, hide, blockid, imgid, imgNone) {
	if (show != '' && hide != '') {
		document.getElementById(show).style.display = "block";
		document.getElementById(hide).style.display = "none";
	}

	var div_elements = document.getElementsByTagName("div");
	for (var i = 0; i < div_elements.length; i++){
		if (blockid == (div_elements[i].id).substring(0, blockid.length)) //must start with blockid in order to work
			document.getElementById(div_elements[i].id).style.display = 'none';
	}//end for

	if (imgid != '') {
		var img_elements = document.getElementsByTagName("img");

		for (var i =0; i < img_elements.length; i++) {
			if (imgid == (img_elements[i].id).substring(0,imgid.length)) //must start with imgid in order to work
				document.getElementById(img_elements[i].id).src = imgNone;
		}
	}

/*
	if (imgid != ''){
		for(var i=1; document.getElementById(blockid+i) != null; i++) {
			document.getElementById(blockid+i).style.display = 'none';
			document.getElementById(imgid+i).src = imgNone;
		}//end for
	}//end if
	else{
		for(var i=1; document.getElementById(blockid+i) != null; i++) {
			document.getElementById(blockid+i).style.display = 'none';
		}//end for
	}//end else
	*/
}//end togglehideall

//For files under root folder
function toggleLevel1(blockid, imgid) {
	toggle(blockid, imgid, '/imgs/common/plusred.gif', '/imgs/common/minusred.gif');
}

//For files under directories of the root folder.
function toggleLevel2(blockid, imgid) {
	toggle(blockid, imgid, '../imgs/common/plusred.gif', '../imgs/common/minusred.gif');
}

function toggleLevel3(blockid, imgid) {
	toggle(blockid, imgid, '../../imgs/common/plusred.gif', '../../imgs/common/minusred.gif');
}

function togglePlusMinus(blockid, imgid) {
	toggle(blockid, imgid, '/imgs/common/plusred.gif', '/imgs/common/minusred.gif');
}

function createCookie(name, value, days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires=" + date.toGMTString();
	}
	else
		var expires = "";

	document.cookie = name + "=" + value + expires + "; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0; i < ca.length; i++) {
		var c = ca[i];
		while (c.charAt(0)==' ')
			c = c.substring(1, c.length);
		if (c.indexOf(nameEQ) == 0)
			return c.substring(nameEQ.length, c.length);
	}

	return null;
}

function eraseCookie(name) {
	createCookie(name, "", -1);
}

function checkUncheckCategory(theElement, button, printbutton, ids, category) {
	var recordsList = readCookie(category);
	var records = recordsList.split('%2C');
	var theForm = theElement.form, z = 0;

	for(z=0; z<theForm.length; z++) {
		if (theForm[z].type == 'checkbox' && theForm[z].name != 'checkall') {
			for(var i=0; i < records.length; i++) {
				if (theForm[z].value == records[i]) {
					theForm[z].checked = theElement.checked;
					break;
				}
			}
		}
	}

	checkAction(theForm.name, button, printbutton, ids);
}

function checkAll(theForm, theCheckbox, theIDs){
	for(var z=0; z<theForm.length; z++) {
		if (theForm[z].type == "checkbox" && theForm[z].name == theCheckbox) {
			theForm[z].checked = true;
		}
	}
}

function uncheckAll(theForm, theIDs){
	for(var z=0; z<theForm.length; z++) {
		if (theForm[z].type == "checkbox") {
			theForm[z].checked = false;
		}
	}

	eraseCookie(theIDs);
}

function checkUncheckAll(theElement, button, printbutton, ids) {
	var theForm = theElement.form, z = 0;
	for(z=0; z<theForm.length; z++) {
		if(theForm[z].type == 'checkbox' && theForm[z].name != 'checkall') {
			theForm[z].checked = theElement.checked;
		}
	}

	checkAction(theForm.name, button, printbutton, ids);
}

function checkAction(form, button, printbutton, ids) {
	var id;
	//this gives us a pointer to the checkbox input
	checkbox = document.forms[form].elements[button];
	//number of checkboxes that are checked
	var checkcount = 0;

	if (checkbox.length != 0) {
		var buttonCount = checkbox.length;
		//buttonCount is undefined if there is only one check box
		//meaning that there is only 1 record displayed for a given section.
		//so we have to assign it a value of one.
		if (!buttonCount) {
			buttonCount = 1;
		}
		//note that checkbox is no longer an array when buttonCount = 1
		//so we need seperate statements, one for one check box and one
		//for many checkboxes.
		if (buttonCount == 1) {
			if (checkbox.checked) {
				checkcount++;
				id = checkbox.value;
			}
		} else { //this is for many checkboxes
			for (var i = 0; i < buttonCount; i++) {
				if (checkbox[i].checked) {
					checkcount++;
					if (checkcount == 1) {
						id = checkbox[i].value;
					} else {
						id += "," + checkbox[i].value;
					}
				}
			}
		}

		//assign pointers to local values so code below isn't so ugly.
		button2 = printbutton + '2';
		printbutton = document.getElementById(printbutton);
		printbutton2 = document.getElementById(button2);

		if (checkcount != 0) { //if something is checked we allow the button on the control panel to be pressed
			printbutton.className = "";
			document.getElementById(ids).value = id;
			printbutton.innerHTML = "<div>";
			printbutton.innerHTML += "Include: <input type='checkbox' name='prepare' checked='checked' /> Prepare for the Fair Tips";
			printbutton.innerHTML += "&nbsp;&nbsp;&nbsp;<input type='checkbox' name='description' checked='checked' /> Companies' Description";
			printbutton.innerHTML += "&nbsp;&nbsp;&nbsp;<input type='checkbox' name='companylist' checked='checked' /> List of Companies Attending";
			printbutton.innerHTML += "&nbsp;&nbsp;&nbsp;<input type='checkbox' name='map' checked='checked' /> Map";
			printbutton.innerHTML += "<br /><br /><input type='submit' name='submit' value='Generate' class='activebutton' />";
			printbutton.innerHTML += "<br />(" + checkcount + " companies selected)";
			printbutton.innerHTML += "<br /><br />Click button once to generate your custom pdf fair guide. (<a href='http://www.adobe.com/products/acrobat/readstep2.html' target='_blank'>download reader here</a>)";
			printbutton.innerHTML += "</div>";
			document.cookie = 'selectedrecords=' + id;
			printbutton2.className = "";
			printbutton2.innerHTML = "<input type='submit' name='submit' value='Generate' class='activebutton' />";
			printbutton2.innerHTML += "<br /><br />(" + checkcount + " companies selected)";
			printbutton2.innerHTML += "<br />Click button once to generate your custom pdf (<a href='http://www.adobe.com/products/acrobat/readstep2.html' target='_blank'>download reader here</a>) fair guide.";
		} else { //else the buttons do nothing.
			printbutton.className = "nonactivebutton";
			document.getElementById(ids).value = "";
			printbutton.innerHTML = "Generate";
			printbutton2.className = "nonactivebutton";
			printbutton2.innerHTML = "Generate";
		}
	}

	return null;
}//end checkaction