var topMat = new Mat();
var middleMat = new Mat();
var bottomMat = new Mat();
var stopMat = new Mat();
var smiddleMat = new Mat();
var sbottomMat = new Mat();
//texture variables
var backcolor = "FFFFFF";

var frame = new Frame();
var sFrame = new Frame();
var fillet = new Frame();
var liner = new Frame();
//width of the frames

var topMatWidth = 0.0;//Changing this on 4px default value is 2.5
var middleMatWidth = 0.0;//Changing this on 2px default value is 1.0
var bottomMatWidth = 0.0;//Changing this on 1px default value is 0.25

//mode of groove
var groove = 0;
var grooveDeltaX = 6;
var grooveDeltaY = 6;

var cropPos1 = 0.0;//up width
var cropPos2 = 0.0;//right width
var cropPos3 = 0.0;//down width
var cropPos4 = 0.0;//left width
//message
var theMessage = 'tmat';
//chapter of the help
var chelp = 'Mat';
//glass
var glass = null;
var frame_glass = null;
var inchesInSquareFoot = 144;
var cmInSquareMetre = 10000;
var curbg = '';
var brushstrokes=0;
var c_transfer=0;
var museum_wrap=0;
var gal_wrap=0;
var brushstrokesPrice=0;
var c_transferPrice=0;
var museum_wrapPrice=0;
var gal_wrapPrice=0;
var needTurnImage =0;

//Parametres of the page
var QueryString = new Array();
var qs_element;

//the size calculation
var k1,k2;

//popup window manager
createWindowManagerInstance();

function update() {
  art_project.drawProject();
  updateInfo();
}
function updateInfo() {
  $("priceList").innerHTML = getDesc(this);
}
function generateUrl(){

   return generateUrlEx(CANVAS_WINDOW_W, CANVAS_WINDOW_H, 20, 60);
}

