//===== Chris Kinata's Popup image generator
//===== vbscript version 20040823
//===== javascript version 20060915
// To do: create another arg that passes a <style> block, 
// containing rules that create a custom frame format.

/*
if(window.createPopup){
    window.alert('createPopup available');
    }
*/

var oPopup = window.createPopup();
var oPopupBody = oPopup.document.body;

//===== DEFAULT FRAME PARAMS ===== redefined in pages as needed.
var gnMatteWidth = 20;
//Can be a color || URL() relative to page.
//"images--global\textures\woven\tex--woven--basket--96.jpg" 'tex--woven--canvas01--200.jpg"    '
var gsBackground = "#999"; 

function CKPopupImage_Init(sImageURL, lsBackground, lsMatteWidth){
	var sAcc = "";
	
	sAcc += "<head>";
	sAcc += "<meta http-equiv='ImageToolBar' content='No'>";
	sAcc += "</head>";
	sAcc += "<html>";
	sAcc += "<body style=\"margin: 0px; padding: 0px;\">";
	sAcc += "<div id=\"ckid_popup_content\" style=\"";
	sAcc += "MARGIN: 0px;";
	
	//Sets min size, which IMG stretches out.;
	sAcc += "WIDTH: 10px; HEIGHT: 10px;";    
	sAcc += "BORDER: #fff 6px ridge; ";
	sAcc += "PADDING: " + lsMatteWidth + ";";
	sAcc += "BACKGROUND: " + lsBackground + ";";
	sAcc += "\">";
	
	sAcc += "<img id=\"ckid_imgElem\" src=\"" + sImageURL + "\" alt=\"Loading...\" style=\"";
	sAcc += "BORDER: #ddd 2px inset;";
	sAcc += "PADDING: 0px;";
	sAcc += "MARGIN: 0px;";
	sAcc += "\">"
	
	sAcc += "</div>" ;
	sAcc += "</body>";
	sAcc += "</html>";
	//window.alert(sAcc);
	return sAcc;
	}

function CKPopupImage_Show(sImageURL) {
	// Could parse input URL from me.src, && attempt to find the next larger version.
	// Could attach behavior to img.classname
	// Need to determine pathname for images.
	var 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, && show again.;
	oPopup.document.images('ckid_imgElem').attachEvent('onload', CKPopupImage_recalc);
	}

function CKPopupImage_recalc() {
	var nScreenWidth, nScreenHeight, nImageWidth, nImageHeight, nTop, nLeft;
	var 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);
	oPopup.document.body.attachEvent('onclick', CKPopupImage_Click);
	oPopup.document.body.attachEvent('oncontextmenu', CKPopupImage_RightClick);
	oPopup.document.images('ckid_imgElem').alt = "";
	}

function CKPopupImage_Click() {
	oPopup.hide();
	}
function CKPopupImage_RightClick() {
	oPopup.hide();
	}

window.onunload = function() {
	oPopup = null;
	}

