
function isEmailValid(strEmail)
{
  var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i
  return filter.test(strEmail);
}
//CWD--------------------------------------------

function isFieldEmpty(strName)
{
  var o=$(strName);

  if(o)
  {
    if(o.value.strip()=="")
      return true;
    else
      return false;
  }
  else
    return true;
}
//CWD--------------------------------------------

function checkFields(aFields)
{
  for(var i=0;i<aFields.length;++i)
  {
    if(isFieldEmpty(aFields[i].field))
    {
      alert(aFields[i].name+" cannot be left blank");
      $(aFields[i].field).focus();
      return false;
    }
  }

  return true;
}
//CWD--------------------------------------------

function formatCurrency(num)
{
  num = num.toString().replace(/\$|\,/g,'');

  if(isNaN(num))
    num = "0";

  sign = (num == (num = Math.abs(num)));
  num = Math.floor(num*100+0.50000000001);
  cents = num%100;
  num = Math.floor(num/100).toString();

  if(cents<10)
    cents = "0" + cents;

  for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
    num = num.substring(0,num.length-(4*i+3))+','+

  num.substring(num.length-(4*i+3));
  return (((sign)?'':'-') + '$' + num + '.' + cents);
}
//CWD--------------------------------------------

function fetchData(strURL,strParams,fCallback,strHeader,strPreLoad)
{
  if(strHeader)
    setHeader(strHeader);

  if(strPreLoad)
  {
    $("contentDiv").innerHTML=strPreLoad;
  }

  var myAjax=new Ajax.Request(
    strURL, 
    {
        method: 'get', 
        parameters: strParams+"&rnd="+Math.random(),
        onComplete: fCallback
    });

  if(pageTracker)
    pageTracker._trackPageview(strURL+"?"+strParams); //CWD--google page tracking
}
//CWD--------------------------------------------


function fetchBirthstoneData(iID)
{
  var fCallback=function(ret)
  {
    var oResults=eval(ret.responseText);
    
    var oDiv=$("detailDiv");
      var str="<div><label for=\"size\">Size:</label></div><div><select id=\"size\" size=\"4\">";

      for(var i=0;i<oResults[0].sizes.length;++i)
      {
        str=str+"<option value=\""+oResults[0].sizes[i].sizeID+"\"";
        
        if(i==0)
          str=str+" selected ";

        str=str+">"+oResults[0].sizes[i].size+": $"+oResults[0].sizes[i].price+"</option>";
      }

      str=str+"</select></div>";

    oDiv.innerHTML=str;
    myLightbox.updateImageList();
  }
  
  var myAjax=new Ajax.Request(
    "fetchProducts.php", 
    {
        method: 'get', 
        parameters: "ID="+iID+"&rnd="+Math.random(),
        onComplete: fCallback
    });
}
//CWD--------------------------------------------

function getBirthStoneNotes()
{
  var a=$F("stones");
  var str="stones: ";
  
  for(var i=0;i<a.length;++i)
    str+=a[i]+","

  str+="\ninitials: "+$F("initials")+"\n";
  str+="notes: "+$F("notes")+"\n";
  
  return str;
}

//CWD--------------------------------------------


function setHeader(str)
{
  $("headerDiv").innerHTML=str;
}