function generateUrlEx(canvasW, canvasH, marginW, marginH)
{
  if(needTurnImage==1)
  {
    var imageH = image.imageSizeX * 8;//image width if pixel
    var imageW = image.imageSizeY * 8;//image height if pixel
    var frameHeightPx = frame.frameWidth * 8;
    var frameWidthPx = frame.frameHeight * 8;
  }
  else
  {
    var imageW = image.imageSizeX * 8;//image width if pixel
    var imageH = image.imageSizeY * 8;//image height if pixel
    var frameWidthPx = frame.frameWidth * 8;
    var frameHeightPx = frame.frameHeight * 8;
  }
  if( isCFramePresent() )
  {
    calculateCFrameEmptySpaces();
  }
  else
  {
    frame.cFrameSpaceL = 0;
    frame.cFrameSpaceT = 0;
    frame.cFrameSpaceR = 0;
    frame.cFrameSpaceB = 0;
  }
  var topMatWidthPx = topMatWidth * 8;
  var middleMatWidthPx = middleMatWidth * 8;
  var bottomMatWidthPx = bottomMatWidth * 8;
  var frameSideWidthPx = frame.width * 8;

  var filletWidthPx = fillet.width * 8;
  var linerWidthPx = liner.width * 8;
  //scaled the image
  if(isCFramePresent())
  {
    k1 = new Number((canvasW-marginW)/(Number(2*frameSideWidthPx + frameWidthPx)));
    k2 = new Number((canvasH-marginH)/(Number(2*frameSideWidthPx + frameHeightPx)));
  }
  else
  {
    k1 = new Number((canvasW-marginW)/(Number(imageW + 2*topMatWidthPx + 2*middleMatWidthPx + 2*bottomMatWidthPx + 2*frameSideWidthPx + /*2*filletWidthPx*/ + 2*linerWidthPx)));
    k2 = new Number((canvasH-marginH)/(Number(imageH + 2*topMatWidthPx + 2*middleMatWidthPx + 2*bottomMatWidthPx + 2*frameSideWidthPx + /*2*filletWidthPx*/ + 2*linerWidthPx)));
  }
  k1 = Math.min(k1, k2);

  //crop
  var realdx = /*filletWidthPx +*/ bottomMatWidthPx + middleMatWidthPx + grooveDeltaX;
  var allx = /*filletWidthPx +*/ bottomMatWidthPx + middleMatWidthPx + topMatWidthPx + frameSideWidthPx + linerWidthPx;
  if(realdx > allx)
  {
    grooveDeltaX = allx - middleMatWidthPx /*- filletWidthPx*/ - bottomMatWidthPx;
    grooveDeltaY = allx - middleMatWidthPx /*- filletWidthPx*/ - bottomMatWidthPx;
  }
  var surl = "image.html?image=" + image + "&imageW=" + imageW * k1 + "&H=" + image.imageSizeY + "&W=" + image.imageSizeX + "&frameW=" + frame.frameWidth + "&frameH=" + frame.frameHeight +
  "&imageH=" + imageH * k1 + "&backcolor=" + backcolor + "&frameID="+frame.id + "&frameTexture=" + frame.src +
  "&topMatColor=" + topMat.color + "&TmatID=" + topMat.id + "&midleMatColor=" + middleMat.color + "&MmatID="+middleMat.id+ "&bottomMatColor=" + bottomMat.color +
  "&tmatW=" + topMatWidth + "&mmatW=" + middleMatWidth + "&bmatW=" + bottomMatWidth +
  "&BmatID="+bottomMat.id + "&filletTexture=" + fillet.src +"&linerTexture=" + liner.src +
  "&frameSideWidthPx=" + frameSideWidthPx * k1 + "&topMatWidth=" + topMatWidthPx * k1 + "&middleMatWidth=" + middleMatWidthPx * k1 +
  "&bottomMatWidth=" + bottomMatWidthPx * k1 + "&filletID="+fillet.id + "&filletWidthPx=" + filletWidthPx * k1 + "&linerID="+liner.id + "&linerWidthPx=" + linerWidthPx * k1 +
  "&groove=" + groove * k1 + "&grooveDeltaX=" + grooveDeltaX * k1 +  "&grooveDeltaY=" + grooveDeltaY * k1 +
  "&grooveW=" + grooveDeltaX/8 +  "&grooveH=" + grooveDeltaY/8 + "&canvasWindowW=" + canvasW + "&canvasWindowH=" + canvasH;
  if( isCFramePresent() )
  {
    surl += "&frameWidthPx=" + frameWidthPx * k1 +
            "&frameHeightPx=" + frameHeightPx * k1;
    surl += arrayToParams(frame.frameParts, "frameParts", "&");
  }
  //if(needTurnImage==1)
    //surl += "&cropPos1=" + cropPos2*8 * k1 + "&cropPos2=" + cropPos3*8 * k1 + "&cropPos3=" + cropPos4*8 * k1 + "&cropPos4=" + cropPos1*8 * k1;
  //else
  surl += "&cropPos1=" + cropPos1*8 * k1 + "&cropPos2=" + cropPos2*8 * k1 + "&cropPos3=" + cropPos3*8 * k1 + "&cropPos4=" + cropPos4*8 * k1 + "&cropU=" + cropPos1 + "&cropR=" + cropPos2 + "&cropD=" + cropPos3 + "&cropL=" + cropPos4;
  surl += "&orderUrl="+URLEncode(createAddToCartUrl());
  surl += "&bground="+URLEncode(curbg);
  return surl;
}

