'===== Chris Kinata's Popup image generator
'===== 20040823
'===== 
' To do: create another arg that passes a <style> block, 
' containing rules that create a custom frame format.

dim oPopup
set oPopup = window.createPopup
dim oPopupBody
set oPopupBody = oPopup.document.body

'===== DEFAULT FRAME PARAMS ===== redefined in pages as needed.
dim gnMatteWidth
	gnMatteWidth = 20
dim gsBackground			'Can be a color or URL() relative to page.
	gsBackground = "#ff8"

function CKPopupImage_Init(sImageURL, lsBackground, lsMatteWidth)
	dim sAcc
	sAcc = ""
	sAcc = sAcc & "<html>"
	sAcc = sAcc & "<body style=""margin: 0px; padding: 0px;"">"
	sAcc = sAcc & "<div id=""ckid_popup_content"" style="""
	sAcc = sAcc & "MARGIN: 0px;"
	sAcc = sAcc & "WIDTH: 10px; HEIGHT: 10px;"				'Sets min size, which IMG stretches out.
	sAcc = sAcc & "BORDER: #ccc 6px ridge; "
	sAcc = sAcc & "PADDING: " & lsMatteWidth & ";"
	sAcc = sAcc & "BACKGROUND: " & lsBackground & ";"
	sAcc = sAcc & """>"
	
	sAcc = sAcc & "<img id=""ckid_imgElem"" src=""" & sImageURL & """ alt=""Loading..."" style="""
	sAcc = sAcc & "BORDER: #ddd 2px inset;"
	sAcc = sAcc & "PADDING: 0px;"
	sAcc = sAcc & "MARGIN: 0px;"
	sAcc = sAcc & """>"

	sAcc = sAcc & "</div>" 
	sAcc = sAcc & "</body>"
	sAcc = sAcc & "</html>"
	CKPopupImage_Init = sAcc
end function

sub CKPopupImage_Show(sImageURL)
'>>> Could parse input URL from me.src, and attempt to find the next larger version.
'>>> Could attach behavior to img.classname
'>>> Need to determine pathname for images.
	dim sPopupHTML
		
	'Check for existence of me.src.
	'If src contains [small], replace with [med]
	'If src contains [med], replace with [large]
	
	sPopupHTML = CKPopupImage_Init(sImageURL, gsBackground, gnMatteWidth & "px")
    oPopup.document.body.innerHTML = sPopupHTML 

    oPopup.show 0, 0, 100, 40, document.body
    'Attach onload event to image, to hide popup, recalc dimensions, and show again.
	call oPopup.document.images("ckid_imgElem").attachEvent("onload", GetRef("CKPopupImage_recalc"))
end sub

sub CKPopupImage_recalc
	dim nScreenWidth, nScreenHeight, nImageWidth, nImageHeight, nTop, nLeft
	dim nGetImageWidth
	'window.status = "Image " & oPopup.document.images("ckid_imgElem").src & " is loaded"
	'>>> Need to calc popup size better--allow for border-width, etc.
    nImageWidth = oPopup.document.images("ckid_imgElem").width + 2*gnMatteWidth + 16
    nImageHeight = oPopup.document.images("ckid_imgElem").height + 2*gnMatteWidth + 16
	nScreenWidth = document.body.clientWidth
	nScreenHeight = document.body.clientHeight
	nTop = (nScreenHeight - nImageHeight) / 2
	nLeft = (nScreenWidth - nImageWidth) / 2

	oPopup.hide
    oPopup.show nLeft, nTop, nImageWidth, nImageHeight, document.body
	call oPopup.document.body.attachEvent("onclick", GetRef("CKPopupImage_Click"))
	call oPopup.document.body.attachEvent("oncontextmenu", GetRef("CKPopupImage_RightClick"))
	oPopup.document.images("ckid_imgElem").alt = ""
end sub

sub CKPopupImage_Click
	oPopup.hide
end sub
sub CKPopupImage_RightClick
	oPopup.hide
end sub

sub window_onunload
	set oPopup = nothing
end sub