function fetchProducts(iCatID)
{
  var strHTML="";
  var fComplete=function(ret)
    {
      var oDiv=$("listingDiv");
      oDiv.innerHTML="";
      var oResults=eval(ret.responseText);
      var strTemplate="<div onClick=\"showProduct(#{ID})\"><table><tr><td rowspan=\"2\" colspan=\"\"><img width=\"100\" src=\"images/products/thumb/#{ID}.jpg\"/></td>";
      strTemplate=strTemplate+ "<td valign=\"top\" height=\"20\"><span class=\"bodyCopyClass\"><b>#{productName}</b></span></td></tr>";
      strTemplate=strTemplate+"<tr><td valign=\"top\"><span class=\"bodyCopyClass\">#{description}</span></td></tr></table></div>";
      var oTemp=new Template(strTemplate);

      for(var i=0;i<oResults.length;++i)
      {
        new Insertion.Bottom(oDiv,oTemp.evaluate(oResults[i]));
//console.log(oTemp.evaluate(oResults[i]));
      }

      showProduct(oResults[0].ID);
    };


  if(!$("leftContentDiv"))
  {
    strHTML="<div id=\"leftContentDiv\"><div id=\"listingDiv\"><span><img src=\"images/indicator_arrows.gif\"/></span></div></div>";
    strHTML=strHTML+"<div id=\"rightContentDiv\"><div id=\"detailDiv\" style=\"clear: both;\"><span><img src=\"images/indicator_arrows.gif\"/></span></div></div>";
//console.log(strHTML);
  }

  switch(iCatID)
  {
    case(1):
    {
      strImg="images/header_bracelets.gif";
      break;
    }
    case(2):
    {
      strImg="images/header_earrings.gif";
      break;
    }
    case(3):
    {
      strImg="images/header_necklaces.gif";
      break;
    }
    case(3):
    {
      strImg="images/header_birthstones.png";
      break;
    }
    default:
    {
      strImg="";
    }    
  }

  fetchData("fetchProducts.php","CATID="+iCatID,fComplete,"<img id=\"productsImg\" src=\""+strImg+"\"/>",strHTML);
}
//CWD--------------------------------------------

function showProduct(iID)
{
  var fComplete=function(ret)
    {
      var oResults=eval(ret.responseText);
      var oDiv=$("detailDiv");
      var str="<div><select id=\"size\" size=\"4\">";

      for(var i=0;i<oResults[0].sizes.length;++i)
      {
        str=str+"<option value=\""+oResults[0].sizes[i].sizeID+"\"";
        
        if(i==0)
          str=str+" selected ";

        str=str+">"+oResults[0].sizes[i].size+": $"+oResults[0].sizes[i].price+"</option>";
      }

      str=str+"</select></div>";

      var strTemplate="<div><table><tr>";
      strTemplate=strTemplate+"<td valign=\"top\"><div><a href=\"images/products/small/#{ID}.jpg\" rel=\"lightbox\" title=\"#{productName}\" target=\"prodWin\">";
      strTemplate=strTemplate+"<img width=\"300\" src=\"images/products/small/#{ID}.jpg\" border=\"0\"/><div>click to enlarge</div></a></div></td><td valign=\"top\">";
      strTemplate=strTemplate+"<table><tr><td valign=\"top\"><b>#{productName}</b></td></tr>";
      strTemplate=strTemplate+"<tr><td valign=\"top\">#{description}</td></tr><tr><td>"+str+"</td></tr>";
      strTemplate=strTemplate+"<tr><td valign=\"top\"><span style=\"cursor: pointer;\" onClick=\"addToCart($F('size'),1,\'#{productName}\')\">";
      strTemplate=strTemplate+"<img src=\"images/add_cart.gif\" title=\"click to add to cart\" onMouseOver=\"this.src='images/add_cart_over.gif'\" onMouseOut=\"this.src='images/add_cart.gif'\" />";
      strTemplate=strTemplate+"</span></td></tr></table>";
      strTemplate=strTemplate+"</td></tr></table></div>";

      var oTemp=new Template(strTemplate);
      oDiv.innerHTML=oTemp.evaluate(oResults[0]);
//console.log(oTemp.evaluate(oResults[0]));
      myLightbox.updateImageList();
    };

  fetchData("fetchProducts.php","ID="+iID,fComplete);
}
//CWD--------------------------------------------

function fetchHome()
{
  var fComplete=function(ret)
    {
      $("contentDiv").innerHTML=ret.responseText;
    };

  fetchData("home.php","",fComplete," ","<center> loading home ... <br/><img src=\"images/indicator_arrows.gif\"/><center>");
  //dhtmlHistory.add("home","fetchHome()");
}
//CWD--------------------------------------------

function fetchCart()
{
  var fComplete=function(ret)
    {
      $("contentDiv").innerHTML=ret.responseText;
    };

  fetchData("cart.php","",fComplete,"<img src=\"images/header_shoppingcart_new.jpg\"/>","<center> loading cart ... <br/><img src=\"images/indicator_arrows.gif\"/><center>");
  //dhtmlHistory.add("cart","fetchCart()");
}
//CWD--------------------------------------------

