//----------------------------------------------------------------------------
// "Pseudo Event" handlers
//----------------------------------------------------------------------------
//08   removing goArrow

function activate(group, dropdown)
{
    doAlert("ACTIVATE: "+group.id);

    var arrow = getElement(group, 'arrow');//08
    showElement(group);
    doAlert ("Arrow currently: "+arrow.getAttribute("on_image"));//08
    //kenn:
    //showImageElement(group, 'arrow',arrow.getAttribute("src"));
    showImageElement(group, 'arrow',arrow.getAttribute("on_image"));//08

    hideImageElement(group, 'go');
//    hideImageElement(group, 'goArrow');//08

    doAlert("END ACTIVATE");
}

function selected(group, dropdown, selectionWasLeaf, value)
{
    doAlert("SELECTED: "+group.id);

    var arrow = getElement(group, 'arrow');//08
    var go = getElement(group, 'go');

//    var goArrow  = getElement(group, 'goArrow');//08
    showImageElement(group, 'arrow', arrow.getAttribute("off_image"));//08

//  if (selectionWasLeaf)
    if (selectionWasLeaf && !(value == "err"))
    {
        showImageElement(group, 'go', go.getAttribute("src"));
//        showImageElement(group, 'goArrow', goArrow.getAttribute("src"));//08
        document.getElementById('form1').action = "?pq-path="+value;
    }
    else {
    

// We actually want to check if value of select is "err" which correspond to the SELECT 
// instruction label  (ie. "Choose a Type of Product") and if so revert so arrow indicates
// selection should be made again.
// NOTE: Also changed CascadingDropdowns.js to account for this scenario so that the all dropdowns
// that follow the one where this "err" SELECT has been are hidden from view.
// 

	if (value == "err") {
	  doAlert("Turn on arrow image for:"+group.id);
	  showImageElement(group, 'arrow', arrow.getAttribute("on_image"));//08
	}


  // actualy hides the image if image argument not present.

        hideImageElement(group,"go"); 
//	  hideImageElement(group,"goArrow");//08
    }
    doAlert("END SELECTED");
}

//----------------------------------------------------------------------------
// onLoad handler - initialize CascadingDropdowns on the page
//----------------------------------------------------------------------------
function initCascadingDropdowns()
{
    var list = ['group1', 'group2', 'group3'];

    // We are not providing an onHide handler, because the default
    // handler (which hides the dropdown component) suffices.

    var handlers =
    {
        onActivate: activate,
        onSelected: selected,
				showElement: showElement,
				hideElement: hideElement
    };

    var cascade = new CascadingDropdowns(list, handlers);
}

//----------------------------------------------------------------------------
// Utilities
//----------------------------------------------------------------------------
function getElement(group, elementName)
{
    return document.getElementById(group.id + '.' + elementName);
}

// If imageName is given, set the src of the given element to the given image.
// Otherwise, hide it.
function showImageElement(group, elementName, imageName)
{
    doAlert("SHOWIMAGEELEMENT : "+elementName+"image= ["+imageName+"]");
    var element = getElement(group, elementName);
    doAlert(element.id+"/"+imageName);
    if (imageName)
    {
        element.src = imageName;
        showElement(element);
    }
    else
          hideElement(element);

    doAlert("END SHOWIMAGEELEMENT");
}

function hideImageElement(group, elementName)
{
    showImageElement(group, elementName);
}
 

function showElement(element, group)
 {
    element.style.display = element.getAttribute('displayStyle');
 }

 function hideElement(element, group)
 {
     //alert("HideElement="+element+", group="+group);
     element.style.display = 'none';
 }
 function doAlert(message)
 {
   //alert(msg);
 }
