// Copyright © 2000 by Apple Computer, Inc., All Rights Reserved.
//
// You may incorporate this Apple sample code into your own code
// without restriction. This Apple sample code has been provided "AS IS"
// and the responsibility for its operation is yours. You may redistribute
// this code, but you are not permitted to redistribute it as
// "Apple sample code" after having made changes.
// ********************************
// application-specific functions *
// ********************************

// store variables to control where the popup will appear relative to the cursor position
// positive numbers are below and to the right of the cursor, negative numbers are above and to the left
var xOffset = 0;
var yOffset = 0;

function showPopup (targetObjectId, eventObj) {

    if(eventObj) {
    //eventObj.x = document.body.offsetWidth/2;
    //eventObj.y = document.body.offsetHeight/2;   
	// hide any currently-visible popups
	hideCurrentPopup();
	// stop event from bubbling up any farther
	eventObj.cancelBubble = true;
	
	// move popup div to current cursor position 
	// (add scrollTop to account for scrolling for IE)
	var newXCoordinate = (eventObj.pageX)?eventObj.pageX + xOffset:eventObj.x + xOffset + ((document.body.scrollLeft)?document.body.scrollLeft:0);
	var newYCoordinate = (eventObj.pageY)?eventObj.pageY + yOffset:eventObj.y + yOffset + ((document.body.scrollTop)?document.body.scrollTop:0);

    var valuey = 0;
    if( typeof window.pageYOffset != 'undefined' )
    {
    valuey=window.pageYOffset;
    }
    else
    if(document.documentElement)
    {
    valuey=document.documentElement.scrollTop;
    }
    else
    if(document.body && typeof document.body.scrollTop != 'undefined')
    {
    valuey=document.body.scrollTop;
    }

	    newXCoordinate = (915/2) - (345/2);
	    newYCoordinate = screen.Height/2 - 350 + valuey;

	moveObject(targetObjectId, newXCoordinate, newYCoordinate);	
	// and make it visible
	if( changeObjectVisibility(targetObjectId, 'visible') ) {
	   
	    // if we successfully showed the popup
	    // store its Id on a globally-accessible object
	    window.currentlyVisiblePopup = targetObjectId;
	    return true;
	} else {
	    // we couldn't show the popup, boo hoo!
	    return false;
	}
    } else {
	// there was no event object, so we won't be able to position anything, so give up
	return false;
    }
} // showPopup

function showPopupForm (targetObjectId, FrameObjectId, formId , eventObj) {
    
    if(eventObj) {    
	// hide any currently-visible popups
	hideCurrentPopup();
	// stop event from bubbling up any farther
	eventObj.cancelBubble = true;
	// move popup div to current cursor position 
	// (add scrollTop to account for scrolling for IE)
	var newXCoordinate = (eventObj.pageX)?eventObj.pageX + xOffset:eventObj.x + xOffset + ((document.body.scrollLeft)?document.body.scrollLeft:0);
	var newYCoordinate = (eventObj.pageY)?eventObj.pageY + yOffset:eventObj.y + yOffset + ((document.body.scrollTop)?document.body.scrollTop:0);
	
	var valuey = 0;
    if( typeof window.pageYOffset != 'undefined' )
    {
    valuey=window.pageYOffset;
    }
    else
    if(document.documentElement)
    {
    valuey=document.documentElement.scrollTop;
    }
    else
    if(document.body && typeof document.body.scrollTop != 'undefined')
    {
    valuey=document.body.scrollTop;
    }

	    newXCoordinate = (960/2) - (470/2);
	    newYCoordinate = screen.Height/2 - 350 + valuey;
	
	moveObject(targetObjectId, newXCoordinate, newYCoordinate);	
	var sObject = document.getElementById(FrameObjectId);
	sObject.style.display='inline';
	sObject.src="IFrame.aspx?ekfrm=" + formId;
	// and make it visible
	if( changeObjectVisibility(targetObjectId, 'visible') ) {
	   
	    // if we successfully showed the popup
	    // store its Id on a globally-accessible object
	    window.currentlyVisiblePopup = targetObjectId;
	    return true;
	} else {
	    // we couldn't show the popup, boo hoo!
	    return false;
	}
    } else {
	// there was no event object, so we won't be able to position anything, so give up
	return false;
    }
} // showPopup