function fetchAbout()
{
  var fComplete=function(ret)
    {
      $("contentDiv").innerHTML=ret.responseText;
    };

  fetchData("about.php","",fComplete,"<img src=\"images/header_about_new.jpg\"/>","<center> loading about ... <br/><img src=\"images/indicator_arrows.gif\"/><center>");
  //dhtmlHistory.add("about","fetchAbout()");
}
//CWD--------------------------------------------

function fetchContact(blnSubmit)
{
  var strParams="";
  var fComplete=function(ret)
    {
      $("contentDiv").innerHTML=ret.responseText;
    };

  if(blnSubmit)
  {
    if(!isEmailValid($F("SENDEREMAIL")))
    {
      alert("Please enter a valid email address");
      $("SENDEREMAIL").focus();
      return;
    }

    strParams="MODE=1&SENDEREMAIL="+escape($F("SENDEREMAIL"));
    strParams=strParams+"&SENDER="+escape($F("SENDER"));
    strParams=strParams+"&MSG="+escape($F("MSG"));
    strParams=strParams+"&CANCONTACT="+($("CANCONTACT").checked?"1":"0");
  }

  fetchData("contact.php",strParams,fComplete,"<img src=\"images/header_contact_new.jpg\"/>","<center> loading contact form ... <br/><img src=\"images/indicator_arrows.gif\"/><center>");
  //dhtmlHistory.add("contact","fetchContact()");
}
//CWD--------------------------------------------

function fetchDisclaimer()
{
  var fComplete=function(ret)
    {
      $("contentDiv").innerHTML=ret.responseText;
    };

  fetchData("disclaimer.php","",fComplete,"<img src=\"images/header_disclaimer_new.jpg\"/>","<center> loading disclaimer ... <br/><img src=\"images/indicator_arrows.gif\"/><center>");
  //dhtmlHistory.add("disclaimer","fetchDisclaimer()");
}
//CWD--------------------------------------------

function fetchThanks()
{
  var fComplete=function(ret)
    {
      $("contentDiv").innerHTML=ret.responseText;
      setTimeout("document.location='/'",2000);
    };

  fetchData("thanks.php","",fComplete," ","<center> loading ... <br/><img src=\"images/indicator_arrows.gif\"/><center>");
  //dhtmlHistory.add("disclaimer","fetchDisclaimer()");
}
//CWD--------------------------------------------

function fetchPurchase()
{
  var fComplete=function(ret)
    {
      $("contentDiv").innerHTML=ret.responseText;
    };

  var a=document.getElementsByClassName("quantityBoxClass");

  if(a.length==0)
    alert("go get some sugar!");
  else
    fetchData("purchase.php","",fComplete,"<img src=\"images/header_shipping_new.jpg\"/>","<center> loading purchase details ... <br/><img src=\"images/indicator_arrows.gif\"/><center>");
  //dhtmlHistory.add("purchase","fetchPurchase()");
}
//CWD--------------------------------------------

function fetchBracelets()
{
  fetchProducts(1);
}
//CWD--------------------------------------------

function fetchEarrings()
{
  fetchProducts(2);
}
//CWD--------------------------------------------

function fetchNecklaces()
{
  fetchProducts(3);
}
//CWD--------------------------------------------

function fetchBirthstones()
{
  $("contentDiv").innerHTML="coming soon"; //fetchProducts(4);
//return;
  
  var fComplete=function(ret)
    {
      $("contentDiv").innerHTML=ret.responseText;
      var o=$("productID");
      //console.log(o.options[o.selectedIndex].value);
      fetchBirthstoneData(o.options[o.selectedIndex].value);
    };  
  fetchData("birthstones.php","",fComplete,"<img src=\"images/header_birthstones.png\"/>","<center> loading details ... <br/><img src=\"images/indicator_arrows.gif\"/><center>");
}
//CWD--------------------------------------------

