/**
* Copyright (c) 2009-2010, As Is Software, dba Media Lab Inc.
* http://www.medialab.com
*/
var com;
if(!com) { com = {}; } else if(typeof(com) != "object") { throw new Error("can't initialize...com is not an object."); }
if(!com.medialab) { com.medialab = {}; } else if(typeof(com.medialab) != "object") { throw new Error("can't initialize...com.medialab is not an object."); }
if(!com.medialab.sg) { com.medialab.sg = {}; }
if (!com.medialab.sg.gallery1) { com.medialab.sg.gallery1 = {};}
com.medialab.sg.gallery1.pictureboxSiteGrinderCSSBasic = function(pictureboxXMLIn, docentIn){
var that = this;
var debug = false;
var sgalert = function(msg){
if (debug) {
alert(msg);
}
};
var docent = docentIn;
var xml = pictureboxXMLIn;
var myWidth = 0;
var myHeight = 0;
var myDivID = "not set yet";
var myClickAction = "not set yet";
var myHoverAction = "not set yet";
var rightClickBlock = false;
var curImageUrl = "not set yet";
function getPictureboxQuery() {
// sample : '#divname img'
return '#'+myDivID+' img';
}
this.getRightClickBlock = function () { return rightClickBlock; }
this.displayByUrl = function(imageUrl) {
var pbq = getPictureboxQuery();
$ml(pbq).attr('src', imageUrl);
//$ml(pbq).attr('alt', "A very expensive-to-create picture of some space crap");
}
this.displayByNum = function(exhibitNum, viewNum) {
docent.sgconsole('CSS PICTUREBOX displayByNum()');
this.displayByUrl(getUrlFromNum(exhibitNum,viewNum));
}
function getUrlFromNum(exhibitNum, viewNum){
return $ml('exhibits exhibit:eq('+ exhibitNum +') views view:eq('+ viewNum +') picturebox url',xml).text();
}
function initPictureBox() {
var containerText = '';
containerText+= '
';
containerText+= ' ';
containerText+= ' |
';
var container = $ml(containerText);
container.appendTo('#'+myDivID);
//that.displayByNum(0,0);
var exhibitToShow = docent.getCurrentExhibit();
if (getOption('startrandom')) {
exhibitToShow = Math.floor(Math.random() * docent.getExhibitCount());
docent.pictureboxSelectByNum(exhibitToShow,false);
that.displayByNum(exhibitToShow, 0);
}
else {
that.displayByNum(exhibitToShow, 0);
}
if(rightClickBlock) {
docent.sgconsole('2disabling right click');
$ml('#'+myDivID).bind("contextmenu",function(e){ alert('Context menu disabled for this image.'); return false; } );
}
if (myClickAction != "none") {
$ml('#'+myDivID).bind('click',function(event){myClick(event);});
$ml('#'+myDivID).css('cursor','pointer');
}
//$ml('#'+myDivID + ' a').css('outline','none'); // turns off ff picturebox. Doesn't need it for some reason.
}
function myClick(e) {
docent.sgconsole("picturebox clicked");
/* if(rightClickBlock) {
var msg = "Image protected from saving.";
if (navigator.appName == 'Netscape' && e.which == 3) {
alert(msg);
return false;
}
if (navigator.appName == 'Microsoft Internet Explorer' && event.button==2) {
alert(msg);
return false;
}
}*/
docent.pictureboxClick(true,null);
return false;
}
function init() {
docent.sgconsole("SG Standard Picturebox: Init");
if(getOption("type")!="sitegrindercss") { alert("Type mismatch between picturebox javascript and data!"); return;}
if(getOption("version") > 1.0) { alert("Picturebox javascript version older than data version!"); return;}
processXML();
initPictureBox();
}
function processXML () {
sgalert("SG Standard Picturebox: processXML", this);
numExhibits = docent.getExhibitCount();
myWidth = getOption("width");
myHeight = getOption("height");
myDivID = getOption("divname");
rightClickBlock = getOption("rightclickblock");
myClickAction = getOption("clickaction");
myHoverAction = getOption("hoveraction");
return;
}
function getOption(opt) {
return docent.getPictureboxOption(opt);
//var w = $ml('options > picturebox > option[varname='+opt+']', xml).attr("value");
}
init();
}