/*

********************************************************************************************

IMPORTANT: This script assume Prototype and Scriptaculous have already been included.

********************************************************************************************

*/


// toggle display of elements - with button control (e.g show/hide links <a>)
function toggleElementDisplayAjaxWithButtonControl( element_id_slug, show ) {
	var element_content = element_id_slug + '_content';
	Element.extend( document.getElementById( element_content ) );
	var element_show_link = element_id_slug + '_show_link';
	var element_hide_link = element_id_slug + '_hide_link';
	var element_expandable_icon = element_id_slug + '_expandable_icon';
	var currentState = document.getElementById( element_content ).style.display;
	if ( show === undefined ) {
		if ( currentState == 'block' ) {
			if ( document.getElementById( element_expandable_icon ) != null ) {
			    var expandableIconCurrent = document.getElementById( element_expandable_icon );
			    var divParent;
			    // create new image element
			    var expandableIconNew = document.createElement('img');
			    expandableIconNew.src = expandableIconCurrent.src.replace(/(.*)open/, "$1closed");
			    expandableIconNew.id = element_expandable_icon;
			    expandableIconNew.style.border = 0;
			    // replace image
			    divParent = expandableIconCurrent.parentNode;
			    divParent.replaceChild( expandableIconNew, expandableIconCurrent );
			}
			$(element_content).blindUp({ 
									   duration: 0.75,
									   afterFinish: function () { $(element_content).style.display = 'none'; } 
									   });
		} else {
			if ( document.getElementById( element_expandable_icon ) != null ) {
			    var expandableIconCurrent = document.getElementById( element_expandable_icon );
			    var divParent;
			    // create new image element
			    var expandableIconNew = document.createElement('img');
			    expandableIconNew.src = expandableIconCurrent.src.replace(/(.*)closed/, "$1open");
			    expandableIconNew.id = element_expandable_icon;
			    expandableIconNew.style.border = 0;
			    // replace image
			    divParent = expandableIconCurrent.parentNode;
			    divParent.replaceChild( expandableIconNew, expandableIconCurrent );
			}
			$(element_content).blindDown({ 
									   duration: 0.75,
									   afterFinish: function () { $(element_content).style.display = 'block'; }
									   });
		}
	} else {
		if ( show == true ) {
			if ( document.getElementById( element_expandable_icon ) != null ) {
			    var expandableIconCurrent = document.getElementById( element_expandable_icon );
			    var divParent;
			    // create new image element
			    var expandableIconNew = document.createElement('img');
			    expandableIconNew.src = expandableIconCurrent.src.replace(/(.*)open/, "$1closed");
			    expandableIconNew.id = element_expandable_icon;
			    expandableIconNew.style.border = 0;
			    // replace image
			    divParent = expandableIconCurrent.parentNode;
			    divParent.replaceChild( expandableIconNew, expandableIconCurrent );
			}
			document.getElementById( element_show_link ).style.display = 'none';
			document.getElementById( element_hide_link ).style.display = 'block';
			//document.getElementById( element_content ).style.display = 'block';
			$(element_content).blindDown({ duration: 0.75 });
		} else {
			if ( document.getElementById( element_expandable_icon ) != null ) {
			    var expandableIconCurrent = document.getElementById( element_expandable_icon );
			    var divParent;
			    // create new image element
			    var expandableIconNew = document.createElement('img');
			    expandableIconNew.src = expandableIconCurrent.src.replace(/(.*)closed/, "$1open");
			    expandableIconNew.id = element_expandable_icon;
			    expandableIconNew.style.border = 0;
			    // replace image
			    divParent = expandableIconCurrent.parentNode;
			    divParent.replaceChild( expandableIconNew, expandableIconCurrent );
			}
			document.getElementById( element_show_link ).style.display = 'block';
			document.getElementById( element_hide_link ).style.display = 'none';
			//document.getElementById( element_content ).style.display = 'none';
			$(element_content).blindUp({ duration: 0.75 });
		}
	}
}

// toggle display of elements - with button control (e.g show/hide links <a>)
function toggleElementDisplayAjaxWithButtonControl___Original( element_id_slug, show ) {
	var element_content = element_id_slug + '_content';
	var element_show_link = element_id_slug + '_show_link';
	var element_hide_link = element_id_slug + '_hide_link';
	var currentState = document.getElementById( element_content ).style.display;
	if ( show === undefined ) {
		if ( currentState == 'block' ) {
			$(element_content).blindUp({ 
									   duration: 0.75,
									   afterFinish: function () { $(element_content).style.display = 'none'; } 
									   });
		} else {
			$(element_content).blindDown({ 
									   duration: 0.75,
									   afterFinish: function () { $(element_content).style.display = 'block'; }
									   });
		}
	} else {
		if ( show == true ) {
			document.getElementById( element_show_link ).style.display = 'none';
			document.getElementById( element_hide_link ).style.display = 'block';
			//document.getElementById( element_content ).style.display = 'block';
			$(element_content).blindDown({ duration: 0.75 });
		} else {
			document.getElementById( element_show_link ).style.display = 'block';
			document.getElementById( element_hide_link ).style.display = 'none';
			//document.getElementById( element_content ).style.display = 'none';
			$(element_content).blindUp({ duration: 0.75 });
		}
	}
}


function setElementDisplay( element, state ) {
	document.getElementById( element ).style.display = state;
}

// toggle display of elements - with button control (e.g show/hide links <a>)
function toggleElementDisplayAjaxWithButtonControl2( element_id_slug, show ) {
	var element_content = element_id_slug + '_content';
	var element_show_link = element_id_slug + '_show_link';
	var element_hide_link = element_id_slug + '_hide_link';
	var currentState = document.getElementById( element_content ).style.display;
	if ( show === undefined ) {
		if ( currentState == 'block' ) {
			document.getElementById( element_content ).style.display = 'none';
			document.getElementById( element_show_link ).style.display = 'block';
			document.getElementById( element_hide_link ).style.display = 'none';
		} else {
			document.getElementById( element_content ).style.display = 'block';
			document.getElementById( element_show_link ).style.display = 'none';
			document.getElementById( element_hide_link ).style.display = 'block';
		}
	} else {
		if ( show == true ) {
			document.getElementById( element_content ).style.display = 'block';
			document.getElementById( element_show_link ).style.display = 'none';
			document.getElementById( element_hide_link ).style.display = 'block';
		} else {
			document.getElementById( element_content ).style.display = 'none';
			document.getElementById( element_show_link ).style.display = 'block';
			document.getElementById( element_hide_link ).style.display = 'none';
		}
	}
}

// toggle display of elements - not completed
function toggleElementDisplayAjax( element, show ) {
	var currentState = document.getElementById( element ).style.display;
	if ( show === undefined ) {
		if ( currentState == 'block' ) {
			document.getElementById( element ).style.display = 'none';
		} else {
			document.getElementById( element ).style.display = 'block';
		}
	} else {
		if ( show == true ) {
			document.getElementById( element ).style.display = 'block';
		} else {
			document.getElementById( element ).style.display = 'none';
		}
	}
}