function addToCart(iPSID,iQuantity,strName,strNotes)
{
  var fComplete=function(ret)
    {
      //$("contentDiv").innerHTML=ret.responseText;
    };

  var strHTML="<div align=\"center\">added<br/><b>"+strName+"</b><br/>to your sugar cart</div>"
  var oDiv=$("addedDiv");

  if(!oDiv)
  {
    oDiv=Builder.node("div", { id: "addedDiv", style: "border: 1px solid #000; background: #C2C1E9; color: #fff; position: absolute; top: 306px; left: 40%; height: 50px; width: 200px; padding: 15px;"});
    document.body.appendChild(oDiv);
  }

  Element.show(oDiv);
  oDiv.innerHTML=strHTML;
  setTimeout("new Effect.Fade('addedDiv')",1000)

  fetchData("cart.php","MODE=add&QUANTITY="+iQuantity+"&PRODUCTSIZEID="+iPSID+"&NOTES="+encodeURI(strNotes),fComplete);
}
//CWD--------------------------------------------

function updateCart()
{
  var fComplete=function(ret)
    {
      //$("contentDiv").innerHTML=ret.responseText;
    };

  var a=document.getElementsByClassName("quantityBoxClass");

  for(var i=0;i<a.length;++i)
  {
    var iPSID=a[i].id+"";
    iPSID=iPSID.replace("quantity_","");
//console.log(a[i]);
    if(i!=(a.length-1))
      fetchData("cart.php","MODE=set&QUANTITY="+a[i].value+"&PRODUCTSIZEID="+iPSID,fComplete);
    else
      fetchData("cart.php","MODE=set&QUANTITY="+a[i].value+"&PRODUCTSIZEID="+iPSID, fetchCart );
  }
}
//CWD--------------------------------------------

function submitOrder()
{
  var fComplete=function(ret)
    {
      Element.hide($("orderDiv"));
      new Effect.Appear($("processingDiv"));
      $("invoice").value=ret.responseText;
//alert($("PAYPALFORM").serialize());
      $("PAYPALFORM").submit();
    };

  var myAjax=new Ajax.Request(
    "processOrder.php", 
    {
        method: 'get', 
        parameters: $("PAYPALFORM").serialize(),
        onComplete: fComplete
    });

  if(pageTracker)
    pageTracker._trackPageview("/processOrder.php?"+$("PAYPALFORM").serialize()); //CWD--google page tracking

}
//CWD--------------------------------------------

function showShipping()
{
  Element.hide($("orderDiv"));
  new Effect.Appear($("shippingDiv"));
  setHeader("<img src=\"images/header_shipping_new.jpg\"/>");

  if(pageTracker)
    pageTracker._trackPageview("/shipping"); //CWD--google page tracking
}
//CWD--------------------------------------------

function showOrder()
{

  if(!isEmailValid($F("email")))
  {
    alert("Please enter a valid email address");
    $("email").focus();
    return;
  }

  var aFields=new Array();
  aFields[aFields.length]={ name: "first name", field: "first_name"};
  aFields[aFields.length]={ name: "last name", field: "last_name"};
  aFields[aFields.length]={ name: "email", field: "email"};
  aFields[aFields.length]={ name: "address line 1", field: "address1"};
  aFields[aFields.length]={ name: "city", field: "city"};
  aFields[aFields.length]={ name: "zip", field: "zip"};

  if(!checkFields(aFields))
  {
    return;
  }

  var fTax=0;
  var str=$("subTotalDiv").innerHTML;
  var fSubTotal=parseFloat(str.replace("$",""));
  str=$("shippingCostDiv").innerHTML;
  var fShipping=parseFloat(str.replace("$",""));

/*
  if($F("state")=="NY")
  {
    fTax=fSubTotal*0.08375;
    $("tax_cart").value=fTax;
  }
*/

  if($F("state")=="CA")
  {
    fTax=fSubTotal*0.0875;
    $("tax_cart").value=fTax;
  }

  $("subTotalDiv").innerHTML=formatCurrency(fSubTotal);
  $("taxDiv").innerHTML=formatCurrency(fTax);
  $("shippingCostDiv").innerHTML=formatCurrency(fShipping);
  $("totalDiv").innerHTML=formatCurrency(fTax+fSubTotal+fShipping);
  
  Element.hide($("shippingDiv"));
  new Effect.Appear($("orderDiv"));
  setHeader("<img src=\"images/header_summary_new.jpg\"/>");

  if(pageTracker)
    pageTracker._trackPageview("/shipping"); //CWD--google page tracking
}
//CWD--------------------------------------------