//zooms the framed window
var zoom_counter = 0;
function Zoom() {
  domTT_activate('zoomWnd' + zoom_counter, null, 'caption', 'Zoom', 'content',
  '<div id="zoomWindow' + zoom_counter + '" style="width:' + (document.body.clientWidth - 200) + 'px;height:' + (document.body.clientHeight - 80) + 'px;background:transparent url(../resources/images/framer/texture.png) repeat scroll 0% 50%;"></div>'
  , 'styleClass', 'domTTWin', 'x', 100, 'y', 3 + getBodyScrollTop(), 'width', document.body.clientWidth - 200, 'height', document.body.clientHeight - 7, 'delay', 0, 'type', 'sticky', 'draggable', true, 'closeLink', '<img class="ico_close" src="../resources/images/framer/close.gif" />');
  var zoomed = new artProject('zoomWindow' + zoom_counter, {canvasW: document.body.clientWidth - 220, canvasH: document.body.clientHeight - 70, z_index: 100});
  zoomed.wallcolor.style.backgroundColor = art_project.wallcolor.style.backgroundColor;
  //zoomed.no_offsets = true;
  zoomed.drawProject();
  zoom_counter++;
}
function getBodyScrollTop() {
  return self.pageYOffset || (document.documentElement && document.documentElement.scrollTop) || (document.body && document.body.scrollTop);
}

function getBodyScrollLeft() {
  return self.pageXOffset || (document.documentElement && document.documentElement.scrollLeft) || (document.body && document.body.scrollLeft);
}
function getZoomUrl() {
  return generateUrlEx(800, 570, 50, 60)+"&fullscreen=1&title=Zoom";
}


//save framed image
function Save(img_w, img_h) {
  window.location = generateUrlForSave(img_w, img_h);
}

function generateUrlForSave(img_w, img_h) {
  var TMatStr = "&TmatW="+topMatWidth+"&TmatID="+topMat.id;
  var MMatStr = "&MmatW="+middleMatWidth+"&MmatID="+middleMat.id;
  var BMatStr = "&BmatW="+bottomMatWidth+"&BmatID="+bottomMat.id;
  surl = "generate_framed_art.php?";
  if(needTurnImage==1) {
    surl += "&artW="+image.imageSizeY+"&artH="+image.imageSizeX;
    surl += "&frameWidth="+frame.frameHeight+"&frameHeight="+frame.frameWidth;
  } else {
    surl += "&artW="+image.imageSizeX+"&artH="+image.imageSizeY;
    surl += "&frameWidth="+frame.frameWidth+"&frameHeight="+frame.frameHeight;
  }
  surl += "&artSrc="+image.src+
      "&filletID="+fillet.id+
        TMatStr+MMatStr+BMatStr+
        "&linerID="+liner.id+
        "&frameID="+frame.id+
        "&vgrooveW="+(groove>0?grooveDeltaX/8:0)+"&vgrooveH="+(groove>0?grooveDeltaY/8:0)+
        "&imgW="+img_w+"&imgH="+img_h+"&attach=1";
    surl += "&cropL="+cropPos4+"&cropT="+cropPos1+"&cropR="+cropPos2+"&cropB="+cropPos3;
  return surl;
}

//print framed image
function Print(img_w, img_h)
{ window.open("for_print.php?close=1",'','status=no,width=800,height=570,top=0,left=0');
}