function showProductPopupForm (targetObjectId, FrameObjectId, formId, title, eventObj) {
    
    if(eventObj) {    
	// hide any currently-visible popups
	hideCurrentPopup();
	// stop event from bubbling up any farther
	eventObj.cancelBubble = true;
	// move popup div to current cursor position 
	// (add scrollTop to account for scrolling for IE)
	var newXCoordinate = (eventObj.pageX)?eventObj.pageX + xOffset:eventObj.x + xOffset + ((document.body.scrollLeft)?document.body.scrollLeft:0);
	var newYCoordinate = (eventObj.pageY)?eventObj.pageY + yOffset:eventObj.y + yOffset + ((document.body.scrollTop)?document.body.scrollTop:0);
	
	var valuey = 0;
    if( typeof window.pageYOffset != 'undefined' )
    {
    valuey=window.pageYOffset;
    }
    else
    if(document.documentElement)
    {
    valuey=document.documentElement.scrollTop;
    }
    else
    if(document.body && typeof document.body.scrollTop != 'undefined')
    {
    valuey=document.body.scrollTop;
    }

	    newXCoordinate = (960/2) - (470/2);
	    newYCoordinate = screen.Height/2 - 350 + valuey;
	
	moveObject(targetObjectId, newXCoordinate, newYCoordinate);	
	var sObject = document.getElementById(FrameObjectId);
	sObject.style.display='inline';
	sObject.src="IFrameProduct.aspx?ekfrm=" + formId + "&Title=" + title;
	// and make it visible
	if( changeObjectVisibility(targetObjectId, 'visible') ) {
	   
	    // if we successfully showed the popup
	    // store its Id on a globally-accessible object
	    window.currentlyVisiblePopup = targetObjectId;
	    return true;
	} else {
	    // we couldn't show the popup, boo hoo!
	    return false;
	}
    } else {
	// there was no event object, so we won't be able to position anything, so give up
	return false;
    }
} // showPopup

function showPopupFormWithPageUrl (targetObjectId, FrameObjectId, formId, Url, eventObj) {
    
    if(eventObj) {    
	// hide any currently-visible popups
	hideCurrentPopup();
	// stop event from bubbling up any farther
	eventObj.cancelBubble = true;
	// move popup div to current cursor position 
	// (add scrollTop to account for scrolling for IE)
	var newXCoordinate = (eventObj.pageX)?eventObj.pageX + xOffset:eventObj.x + xOffset + ((document.body.scrollLeft)?document.body.scrollLeft:0);
	var newYCoordinate = (eventObj.pageY)?eventObj.pageY + yOffset:eventObj.y + yOffset + ((document.body.scrollTop)?document.body.scrollTop:0);
	
	var valuey = 0;
    if( typeof window.pageYOffset != 'undefined' )
    {
    valuey=window.pageYOffset;
    }
    else
    if(document.documentElement)
    {
    valuey=document.documentElement.scrollTop;
    }
    else
    if(document.body && typeof document.body.scrollTop != 'undefined')
    {
    valuey=document.body.scrollTop;
    }

	    newXCoordinate = (960/2) - (470/2);
	    newYCoordinate = screen.Height/2 - 350 + valuey;
	
	moveObject(targetObjectId, newXCoordinate, newYCoordinate);	
	var sObject = document.getElementById(FrameObjectId);
	sObject.style.display='inline';
	sObject.src="IFrame.aspx?ekfrm=" + formId + "&PageUrl=" + Url;
	// and make it visible
	if( changeObjectVisibility(targetObjectId, 'visible') ) {
	   
	    // if we successfully showed the popup
	    // store its Id on a globally-accessible object
	    window.currentlyVisiblePopup = targetObjectId;
	    return true;
	} else {
	    // we couldn't show the popup, boo hoo!
	    return false;
	}
    } else {
	// there was no event object, so we won't be able to position anything, so give up
	return false;
    }
} // showPopup


function hideCurrentPopup() {
    // note: we've stored the currently-visible popup on the global object window.currentlyVisiblePopup
    if(window.currentlyVisiblePopup) {
	changeObjectVisibility(window.currentlyVisiblePopup, 'hidden');
	window.currentlyVisiblePopup = false;
    }
} // hideCurrentPopup



// ***********************
// hacks and workarounds *
// ***********************

