/**
* Select all checkboxes in a form
* all the checkboxes need a type of "checkbox"
* 
**/
function checkedAll (formid, checkedvalue)
{
	var el = document.getElementById(formid);

	for (var i = 0; i < el.elements.length; i++)
	{
		if(el.elements[i].type == 'checkbox' && el.elements[i].id != 'selectAll')
		{
			el.elements[i].checked = checkedvalue;
		}
	}
}


/**
* Select all checkboxes in a form
* all the checkboxes need a css "id" of "checkbox"
**/
function checkedAllElementID (formid, elementid, checkedvalue)
{
	var el = document.getElementById(formid);

	for (var i = 0; i < el.elements.length; i++)
	{
//		if(el.elements[i].id == 'checkbox')
		if(el.elements[i].type == 'checkbox' && el.elements[i].id == elementid)
		{
			el.elements[i].checked = checkedvalue;
		}
	}
}


/**
* Add Field To A Form
* This javascript will add "innerHTML" to a div based on ID passed to function
* This "innerHTML" will be 
* @param string div_id the html id of the div tag that will be filled
* @param string field_name the html name of the the form field to be added to the div_id
* Example code:
* <code>
*
*<form name="form" action="<?php echo $_SERVER['PHP_SELF'] ?>" method="post">
*<input type="text" name="mytext[]">
*<input type="button" value="test" onClick="changeIt()">
*<div id="my_div" name="my_div"></div>
*<input type="submit">
*
*</code>
*
**/
function addFormField(div_id, field_name)
{
	// gets the div element so it can be populated with data in the "innerHTML"
	var this_div = document.getElementById(div_id);

	// concat the "innerHTML" value of the div_id that was passed
	this_div.innerHTML = this_div.innerHTML + 
							"<br />" +
							"<input " +
								"type='text' " +
								"name='" + field_name + "[]' " +
								"id='" + field_name + "[]' " +
							">";
	// alternate way to add to form
	// var i = 1; // be sure to pass a value for "i"
//	this_dv.innerHTML = this_dv.innerHTML +"<br /><input type='text' name='mytext_"+i+"'>"

}

/**
* Add Multiple Fields To A Form
* This javascript will add "innerHTML" to a div based on ID passed to function
* This "innerHTML" will be 
* @param string div_id the html id of the div tag that will be filled
* @param string field_names the html name of the the form field to be added to the div_id separated by "--"
* Example code:
* <code>
*
*<form name="form" action="<?php echo $_SERVER['PHP_SELF'] ?>" method="post">
*<input type="text" name="mytext[]">
*<input type="button" value="test" onClick="changeIt()">
*<div id="my_div" name="my_div"></div>
*<input type="submit">
*
*</code>
*
**/
function addMultipleFormFields(div_id, field_names, field_values)
{
	eval(defaults(arguments, false, false, false));

	// gets the div element so it can be populated with data in the "innerHTML"
	var this_div = document.getElementById(div_id);

	var field_names_array = field_names.split("--");

	if (field_values != false)
	{
		var field_values_array = field_values.split("--");
	}

	for (var i = 0; i < field_names_array.length; i++)
	{

		// concat the "innerHTML" value of the div_id that was passed
		this_div.innerHTML = this_div.innerHTML + 
							"<input " +
								"type=\"text\" " +
								"name=\"" + field_names_array[i] + "[]\" " +
								"id=\"" + field_names_array[i] + "[]\" " +
								(field_values != false
										? "value=\"" + field_values_array[i] + "\" " +
											"onclick=\"" +
												"checkSearchField(this, '" + 
														field_values_array[i] +
												"');" +
											"\" "
										: ""
								) +
							">&nbsp;\r\r";

//		this_div.innerHTML = this_div.innerHTML + 
//							">&nbsp;\r\n";
		// alternate way to add to form
		// var i = 1; // be sure to pass a value for "i"
		//this_dv.innerHTML = this_dv.innerHTML +
		//"<br /><input type='text' name='mytext_"+i+"'>"
	}

		// put's a <br /> tag at the end of each line
		this_div.innerHTML = this_div.innerHTML + 
							"<br />" ;

}