function ZoomImage(img_w, img_h)
{
 var TMatStr = "AMP;TmatW="+topMatWidth+"AMP;TmatID="+topMat.id;
 var MMatStr = "AMP;MmatW="+middleMatWidth+"AMP;MmatID="+middleMat.id;
 var BMatStr = "AMP;BmatW="+bottomMatWidth+"AMP;BmatID="+bottomMat.id;
 surl = "for_print.php?zoom=yes&param=";
 if(needTurnImage==1) {
    surl += "AMP;artW="+image.imageSizeY+"AMP;artH="+image.imageSizeX;
    surl += "AMP;frameWidth="+frame.frameHeight+"AMP;frameHeight="+frame.frameWidth;
 } else {
    surl += "AMP;artW="+image.imageSizeX+"AMP;artH="+image.imageSizeY;
    surl += "AMP;frameWidth="+frame.frameWidth+"AMP;frameHeight="+frame.frameHeight;
 }
 surl += "AMP;artSrc="+image.src+
             "AMP;filletID="+fillet.id+
              TMatStr+MMatStr+BMatStr+
             "AMP;linerID="+liner.id+
             "AMP;frameID="+frame.id+
             "AMP;vgrooveW="+(groove>0?grooveDeltaX/8:0)+"AMP;vgrooveH="+(groove>0?grooveDeltaY/8:0)+
             "AMP;imgW="+img_w+"AMP;imgH="+img_h;
 //if(needTurnImage==1)
    //surl += "AMP;cropL="+cropPos1+"AMP;cropT="+cropPos2+"AMP;cropR="+cropPos3+"AMP;cropB="+cropPos4;
 //else
    surl += "AMP;cropL="+cropPos4+"AMP;cropT="+cropPos1+"AMP;cropR="+cropPos2+"AMP;cropB="+cropPos3;
	//alert(surl);
 window.open(surl+"&close=1",'','status=no,width=800,height=570,top=0,left=0');
}

var ctwidth=0;
var cbwidth=0;
var sframing=0;
function SFraming()
{
    sframing=1;
    tmpFrame = frame;
    frame = sFrame;
    tmpTMat = topMat;
    topMat = stopMat;
    if(topMatWidth == 0)
    {
    topMatWidth = stopMat.id>0 ? tmatWArr[mats_num-1] : 0;
    ctwidth=tmatWArr[mats_num-1];
    tmpwidth = 0;
    }
    else
    {
      tmpwidth = 1;
    ctwidth=topMatWidth;
    topMatWidth = stopMat.id>0 ? topMatWidth : 0;
    }
    tmpBMat = bottomMat;
    bottomMat = sbottomMat;
    if(bottomMatWidth == 0)
    {
    bottomMatWidth = sbottomMat.id>0 ? bmatWArr[mats_num-1] : 0;
    cbwidth = bmatWArr[mats_num-1];
    tmpwidth1 = 0;
    }
    else
    {
      tmpwidth1 = 1;
    cbwidth = bottomMatWidth;
    bottomMatWidth = sbottomMat.id>0 ? bottomMatWidth : 0;
    }
    tmpf=fillet;
    fillet=new Frame();
    tmpl=liner;
    liner=new Frame();
    tmpmMat=middleMat;
    tmwidth=middleMatWidth;
    middleMat=new Mat();
    middleMatWidth=0;
  windowManager.showWindow( generateUrl() );//+"&zoomUrl="+URLEncode(getZoomUrl()) );

    fillet=tmpf;
    liner=tmpl;
    middleMat=tmpmMat;
    middleMatWidth=tmwidth;
      frame = tmpFrame;
      topMat = tmpTMat;
      if(tmpwidth == 0)topMatWidth = 0;
      bottomMat = tmpBMat;
      if(tmpwidth1 == 0)bottomMatWidth = 0;
}
//compares the framed window
  var ctmp;
  var ctmp_name;
  var ctmpwidth;
  var wndCounter = 0;
