/*  This file is used to house all of the scripts related to ad rendering.  
It is utilized by ad_handler.jsp */
var resizeSource = "";
var resizeReason = "";
var showAd = false;
var needsBanner = false;
//Used to set up the adSpace before an ad is rendered
//handles resizing and displaying of ad/label spaces
//NOTE: only the Ad server templates have the call
//      to this method.
handleAdSettings = function() {
if (!showAd) {
collapseAd("showAd = false");
}
}
handleAdSettingsIFrame = function() {
if (!showAd) {
collapseAdIFrame("showAd = false");
}
}
//collapse the iFrame that houses the ad
collapseAdIFrame = function(resizeReason) {
var label = document.getElementById( "adText" );
if(label) {
label.style.display = "none";
}
resizeIFrame(0, resizeReason);
}
collapseAd = function(resizeReason) {
var label = document.getElementById( "adText" );
if(label) {
label.style.display = "none";
}
if (typeof alternateContentId != 'undefined') {
var alternateContent = document.getElementById(alternateContentId);
if (alternateContent){
alternateContent.style.display = "block";
}
}
if (typeof sflyAdCallback == 'function') {
var args = new Object();
args.adShown = false;
args.resizeReason = resizeReason;
if (typeof showMiniPromo != 'undefined') {
args.showMiniPromo = showMiniPromo;
}
sflyAdCallback(args);
}
}
//resizes the outer IFrame that houses the ad
resizeIFrame = function(height, resizeReason) {
resizeSource = standardDomain + "incl_/thirdparty/adServer/iFrameAdjuster.html?height=" + height + "&iframeid=showAds" + positionId + "&containerid=" + containerId + "&alternatecontentid=" + alternateContentId + "&resizeReason=" + resizeReason;
resizeSource += "&cbarg_adShown=false";
resizeSource += "&cbarg_resizeReason=" + resizeReason;
if (typeof showMiniPromo != 'undefined') {
resizeSource += "&cbarg_showMiniPromo=" + showMiniPromo;
}
var innerIFrame = document.getElementById("innerIFrame");
if(innerIFrame) {
innerIFrame.src = resizeSource;
}
}
//check the images included in the ad.
checkGeneratedImages = function() {
document.close();
var anchors = document.getElementsByTagName("a");
var images = document.getElementsByTagName("img");
var scripts = document.getElementsByTagName("script");
var objects = document.getElementsByTagName("object");
var embeds = document.getElementsByTagName("embed");
var objectsFound = false;
if(objects.length > 0) {
objectsFound = true;
}
var imageNode;
var scriptNode;
var objectNode;
var embedNode;
var browser=navigator.appName;
var b_version=navigator.appVersion;
var version=parseFloat(b_version);
var incomplete = false;
if(anchors) {
for(var i = 0; i < anchors.length; i++) {
anchorNode = anchors[i];
if(anchorNode.href.indexOf("CID=fffff") > -1) {
incomplete = true;
resizeReason = resizeReason + "Atlas Error returned CID=fffff...";
}
}
}
if(images && !incomplete) {
for(i = 0; i < images.length; i++) {
imageNode = images[i];
if(!imageNode.complete) {
imageNode.src = "http://web1.shutterfly.com/application/adserver_error.gif?errorType=SlowConnection&errorDetails=" + escape( imageNode.src ) + "&acc_random=" + timeStamp;
if(!objectsFound) {
incomplete = true;
resizeReason = resizeReason + "image " + imageNode.id + " failed to load; ";
}
}
}
}
//in IE, we can use readyState to determine whether HTML objects have finished loading
//unfortunately, FireFox does not yet support readyState
if(browser == "Microsoft Internet Explorer" && version >= 4) 
{
if(scripts && !incomplete) {
for(i = 0; i < scripts.length; i++) {
scriptNode = scripts[i];
if(scriptNode.readyState != "complete") {
scriptNode.src = "";
scriptNode.text = "";
incomplete = true;
resizeReason = resizeReason + "script " + scriptNode.id + " failed to load; ";
}
}
}
if(objects && !incomplete) {
for(i = 0; i < objects.length; i++) {
objectNode = objects[i];
if(objectNode.readyState != 4) {
objectNode.codebase = "";
incomplete = true;
resizeReason = resizeReason + "object " + objectNode.id + " failed to load; ";
}
}
}
if(embeds && !incomplete) {
for(i = 0; i < embeds.length; i++) {
embedNode = embeds[i];
if(embedNode.readyState != "complete") {
embedNode.src = "";
incomplete = true;
resizeReason = resizeReason + "embed " + embedNode.id + " failed to load; ";
}
}
}
}
if(incomplete) { //ad rendering too slow -- collapse
collapseAd(resizeReason);
}
}
noAd = function(reason){
collapseAd(reason);
}
//called when we're not displaying any ads at all
noAdIFrame = function(reason) {
collapseAdIFrame(reason);
}