function defaults(passed) {
	var pattern = /function[^(]*\(([^)]*)\)/;
	var args = passed.callee.toString().match(pattern)[1].split(/\s*,\s*/);
	var str = "", i = 1;
	for ( ; i < arguments.length; i++) {
		if (typeof passed[i-1] == "undefined") {
			str += args[i-1] + "=" + fix(arguments[i]) + ";";
		}
	}
	return str;

	function fix(x) {
		if (typeof x == "string")
		return "'" + x.replace(/\'/g, "\\'") + "'";
		return x;
	}
}

/**
* Select all checkboxes in a form
* all the checkboxes need a css "id" of "checkbox"
**/
function checkRadioButton(formid, elementid, checkedvalue)
{
	var el = document.getElementById(elementid);

//	for (var i = 0; i < el.elements.length; i++)
//	{
//		if(el.elements[i].id == 'checkbox')

//alert(el.elements[i].name);
//print_r(el);
//		if(el.elements[i].type == 'select-one' && el.elements[i].id == elementid)
//		{
			el.checked = checkedvalue;
//		}
//	}
}



/**
* Changes state of all checkboxes in a form
* all the checkboxes need a css "id" of "checkbox"
* it will change a checkbox from true (checked) to false (unchecked) and vice versa
**/
function changeSelectAllElementID (formid, elementid, checkedvalue)
{
	var el = document.getElementById(formid);
	var selectall = el.elements['selectAll'+elementid];

	if (checkedvalue == false)
	{
		selectall.checked = checkedvalue;
	}
	else
	{
		var tempchecked = true;
		for (var i = 0; i < el.elements.length; i++)
		{
			if(el.elements[i].type == 'checkbox' && el.elements[i].id == elementid)
			{

				if(el.elements[i].checked == true && tempchecked == true)
				{
					selectall.checked = true;
				}
				else
				{
					tempchecked = false;
					selectall.checked = false;
				}
			}
		}
	}
}



/**
* Changes state of all checkboxes in a form
* all the checkboxes need a css "id" of "checkbox"
* it will change a checkbox from true (checked) to false (unchecked) and vice versa
**/
function changeSelectAll (formid, checkedvalue)
{
	var el = document.getElementById(formid);
	var selectall = el.elements['selectAll'];

	if (checkedvalue == false)
	{
		selectall.checked = checkedvalue;
	}
	else
	{
		var tempchecked = true;
		for (var i = 0; i < el.elements.length; i++)
		{
			if(el.elements[i].type == 'checkbox' && el.elements[i].id != 'selectAll')
			{

				if(el.elements[i].checked == true && tempchecked == true)
				{
					selectall.checked = true;
				}
				else
				{
					tempchecked = false;
					selectall.checked = false;
				}
			}
		}
	}
}





/**
* Selects or clears field value based on defaultValue
* use "onclick" to call NOT "onfocus"
**/
function checkSearchField(field, defaultValue)
{
	if (field.value == defaultValue)
	{
		field.value = '';
	}
//	else
//	{
//		field.select();
//	}
}

// JavaScript Document
/*
// ///////////////////////////
// isdefined v1.0
// 
// Check if a javascript variable has been defined.
// 
// Author : Jehiah Czebotar
// Website: http://www.jehiah.com
// Usage  : alert(isdefined('myvar'));
// ///////////////////////////
*/
function isDefined(variable)
{
alert(typeof(window[variable]));
    return (typeof(window[variable]) == "undefined") ?  false: true;
}


function isObject(variable)
{
alert(typeof(window[variable]));
    return (typeof(window[variable]) != "object")?  false: true;
}


// loop through object
// a custom function similar to print_r
function print_r(objectName)
{
//	if (isObject(objectName))
//	{
/**/
		var j = 0;
		var i = 1;
		var propertiesPerPage = 10;

		if (!objectName)
		{
			alert('The object you\'re attempting to view is empty');
			return;
		}

		var nameOfObject = objectName.toString();



		var msg = 'Contents of '+nameOfObject+' (page '+(j+1)+' ):'+"\n";

		for (property in objectName)
		{
			msg += "\t"+
					(i+(j*propertiesPerPage))+
					'- '+property+' : '+objectName[property]+"\n";

			if (i == (propertiesPerPage))
			{
				alert(msg);
				j++;
				msg = 'Contents of '+nameOfObject+' (page '+(j+1)+' ):'+"\n";
				i = 0;			
			}
	
			i++;
		}
/**/

//	}
//	else
//	{
//		alert("NOT a valid object");
//	}

}


// displays only the div with id = "content" + var divID
function showContent(formid, divID)
{
	var el = document.getElementById(formid);

//	print_r(el.childNodes);



/**
	for (i = 0; i < el.length; i++)
	{
		msg += "\t"+el.id+"\n";
	}

	for (i = 1; i <= el.elements.length; i++)
	{
		alert(el.elements[i].id);

		var theDiv = eval("content"+i);  //USAGE:  <div id="contentxxx">

		if(divID == i)
		{
			theDiv.style.display = "block";
		}
		else
		{
			theDiv.style.display = "none";
		}
	}
/**/
}

/**
* Selects or clears field value based on defaultValue
* use "onclick" to call NOT "onfocus"
**/
function setFieldValue(formid, fieldid, newvalue)
{
	var el = document.getElementById(formid);
		
	for (var i = 0; i < el.elements.length; i++)
	{
		if(el.elements[i].id == fieldid)
		{
			el.elements[i].value = newvalue;
		}
	}
}



// setStyleById: given an element id, style property and 
// value, apply the style.
// args:
//  i - element id
//  p - property
//  v - value
// 
function setStyleById(i, p, v)
{
	var n = document.getElementById(i);
	n.style[p] = v;
}

function disableField(formid, elementid)
{
	var el = document.getElementById(formid);

	for (var i = 0; i < el.elements.length; i++)
	{
		if(el.elements[i].id == elementid)
		{
			el.elements[i].disabled = true;
		}
	}


}


function enableField(formid, elementid)
{
	var el = document.getElementById(formid);

	for (var i = 0; i < el.elements.length; i++)
	{
		if(el.elements[i].id == elementid)
		{
			el.elements[i].disabled = false;
		}
	}


}



function strikeField(formid, elementid)
{
	var el = document.getElementById(formid);

	for (var i = 0; i < el.elements.length; i++)
	{
		if(el.elements[i].id == elementid)
		{
			el.elements[i].style['color'] = 'red';
			el.elements[i].style['background-color'] = '#FFEEDD';
		}
	}


}

function unStrikeField(formid, elementid)
{
	var el = document.getElementById(formid);

	for (var i = 0; i < el.elements.length; i++)
	{
		if(el.elements[i].id == elementid)
		{
			el.elements[i].style['color'] = '111111';
			el.elements[i].style['background-color'] = 'none';
		}
	}


}


function enableDisableField(formid, elementid)
{
	var el = document.getElementById(formid);

	for (var i = 0; i < el.elements.length; i++)
	{
		if(el.elements[i].id == elementid)
		{
			if(el.elements[i].disabled == true)
			{
				el.elements[i].disabled = false;
			}
			else
			{
				el.elements[i].disabled = true;
			}
		}
	}


}