function closeCropDlg() {
  YAHOO.ft.cropDlg.hide();
}

function acceptCropDlg() {
  if (glblCropParams.cropped) {
    var quality = "Best";
    try {
      quality = glblCropParams.cropper.getPrintQuality();
	} catch(e) {
	  quality = sizePrintQuality(glblCropParams.origWidth, glblCropParams.origHeight, glblCropParams.printWidth, glblCropParams.printHeight);	  
	}
	var origQuality = sizePrintQuality(glblCropParams.origWidth, glblCropParams.origHeight, glblCropParams.printWidth, glblCropParams.printHeight);	  
  
  // if proofing system on, always show best
  if (glblCropParams.showPrintQuality == false) {
    quality = "Best";    
    origQuality = "Best";
  }
  
	if ((quality == "Poor") && (origQuality != "Poor")) {
	  alert("You have croppped the image in too closely, and there is not enough pixels to print at your selected print size.  Please increase the crop area to improve the quality.");
	  return;
	}
  }
  
  // crop checkbox
  if (glblCropParams.cropCbId) {
    var cbFld = document.getElementById(glblCropParams.cropCbId);
    if (cbFld) {
      cbFld.checked = glblCropParams.cropped;
  	  checkoutRemoveRedBox(cbFld.id);
    }
  }
  
  // crop range field
  if (glblCropParams.rangeId) {
    var cropRangeFld = document.getElementById(glblCropParams.rangeId);
    if (cropRangeFld) {
      if (glblCropParams.cropped) {
        var cropRange = rectToString(glblCropParams.cropper.getOrigCropRegion());   
        cropRangeFld.value = cropRange;
	  } else {
	    //cropRangeFld.value = "";
	  }
    }
  }
  
  // update cart image preview
  if (glblCropParams.imgPreview) {
    var previewImg = document.getElementById(glblCropParams.imgPreview);
    if (previewImg) {
      var url = getPreviewImageURL(glblCropParams);
	  previewImg.src = url;
    }
  }
  
  // get rid of red warning text
  if (glblCropParams.anchorId) {
    var ancFld = document.getElementById(glblCropParams.anchorId);
	if (ancFld) ancFld.className = "cartPreviewLink";
  }
  
  // update magnifying glass
  if (glblCropParams.imgCropInd) {
    var magGlass = document.getElementById(glblCropParams.imgCropInd);
    if (magGlass) magGlass.src = "/ftweb/images/ft/icons/crop.gif";
  }
  
  if (glblCropParams.quantityId) {
    var qtyFld = document.getElementById(glblCropParams.quantityId);
	if (qtyFld) {
	  if (qtyFld.value == "0") qtyFld.value = "1";
	}
  }
  
  YAHOO.ft.cropDlg.hide();
}

// removes the red box around the severely cropped
// items on the checkout page
function checkoutRemoveRedBox(cbid) {
  var Elem = document.getElementById(cbid);
  if (Elem) {
    var seqstr = ""; var tmp = cbid;
	for (i = 0; i < tmp.length; i++) {
	  var c = tmp.substring(i,i+1);
	  if ((c == "0") || (c == "1") || (c == "2") || (c == "3") || (c == "4") || (c == "5") ||
	      (c == "6") || (c == "7") || (c == "8") || (c == "9")) seqstr += c;
	}
	if (seqstr != "") {
	  var seq = parseInt(seqstr);
	  var tbl = "OrderItem" + seq;
	  var tblFld = document.getElementById(tbl);
	  if (tblFld) tblFld.style.border = '';
	}
  }
}


function getPreviewImageURL(glblCropParams) {
  var url = "/ftweb/bin/ft.dll/printpreview?pictid=" + glblCropParams.pictureId;
  if (glblCropParams.userId) url += "&userid=" + glblCropParams.userId;
  if (glblCropParams.imgPreview.indexOf('previewcrop') >= 0) {
    if (glblCropParams.cropped) url+= "&ptype=croplines"; else url += "&ptype=fit";  
  } else {
    url += "&ptype=thumb";    
  }

  if (glblCropParams.itemId) url += "&itemid=" + glblCropParams.itemId;
  if (glblCropParams.boxSize) {
    url += "&bs=" + glblCropParams.boxSize;
  } else {
    url += "&bs=125";
  }
  if (glblCropParams.cropper) {
    url += "&origWidth=" + glblCropParams.origWidth;
	url += "&origHeight=" + glblCropParams.origHeight;
    var cropRange = rectToString(glblCropParams.cropper.getOrigCropRegion()); 
	url += "&croprange=" + cropRange;
  }
  
  if (glblCropParams.pageVer == 2) url += '&border=f';
  
  return(url);
}