function Compare(name, value) {
  ctmp_name=name;
  ctmp=value;
  var csl = frame.cFrameSpaceL;
  var cst = frame.cFrameSpaceT;
  var csr = frame.cFrameSpaceR;
  var csb = frame.cFrameSpaceB;

  //groups of mats and mouldings
  switch(name) {
    case "frame":
      if(value.type=='cframe') {
        if(!validateCompoundFrame(value)) {
          alert("The selected size is not compatible with the image. \nPlease select another size of frame.");
          return;
        }
      }
      tmp = frame;
      frame = value;
      break;
    case "fillet":
      if(isCFramePresent() && minCFrameSpace()<value.width) {
        alert('You cannot add this fillet. It width too wide.');
        return;
      }
      tmp = fillet;
      fillet = value;
      break;
    case "liner":
      if(isCFramePresent() && minCFrameSpace()<value.width) {
        alert('You cannot add this liner. It width too wide.');
        return;
      }
      tmp = liner;
      liner = value;
      break;
    case "tmat":
      if(isCFramePresent()) {
        if(topMat.id==0 && minCFrameSpace()<0.5) {
          alert('You cannot add this mat.');
          return;
        }
        tmp = topMat;
        topMat = value;
        if(topMatWidth == 0) {
          topMatWidth = minCFrameSpace();
          ctmpwidth=topMatWidth;
          tmpwidth = 0;
        } else {
          tmpwidth = 1;
        }
      } else {
        tmp = topMat;
        topMat = value;
        if(topMatWidth == 0) {
          topMatWidth = tmatWArr[mats_num-1];
          ctmpwidth=tmatWArr[mats_num-1];
          tmpwidth = 0;
        } else {
          tmpwidth = 1;
        }
    }
      break;
    case "mmat":
      if(isCFramePresent()) {
        if(middleMat.id==0 && minCFrameSpace()<0.5) {
          alert('You cannot add this mat.');
          return;
        }
        tmp = middleMat;
        middleMat = value;
        if(middleMatWidth == 0) {
          middleMatWidth = minCFrameSpace();
          ctmpwidth=middleMatWidth;
          tmpwidth = 0;
        } else {
          tmpwidth = 1;
        }
      } else {
        tmp = middleMat;
        middleMat = value;
        if(middleMatWidth == 0) {
          middleMatWidth = mmatWArr[mats_num-1];
          ctmpwidth=mmatWArr[mats_num-1];
          tmpwidth = 0;
        } else {
          tmpwidth = 1;
        }
      }
      break;
    case "bmat":
      if(isCFramePresent()) {
        if(bottomMat.id==0 && minCFrameSpace()<0.5) {
          alert('You cannot add this mat.');
          return;
        }
        tmp = bottomMat;
        bottomMat = value;
        if(bottomMatWidth == 0) {
          bottomMatWidth = minCFrameSpace();
          ctmpwidth=bottomMatWidth;
          tmpwidth = 0;
        } else {
          tmpwidth = 1;
        }
      } else {
        tmp = bottomMat;
        bottomMat = value;
        if(bottomMatWidth == 0) {
          bottomMatWidth = bmatWArr[mats_num-1];
          ctmpwidth = bmatWArr[mats_num-1];
          tmpwidth = 0;
        } else {
          tmpwidth = 1;
        }
      }
      break;
  }
  var posns = windowManager.calculatePositions();
  SaveFraming(wndCounter);
  domTT_activate('cmp'+ wndCounter, null, 'caption', 'Compare', 'content',
  '<div id="compareWindow' + wndCounter + '" style="width:450px;height:350px;background:transparent url(../resources/images/framer/texture.png) repeat scroll 0% 50%;"></div>' +
  '<div style="text-align:center;padding:10px;"><img class="button" src="../resources/images/framer/select.gif" onclick="LoadFraming(' + wndCounter + ');domTT_close(this);" /></div>'
  , 'styleClass', 'domTTWin', 'x', posns[0], 'y', posns[1], 'width', 450, 'height', 300, 'delay', 0, 'type', 'sticky', 'draggable', true, 'closeLink', '<img class="ico_close" src="../resources/images/framer/close.gif" />');
  var compareWindow = new artProject('compareWindow' + wndCounter, {canvasW: 450, canvasH: 350, z_index: 100});
  compareWindow.wallcolor.style.backgroundColor = art_project.wallcolor.style.backgroundColor;
  wndCounter++;
  compareWindow.drawProject();
//  windowManager.showWindow( generateUrl() );//+"&zoomUrl="+URLEncode(getZoomUrl()) );

  switch(name)
  {
    case "frame":
      frame = tmp;
      break;
    case "fillet":
      fillet = tmp;
      break;
    case "liner":
      liner = tmp;
      break;
    case "tmat":
      topMat = tmp;
      if(tmpwidth == 0)topMatWidth = 0;
      break;
    case "mmat":
      middleMat = tmp;
      if(tmpwidth == 0)middleMatWidth = 0;
      break;
    case "bmat":
      bottomMat = tmp;
      if(tmpwidth == 0)bottomMatWidth = 0;
      break;
  }
  frame.cFrameSpaceL = csl;
  frame.cFrameSpaceT = cst;
  frame.cFrameSpaceR = csr;
  frame.cFrameSpaceB = csb;
}
//return true if cframe added
function isCFramePresent()
{
  if(frame.id!=0 && frame.type=="cframe" && frame.width!=0 && frame.sizes.length)
    return true;
  return false;
}