// initialize hacks whenever the page loads
window.onload = initializeHacks;

// setup an event handler to hide popups for generic clicks on the document
//document.onclick = hideCurrentPopup;


function showPopup2 (targetObjectId, eventObj) {
	document.onclick = "";
    if(eventObj) {
	// hide any currently-visible popups
	hideCurrentPopup();
	// stop event from bubbling up any farther
	eventObj.cancelBubble = true;
	// move popup div to current cursor position 
	// (add scrollTop to account for scrolling for IE)
	var newXCoordinate = (eventObj.pageX)?eventObj.pageX + xOffset:eventObj.x + xOffset + ((document.body.scrollLeft)?document.body.scrollLeft:0);
	var newYCoordinate = (eventObj.pageY)?eventObj.pageY + yOffset:eventObj.y + yOffset + ((document.body.scrollTop)?document.body.scrollTop:0);
	moveObject(targetObjectId, newXCoordinate, newYCoordinate);
	// and make it visible
	if( changeObjectVisibility(targetObjectId, 'visible') ) {
	    // if we successfully showed the popup
	    // store its Id on a globally-accessible object
	    window.currentlyVisiblePopup = targetObjectId;
	    return true;
	} else {
	    // we couldn't show the popup, boo hoo!
	    return false;
	}
    } else {
	// there was no event object, so we won't be able to position anything, so give up
	return false;
    }
} // showPopup


function initializeHacks() {
    // this ugly little hack resizes a blank div to make sure you can click
    // anywhere in the window for Mac MSIE 5
    if ((navigator.appVersion.indexOf('MSIE 5') != -1) 
	&& (navigator.platform.indexOf('Mac') != -1)
	&& getStyleObject('blankDiv')) {
	window.onresize = explorerMacResizeFix;
    }
    resizeBlankDiv();
    // this next function creates a placeholder object for older browsers
    createFakeEventObj();
}

function createFakeEventObj() {
    // create a fake event object for older browsers to avoid errors in function call
    // when we need to pass the event object to functions
    if (!window.event) {
	window.event = false;
    }
} // createFakeEventObj

function resizeBlankDiv() {
    // resize blank placeholder div so IE 5 on mac will get all clicks in window
    if ((navigator.appVersion.indexOf('MSIE 5') != -1) 
	&& (navigator.platform.indexOf('Mac') != -1)
	&& getStyleObject('blankDiv')) {
	getStyleObject('blankDiv').width = document.body.clientWidth - 20;
	getStyleObject('blankDiv').height = document.body.clientHeight - 20;
    }
}

function explorerMacResizeFix () {
    location.reload(false);
}

function showGlossaryPopup(id)
{

    return showPopup("content"+id, event);
}

function showFormPopup(id)
{
    return showPopupForm("FormPnl", "iFrame", id, event);
}

function showFormPopup(id, _event)
{
   return showPopupForm("FormPnl", "iFrame", id, _event);
}

function showFormPopup2(id, _event)
{
   return showPopupForm("FormPnl2", "iFrame2", id, _event);
}

function showProductFormPopup(id, ptitle, title)
{
    return showProductPopupForm("FormPnl" + ptitle, "iFrame" + ptitle, id, title, event);
}

function showFormPopupWithPageUrl(id, Url)
{
   return showPopupFormWithPageUrl("FormPnl", "iFrame", id, Url, event);
}

function showProductFormPopup(id, ptitle, title, _event)
{
    return showProductPopupForm("FormPnl" + ptitle, "iFrame" + ptitle, id, title, _event);
}

function showFormPopupWithPageUrl(id, Url, _event)
{
    return showPopupFormWithPageUrl("FormPnl", "iFrame", id, Url, _event);
}

function showGlossaryPopup(id, _event)
{

    return showPopup("content"+id, _event);
}

function showContentPopup(id)
{
    return showPopup("content"+id, event);
}

function showContentPopup(id)
{
    return showPopup("content"+id, event);
}

function showFormPopup(id)
{
     return showPopupForm("FormPnl", "iFrame", id, event);
}

function showFormPopup(id, _event)
{
    return showPopupForm("FormPnl", "iFrame", id, _event);
}

function showGlossaryPopup(id)
{
    return showPopup("content"+id, event);
}

function showGlossaryPopup(id, _event)
{

    return showPopup("content"+id, _event);
}
