var preloadImg = new Image();

var magCoverHash = new Hash();

var activeShareThis;

function preload(imgSrc) {
	preloadImg.src = imgSrc;
}

function showPreload() {
   var image = document.getElementById("blowup");
   image.src = preloadImg.src;
}

function updateLinkHref(linkId, newHref) {
   var link = document.getElementById(linkId);
   if (link) {
      link.href = newHref;
   }
}

function MagCoverData(imgSrc, magCoverId, templateId, creator, date, hd, forSale) {
   this.img = imgSrc;
   this.id = magCoverId;
   this.template = templateId;
   this.creator = creator;
   this.date = date;
   this.hd = hd;
   this.forSale = forSale;
}

function updateMagCoverHash(magCoverId) {
   if (magCoverHash) {
      magCoverHash.set(magCoverId, magCoverId);
   }
}

function showMagCover(magCoverData) {
   var image = document.getElementById("blowup");
   image.src = preloadImg.src;
   image.src = magCoverData.img;

   document.location.hash = magCoverData.id;
   udpateSaveLink(magCoverData.id, magCoverData.hd);
   updateShareThis(magCoverData.id);
   updateReportLink(magCoverData.id);
   updatePrivacyLinks(magCoverData.id);
   updateDeleteForm(magCoverData.id);
   updateLinkHref('createLink', "/creator/index.vm?magazineId=" + magCoverData.template);
   updateCreatorLink(magCoverData.creator, magCoverData.id);
   updateMagCoverHash(magCoverData.id);
   updateMagCoverInProductViewer(magCoverData.id, magCoverData.forSale);
   updateUrlReference(magCoverData.id);
   updateHtmlReference(magCoverData.id);
}

function initMagCover(magCoverData) {
   var image = document.getElementById("blowup");
   image.src = preloadImg.src;
   image.src = magCoverData.img;

   document.location.hash = magCoverData.id;
   udpateSaveLink(magCoverData.id, magCoverData.hd);
   updateShareThis(magCoverData.id);
   updateReportLink(magCoverData.id);
   updatePrivacyLinks(magCoverData.id);
   updateDeleteForm(magCoverData.id);
   updateLinkHref('createLink', "/creator/index.vm?magazineId=" + magCoverData.template);
   updateCreatorLink(magCoverData.creator, magCoverData.id);
   updateMagCoverHash(magCoverData.id);
   updateUrlReference(magCoverData.id);
   updateHtmlReference(magCoverData.id);
}

function udpateSaveLink(magCoverId, hdAvailable) {
   var link = document.getElementById('saveLink');
   if (link) {
      link.href='/saveMagCover.shtml?magCoverId=' + magCoverId;
   }

   var buySaveHdLink = document.getElementById('buySaveHDLink');
   if (buySaveHdLink) {
      if (hdAvailable) {
         buySaveHdLink.href='/saveMagCoverHD.shtml?magCoverId=' + magCoverId;
	 buySaveHdLink.className="saveHD";
      } else {
         buySaveHdLink.href='javascript:addToCart(1, "' + magCoverId + '")';
	 buySaveHdLink.className="buyHD";
      }
   }
   var giveHdLink = document.getElementById('giveHDLink');
   if (giveHdLink) {
      giveHdLink.href='/MagCoverManager/promotionalHDForm.vm?magCoverId=' + magCoverId;
      if (hdAvailable) {
	 giveHdLink.className="hidden";
      } else {
	 giveHdLink.className="giveHD";
      }
   }
}

function updateShareThis(magCoverId) {
	var sourceShareThis = document.getElementById("sharethis" + magCoverId);
	if (sourceShareThis) {
	   sourceShareThis.className="ShareThisVisible";
	   if (activeShareThis && (activeShareThis != sourceShareThis)) {
		   activeShareThis.className="ShareThisHidden";
	   }
	   activeShareThis = sourceShareThis;
	}
}

function updateReportLink(magCoverId) {
	updateLinkHref('reportLink', "/member/reportMagCoverForm.shtml?complaint.magCoverId=" + magCoverId);
}

function updatePrivacyLinks(magCoverId) {
	updateLinkHref('setPublicLink', "javascript:updatePrivacyLevel('" + magCoverId + "', 'public');");
	updateLinkHref('setPrivateLink', "javascript:updatePrivacyLevel('" + magCoverId + "', 'private');");
}

function updateDeleteForm(magCoverId) {
	var form = document.getElementById('deleteForm');
	if (form) {
	   for (var i = 0; i < form.length; i++) {
	      if (form.elements[i].id == "magCoverId") {
	         form.elements[i].value = magCoverId;
	      }
	   }	
   }
}


function updateCreatorLink(creator, magCoverId) {
	var link = document.getElementById('creatorLink');
	if (link) {
	   link.href = "/user/" + creator + "#" + magCoverId;
	   //link.innerHTML = creator;
	   link.title = "Visit " + creator + "'s gallery";
	}
}

function updateUrlReference(magCoverId) {
	var urlReferenceText = document.getElementById("urlReference");
	if (urlReferenceText) {
	   urlReferenceText.innerHTML = "http://www.magcover.com/cover/" + magCoverId;
	}
	var urlLink = document.getElementById("urlLink");
	if (urlLink) {
	   urlLink.href = "http://www.magcover.com/cover/" + magCoverId;
	}
}

function updateHtmlReference(magCoverId) {
	var htmlReferenceText = document.getElementById("htmlReference");
	if (htmlReferenceText) {
	   htmlReferenceText.innerHTML =  '&lt;a href="http://www.magcover.com/cover/' + magCoverId + '"&gt; &lt;img src="http://static.magcover.com/magcovers/' + magCoverId + '_f_f.jpg"/&gt; &lt;/a&gt;'	
	}
}


function updateWallOfFameStats() {
   if (magCoverHash) {
      var keys = magCoverHash.keys();
      if (keys.length > 0) {
         var value = keys.toString();
         new Ajax.Request("/updateWallOfFameStats.shtml", {
            method: 'post',
            parameters: {magCoverIdList: value},
		
            onComplete: function(transport) {
            }
  	      });
      }
   }
}

function updateUserGalleryStats() {
   if (magCoverHash) {
      var keys = magCoverHash.keys();
      if (keys.length > 0) {
         var value = keys.toString();
         new Ajax.Request("/updateUserGalleryStats.shtml", {
            method: 'post',
            parameters: {magCoverIdList: value},
		
            onComplete: function(transport) {
            }
  	      });
      }
   }
}