//return true if cframe added
function minCFrameSpace()
{
    return Math.min(frame.cFrameSpaceT, frame.cFrameSpaceR, frame.cFrameSpaceB, frame.cFrameSpaceL);
}

//sets the background color
function setBackgroundColor(color)
{
  backcolor = color;
  frames["artimg"].document.bgColor = color;
}
function setBackground(path)
{
  window.frames["artimg"].document.body.background = path;
}
//changes the mat color
function changeMat(mat) {
  //V-Groove color
  if((mat.color == "fffaf0") || (mat.color == "f5f5f5") ||
     (mat.color == "f0fff0") || (mat.color == "fffff0") ||
     (mat.color == "f5fffa") || (mat.color == "fff8dc") ||
     (mat.color == "fff5ee") || (mat.color == "eee8cd") ||
     (mat.color == "fffafa") || (mat.color == "ffffe0") ||
     (mat.color == "f8f8ff") || (mat.color == "fafad2") ||
     (mat.color == "ffffff") || (mat.color == "fffacd"))
    vgcolor = "#cccccc";
  else
    vgcolor = "#fffaf0";
  if(groove > 0) {
    Element.setStyle(art_project.vgHolder, {
      border: "1px solid " + vgcolor
    });
  }
  if(mat.color) {
    $(eval("art_project." + theMessage + "Holder")).setStyle({backgroundColor: "#" + mat.color});
    $(eval("art_project." + theMessage + "Holder")).setStyle({backgroundImage: ""});
  } else {
    $(eval("art_project." + theMessage + "Holder")).setStyle({backgroundImage: "url(../resources/" + mat.texture_path + ")"});
    $(eval("art_project." + theMessage + "Holder")).setStyle({backgroundColor: ""});
  }
  if( $(eval("art_project." + theMessage + "Holder")).style.border )
    Element.setStyle($(eval("art_project." + theMessage + "Holder")), {
      border: "1px solid " + vgcolor
    });
  updateInfo();
}
//Select the mats color
function SelectMat(mat) {
  if(isCFramePresent()) {
    SelMatForCFrame(mat);
    return;
  }
  Object.extend(eval(matType), mat);
  if(eval(matType + "Width") == 0) {
    eval(matType + "Width = " + theMessage + "WArr[" + (mats_num-1) + "]");
    update();
  } else {
    changeMat(mat);
  }
}