//function getCropDialogHtml(pictid,userid,origWidth,origHeight) {
  //params.pictureId,params.userId,params.origWidth,params.origHeight
function getCropDialogHtml(params) {  
  var html = "";
  var bs = "320";
  if (params.origHeight > params.origWidth) bs = "240";
  var cropURL = "/ftweb/bin/ft.dll/printpreview?pictid=" + params.pictureId + "&ptype=croplines&bs=100";
  var fitURL = "/ftweb/bin/ft.dll/printpreview?pictid=" + params.pictureId + "&ptype=fit&bs=100";
  var previewCropURL = "/ftweb/bin/ft.dll/printpreview?pictid=" + params.pictureId + "&ptype=orig&bs=" + bs;
  var previewFitURL = "/ftweb/bin/ft.dll/printpreview?pictid=" + params.pictureId + "&ptype=fit&bs=" + bs;  
  if (params.printWidth) {
    cropURL += '&pw=' + params.printWidth;
    fitURL += '&pw=' + params.printWidth;  
    previewCropURL += '&pw=' + params.printWidth;
    previewFitURL += '&pw=' + params.printWidth;      
  }
  if (params.printHeight) {
    cropURL += '&ph=' + params.printHeight;
    fitURL += '&ph=' + params.printHeight;  
    previewCropURL += '&ph=' + params.printHeight;
    previewFitURL += '&ph=' + params.printHeight;      
  }  
  if (params.itemId) {
    cropURL += '&itemid=' + params.itemId;
    fitURL += '&itemid=' + params.itemId;  
    previewCropURL += '&itemid=' + params.itemId;
    previewFitURL += '&itemid=' + params.itemId;    
  }
  if (params.userId) {
    cropURL += '&userid=' + params.userId;
    fitURL += '&userid=' + params.userId;  
    previewCropURL += '&userid=' + params.userId;
    previewFitURL += '&userid=' + params.userId;  
  }
    
  html += '<table align=center class=cropchoice border=0 cellspacing=0 cellpadding=0>';
  html += '<tr>';
  html += '<td id=optCrop><a id=optCropA href="javascript:showCrop()"><input onClick="showCrop()" type=radio id=cfc name=cf value="crop"> Crop</a></td>';
  html += '<td>&nbsp;</td>';
  html += '<td id=optFit><a id=optFitA href="javascript:showFit()"><input onClick="showFit()" type=radio id=cff name=cf value="fit"> Fit</a></td>';  
  html += '</tr>';
  html += '<tr>';
  html += '<td><a href="javascript:showCrop()"><img border=0 id=cropImg src="' + cropURL + '"></a></td>';
  html += '<td>OR</td>';
  html += '<td><a href="javascript:showFit()"><img border=0 id=fitImg src="' + fitURL + '"></a></td>';  
  html += '</tr>';
  html += '</table>';
  html += '<table class=croppreview>';
  html += '<tr><td id=previewhdg>Preview of your print <span id=printQuality></span></td></tr>';
  html += '<tr>'; 
  html += '<td>';
  // crop option
  if (params.origWidth >= params.origHeight) {    
    html += '<div id=cropDiv style="padding-left:20px">';
  } else {
    html += '<div id=cropDiv style="padding-left:90px">';  
  }
  html += '<img id=previewCropImg src="' + previewCropURL + '">';
  html += '</div>';
  // fit option
  html += '<div id=fitDiv align=center>';
  html += '<img id=previewFitImg src="' + previewFitURL + '">';
  html += '</div>';  
  html += '</td>';
  html += '</tr>';
  html += '<tr><td id=cropFitMsg class=cropDesc>msg</td></tr>';  
  html += '</table>';
  return(html);
}