//Select mat for compound frame
function SelMatForCFrame(mat)
{
  var flag = 0;
  if(theMessage == 'TMat') {
    if( topMat.id==0 && minCFrameSpace()<0.5) {
      alert('You cannot add this mat.');
      return;
    }
    topMat = mat;
    if(topMatWidth == 0) {
      flag=1;
      topMatWidth = minCFrameSpace();
    }
    if(flag == 1)
      update();
    else
      changeMat(mat.color);
  }
  else if(theMessage == 'MMat') {
    if( middleMat.id==0 && minCFrameSpace()<0.25) {
      if(topMat.id!=0 && topMatWidth>=1) {
        topMatWidth -= 1;
      } else {
        alert('You cannot add this mat.');
        return;
      }
    }
    middleMat = mat;
    if(middleMatWidth == 0) {
      flag=1;
      middleMatWidth = 1;
    }
    if(flag == 1)
      update();
    else
      changeMat(mat.color);
  }
  else if(theMessage == 'BMat') {
    if( bottomMat.id==0 && minCFrameSpace()<0.125) {
      if(topMat.id!=0 && topMatWidth>=0.25) {
        topMatWidth -= 0.25;
      } else {
        alert('You cannot add this mat.');
        return;
      }
    }
    bottomMat = mat;
    if(bottomMatWidth == 0) {
      flag=1;
      bottomMatWidth = 0.25;
    }
    if(flag == 1)
      update();
    else
      changeMat(mat.color);
  }
}

// Validate for cframe can be added
function validateCompoundFrame(cframe)
{
  var sizex = Number(Number(image.imageSizeX) + 2*Number(topMatWidth) +
    2*Number(middleMatWidth) + 2*Number(bottomMatWidth) +
  /*2*Number(fillet.width) +*/ 2*Number(liner.width))
    - cropPos2 - cropPos4;
  var sizey = Number(Number(image.imageSizeY) + 2*Number(topMatWidth) +
    2*Number(middleMatWidth) + 2*Number(bottomMatWidth) +
  /*2*Number(fillet.width) +*/ 2*Number(liner.width)) -
    cropPos1 - cropPos3;
  if(cframe.frameWidth<sizex || cframe.frameHeight<sizey)
    return false;
  return true;
}

// Calculate compound frame empty spaces
function calculateCFrameEmptySpaces()
{
  frame.cFrameSpaceT = (frame.frameHeight - image.imageSizeY - 2*topMatWidth - 2*middleMatWidth - 2*bottomMatWidth - 2*liner.width)/2 + cropPos1;
  frame.cFrameSpaceR = (frame.frameWidth - image.imageSizeX - 2*topMatWidth - 2*middleMatWidth - 2*bottomMatWidth - 2*liner.width)/2 + cropPos2;
  frame.cFrameSpaceB = (frame.frameHeight - image.imageSizeY - 2*topMatWidth - 2*middleMatWidth - 2*bottomMatWidth - 2*liner.width)/2 + cropPos3;
  frame.cFrameSpaceL = (frame.frameWidth - image.imageSizeX - 2*topMatWidth - 2*middleMatWidth - 2*bottomMatWidth - 2*liner.width)/2 + cropPos4;
}

function createAddToCartUrl()
{
  var basketUrl = orderUrl+"&art[src]="+image;
  if( frame.id!=null && frame.id > 0 ){
    basketUrl = basketUrl + "&frame_id="+frame.id;
    if( frame.type == "cframe" ){
        basketUrl += "&cframe[price]="+frame.price;
        basketUrl += "&cframe[width]="+frame.frameWidth;
        basketUrl += "&cframe[height]="+frame.frameHeight;
    }
  }
  if( liner.id!=null && liner.id > 0 )
    basketUrl = basketUrl + "&liner_id="+liner.id;
  if( fillet.id!=null && fillet.id > 0 )
    basketUrl = basketUrl + "&fillet_id="+fillet.id;
  if( glass !=null )
    basketUrl = basketUrl + "&glass_id="+glass.id;
  if( topMat.id!=null && topMat.id > 0 )
  {
    basketUrl = basketUrl + "&topMat[id]="+topMat.id;
    basketUrl = basketUrl + "&topMat[width]="+topMatWidth;
  }
  if( middleMat.id!=null && middleMat.id > 0 )
  {
    basketUrl = basketUrl + "&middleMat[id]="+middleMat.id;
    basketUrl = basketUrl + "&middleMat[width]="+middleMatWidth;
  }
  if( bottomMat.id!=null && bottomMat.id > 0 )
  {
    basketUrl = basketUrl + "&bottomMat[id]="+bottomMat.id;
    basketUrl = basketUrl + "&bottomMat[width]="+bottomMatWidth;
  }
  if( brushstrokes!=0)
  {
    basketUrl = basketUrl + "&brushstrokes="+brushstrokes;
  }
  if( museum_wrap!=0)
  {
    basketUrl = basketUrl + "&museum_wrap="+museum_wrap;
  }
  if( gal_wrap!=0)
  {
    basketUrl = basketUrl + "&gal_wrap="+gal_wrap;
  }
  if( c_transfer!=0 )
  {
    basketUrl = basketUrl + "&c_transfer="+c_transfer;
  }
  if( cropPos1 > 0 || cropPos2 > 0 || cropPos3 > 0 || cropPos4 > 0 )
  {
    basketUrl = basketUrl + "&crop[top]="+cropPos1+"&crop[right]="+cropPos2+"&crop[bottom]="
                        +cropPos3+"&crop[left]="+cropPos4;
  }
  if( groove > 0)
  {
    basketUrl = basketUrl + "&groove[deltaX]="+(groove>0?grooveDeltaX/8:0)+"&groove[deltaY]="+(groove>0?grooveDeltaY/8:0);
  }
  return basketUrl;
}

function createAddToGalUrl(galUrl) {
  var basketUrl;
  if(galUrl!="") {
    basketUrl = galUrl;
  } else {
    basketUrl = "&art[src]="+image.src + "&art[price]=" + image.price + "&art[title]=" + image.title + "&needTurnImage=" + needTurnImage;
    basketUrl += "&art[width]=" + image.imageSizeX + "&art[height]=" + image.imageSizeY;
    if( frame.id!=null && frame.id > 0 ) {
      basketUrl = basketUrl + "&frame_id="+frame.id;
      if( frame.type == "cframe" ) {
        basketUrl += "&cframe[price]="+frame.price;
        basketUrl += "&cframe[width]="+frame.frameWidth;
        basketUrl += "&cframe[height]="+frame.frameHeight;
      }
    }

    if( liner.id!=null && liner.id > 0 )
      basketUrl = basketUrl + "&liner_id="+liner.id;
    if( fillet.id!=null && fillet.id > 0 )
      basketUrl = basketUrl + "&fillet_id="+fillet.id;
    if( glass !=null )
      basketUrl = basketUrl + "&glass_id="+glass.id;
    if( topMat.id!=null && topMat.id > 0 ) {
      basketUrl = basketUrl + "&topMat[id]="+topMat.id;
      basketUrl = basketUrl + "&topMat[width]="+topMatWidth;
    }
    if( middleMat.id!=null && middleMat.id > 0 ) {
      basketUrl = basketUrl + "&middleMat[id]="+middleMat.id;
      basketUrl = basketUrl + "&middleMat[width]="+middleMatWidth;
    }
    if( bottomMat.id!=null && bottomMat.id > 0 ) {
      basketUrl = basketUrl + "&bottomMat[id]="+bottomMat.id;
      basketUrl = basketUrl + "&bottomMat[width]="+bottomMatWidth;
    }
    if( cropPos1 > 0 || cropPos2 > 0 || cropPos3 > 0 || cropPos4 > 0 ) {
      alert("&crop[top]="+cropPos1+"&crop[right]="+cropPos2+"&crop[bottom]="
                  +cropPos3+"&crop[left]="+cropPos4);
      basketUrl = basketUrl + "&crop[top]="+cropPos1+"&crop[right]="+cropPos2+"&crop[bottom]="
                  +cropPos3+"&crop[left]="+cropPos4;
    }
    if( groove > 0) {
      basketUrl = basketUrl + "&groove[deltaX]="+(groove>0?grooveDeltaX/8:0)+"&groove[deltaY]="+(groove>0?grooveDeltaY/8:0);
    }
  }
  return basketUrl;
}