function getCropDialogHtmlV2(params) {  
  var html = "";
  var bs = "320";
  if (params.origHeight > params.origWidth) bs = "240";
  var cropURL = "/ftweb/bin/ft.dll/printpreview?pictid=" + params.pictureId + "&ptype=croplines&bs=100";
  var fitURL = "/ftweb/bin/ft.dll/printpreview?pictid=" + params.pictureId + "&ptype=fit&bs=100";
  var previewCropURL = "/ftweb/bin/ft.dll/printpreview?pictid=" + params.pictureId + "&ptype=orig&bs=" + bs;
  var previewFitURL = "/ftweb/bin/ft.dll/printpreview?pictid=" + params.pictureId + "&ptype=fit&bs=" + bs;  
  if (params.printWidth) {
    cropURL += '&pw=' + params.printWidth;
    fitURL += '&pw=' + params.printWidth;  
    previewCropURL += '&pw=' + params.printWidth;
    previewFitURL += '&pw=' + params.printWidth;      
  }
  if (params.printHeight) {
    cropURL += '&ph=' + params.printHeight;
    fitURL += '&ph=' + params.printHeight;  
    previewCropURL += '&ph=' + params.printHeight;
    previewFitURL += '&ph=' + params.printHeight;      
  }  
  if (params.itemId) {
    cropURL += '&itemid=' + params.itemId;
    fitURL += '&itemid=' + params.itemId;  
    previewCropURL += '&itemid=' + params.itemId;
    previewFitURL += '&itemid=' + params.itemId;    
  }
  if (params.userId) {
    cropURL += '&userid=' + params.userId;
    fitURL += '&userid=' + params.userId;  
    previewCropURL += '&userid=' + params.userId;
    previewFitURL += '&userid=' + params.userId;  
  }
  
  if (params.pageVer == 2) {
    cropURL += '&border=f';
    fitURL += '&border=f';
    previewCropURL += '&border=f';
    previewFitURL += '&border=f';
  }
  
  html += '<table align=center class=cropchoice border=0 cellspacing=0 cellpadding=0>';
  html += '<tr>';
  html += '<td id=optCrop><a id=optCropA href="javascript:showCrop()"><input onClick="showCrop()" type=radio id=cfc name=cf value="crop"> Crop</a></td>';
  html += '<td>&nbsp;</td>';
  html += '<td id=optFit><a id=optFitA href="javascript:showFit()"><input onClick="showFit()" type=radio id=cff name=cf value="fit"> Fit</a></td>';  
  html += '</tr>';
  html += '<tr>';
  html += '<td><a href="javascript:showCrop()"><img class=bordered id=cropImg src="' + cropURL + '"></a></td>';
  html += '<td>OR</td>';
  html += '<td><a href="javascript:showFit()"><img class=bordered id=fitImg src="' + fitURL + '"></a></td>';  
  html += '</tr>';
  html += '</table>';
  html += '<table class=croppreview>';
  html += '<tr><td id=previewhdg><h5>Preview of your print <span id=printQuality></span></h5></td></tr>';
  html += '<tr>'; 
  html += '<td>';
  // crop option
  if (params.origWidth >= params.origHeight) {    
    html += '<div id=cropDiv style="padding-left:20px">';
  } else {
    html += '<div id=cropDiv style="padding-left:90px">';  
  }
  html += '<img id=previewCropImg src="' + previewCropURL + '" class=bordered>';
  html += '</div>';
  // fit option
  html += '<div id=fitDiv align=center>';
  html += '<img id=previewFitImg src="' + previewFitURL + '" class=bordered>';
  html += '</div>';  
  html += '</td>';
  html += '</tr>';
  html += '<tr><td id=cropFitMsg class=cropDesc>msg</td></tr>';  
  html += '</table>';
  return(html);
}


function showPrintQuality() {
  var qualityFld = document.getElementById("printQuality");
  if (qualityFld) {
    var quality = "xxx";
    if (glblCropParams.cropped) {
	    try {
        quality = glblCropParams.cropper.getPrintQuality();
	    } catch(e) {
	      return;
	      //alert(e.message);
  	    //quality = sizePrintQuality(glblCropParams.origWidth, glblCropParams.origHeight, glblCropParams.printWidth, glblCropParams.printHeight);	  
	    }
  	} else {
	    quality = sizePrintQuality(glblCropParams.origWidth, glblCropParams.origHeight, glblCropParams.printWidth, glblCropParams.printHeight);
  	}
    
    // if proofing system on, always show best    
    if (glblCropParams.showPrintQuality == false) quality = "Best";    
    
    qualityFld.innerHTML = ' - <a title="Explain print quality" href="javascript:qualityMessage()">Quality ' + quality + '</a>';
    
  }
}

function qualityMessage() {
  var msg = "Print quality is based upon the print size you choose and the number of pixels in the image.  ";
  msg += "If there are too few pixels, or you have cropped the image too small, you may not have enough image resolution for the print size you have chosen.";
  msg += "  You can either choose a smaller print size, or not crop in so tightly.";
  alert(msg);
}

function showCrop() {
  document.getElementById("fitDiv").style.display = "none";  
  document.getElementById("cropDiv").style.display = "block";
  document.getElementById("cfc").checked = true;
  document.getElementById("cff").checked = false;  

  if (glblCropParams.pageVer == 1) {
    document.getElementById("cropImg").style.border = "1px solid silver";
    document.getElementById("fitImg").style.border = "0px";  
  } else {
    document.getElementById("cropImg").style.borderWidth = "2px";
    document.getElementById("fitImg").style.borderWidth = "1px";     
  }
  
  //document.getElementById("optCropA").innerHTML = "Crop - selected";
  //document.getElementById("optFitA").innerHTML = "Fit";
  document.getElementById("cropFitMsg").innerHTML = 'You can adjust the portion of your image that will be cropped by re-sizing or dragging the above crop box in the image above.';
  glblCropParams.cropped = true;  
  showPrintQuality();
}

function showFit() {
  document.getElementById("cropDiv").style.display = "none";
  document.getElementById("fitDiv").style.display = "block";  
  document.getElementById("cfc").checked = false;
  document.getElementById("cff").checked = true;    
  
  if (glblCropParams.pageVer == 1) {  
    document.getElementById("fitImg").style.border = "1px solid silver";
    document.getElementById("cropImg").style.border = "0px";    
  } else {
    document.getElementById("fitImg").style.borderWidth = "2px";
    document.getElementById("cropImg").style.borderWidth = "1px";      
  }
  
  //document.getElementById("optCropA").innerHTML = "Crop";
  //document.getElementById("optFitA").innerHTML = "Fit - selected";  
  document.getElementById("cropFitMsg").innerHTML = "Fit means none of your image will be trimmed away, but if it doesn't fit the ratio of the paper perfectly, white borders will be added on two sides";
  glblCropParams.cropped = false;    
  showPrintQuality();  
}

var glblCropParams = null;

function showCropDialog(params) {
  var cropFld = document.getElementById(params.cropCbId);
  var cropped = cropFld.checked;
  glblCropParams = params;
  glblCropParams.cropped = cropped;
  if (params.pageVer == 2) {
    document.getElementById("crop_insertspot").innerHTML = getCropDialogHtmlV2(params);   
  } else {
    document.getElementById("crop_insertspot").innerHTML = getCropDialogHtml(params); 
  }
  var acropper = new ftImageCropper("previewCropImg");
  glblCropParams.cropper = acropper;
  acropper.setOrigSize(params.origWidth, params.origHeight);	
  acropper.setPrintSize(params.printWidth,params.printHeight);
  var regionFld = document.getElementById(params.rangeId);
  if (regionFld) acropper.setInitialRange(regionFld.value);
  acropper.onChangeEvent.subscribe(function () {
    showPrintQuality();
  });
  acropper.initialize(null);  
  if (cropped) showCrop(); else showFit();      
  YAHOO.ft.cropDlg.show();
}

function changePhoto(params) {
  showSingleSelectPictDialog('');
  glblCropParams = params;
  var cropFld = document.getElementById(params.cropCbId);
  if (cropFld != null) {
    var cropped = cropFld.checked;
    glblCropParams.cropped = cropped;
  } else {
    glblCropParams.cropped = false;  
  }
}

function replacePhoto(name)
{
  glblCropParams.pictureId = name;
  if (glblCropParams.imgPreview) {
    var previewImg = document.getElementById(glblCropParams.imgPreview);
    if (previewImg) {
      var url = getPreviewImageURL(glblCropParams);
      previewImg.src = url;
      var elem = document.getElementById(glblCropParams.pictidfld);
      elem.value = name;
    }
  }
  YAHOO.ft.selectPictDlg.hide();
}
  


