var sPath = window.location.pathname;
var re_product = new RegExp('/travertine-tiles/[A-Z,a-z,0-9,\-]+.html');
var re_shoppingcartzi = new RegExp('basket.zi');
var re_state = new RegExp('State');
var re_comments = new RegExp('Comment');
var VATRate = 0.20;

window.onload=initAll;

function initAll(){
  if (sPath.match(re_product)) {
    // if this is a product page
    var aryClassElements = getElementsByClassName('prodtable', document.body);    
    if (aryClassElements.length >0) {
      //this is the products table
      addInVATColumn();
    }
    var pricelabel= getElementsByClassName("pricelabel", document.body);
    if (pricelabel.length >0) {
      //this is the product page
          addInTheVAT();
          setTheProductPageWidth();
    }
  }
  if (sPath.match(re_shoppingcartzi)) {
    var thisTitle = document.title;
    switch (thisTitle)
      {
        case "Order Checkout: Payment":
          //payment page
          addOptionsToCommentsBox();
          break;
        case "Order Checkout: Customer Info":
          hideUnwantedLabels();
          hideCountry();
          hideState();
          break;
      }
  }
}

function hideCountry() {
  var formelement = document.getElementsByTagName('FORM')[0];
  formelement.ch_country.options[2].selected = true;
  formelement.ch_country.style.display = "none";
  formelement.ch_country.style.visibility = "hidden";

  formelement.ch_shCountry.options[2].selected = true;
  formelement.ch_shCountry.style.display = "none";
  formelement.ch_shCountry.style.visibility = "hidden";
}

function hideState() {
  var formelement = document.getElementsByTagName('FORM')[0];
  formelement.ch_ostate.value = ".";
  formelement.ch_ostate.style.display = "none";
  formelement.ch_ostate.style.visibility = "hidden";

  formelement.ch_state.options[0].selected = true;
  formelement.ch_state.style.display = "none";
  formelement.ch_state.style.visibility = "hidden";

  formelement.ch_shOstate.value = ".";
  formelement.ch_shOstate.style.display = "none";
  formelement.ch_shOstate.style.visibility = "hidden";

  formelement.ch_shState.options[0].selected = true;
  formelement.ch_shState.style.display = "none";
  formelement.ch_shState.style.visibility = "hidden";

}


function hideUnwantedLabels() {
  var aryClassTextElements = getElementsByClassName('stdfldlabel', document.body);    
  var hasInnerText = (document.getElementsByTagName("body")[0].innerText != undefined) ? true : false;
  if(!hasInnerText) {
    for ( var i = 0; i < aryClassTextElements.length; i++ ) {
      if ((aryClassTextElements[i].textContent.match(re_state))||(aryClassTextElements[i].textContent=="Ship Country:")||(aryClassTextElements[i].textContent=="Country:")) {
        aryClassTextElements[i].style.display = "none";
        aryClassTextElements[i].style.visibility = "hidden";
      }
    }
  } else {
    for ( var i = 0; i < aryClassTextElements.length; i++ ) {
      if ((aryClassTextElements[i].innerText.match(re_state))||(aryClassTextElements[i].innerText=="Ship Country:")||(aryClassTextElements[i].innerText=="Country:")) {
        aryClassTextElements[i].style.display = "none";
        aryClassTextElements[i].style.visibility = "hidden";
      }
    }
  }
}



function addInVATColumn() {
    var aryClassElements = getElementsByClassName('maincontent', document.body );    
    var myTable = aryClassElements[0].getElementsByTagName("table")[0];
    var rowCount = myTable.rows.length;
    // add VAT column for each row    
    for ( var i = 1; i < myTable.rows.length; i++ ) {        
      myTable.rows[i].cells[2].style.width="20%";
      myTable.rows[i].cells[2].style.textAlign = "center";
      myTable.rows[i].cells[2].style.verticalAlign = "top";
      mynoVATCell = myTable.rows[i].cells[2].innerText.substr(1);
      VATamount = (eval(mynoVATCell) * eval(VATRate));
      VATamount = VATamount.toFixed(2);     
      myVATCell = (eval(VATamount) + eval(mynoVATCell));
      myVATCell = myVATCell.toFixed(2);
      myTable.rows[i].cells[2].innerText = "£" + mynoVATCell + "\r\nexc. VAT\r\n\r\n( £" + myVATCell + "\r\ninc. VAT )";
    }            
}



function addInTheVAT() {
 var arrpricelabeltd = getElementsByClassName('pricelabel', document.body);
 var arrpricetd = document.getElementById('price');
 if (arrpricelabeltd.length>0) {
   //we already have a price so add in VAT price
   origionallabel = arrpricelabeltd[0].innerText;
   origionalprice = arrpricetd.innerText;
   //alert(origionallabel);
   //alert(origionalprice);
   VATamount = (eval(origionalprice.substr(1)) * eval(VATRate));
   VATamount = VATamount.toFixed(2);     
   myVATCell = (eval(VATamount) + eval(origionalprice.substr(1)));
   myVATCell = myVATCell.toFixed(2);
   arrpricelabeltd[0].innerText = origionallabel + "\r\nPrice Inc VAT:";
   arrpricetd.innerText = origionalprice + "\r\n£" + myVATCell;
 }
}




function setTheProductPageWidth() {
  //get product page content
  var aryClassElements = getElementsByClassName('maincontent', document.body );    
  for ( var i = 0; i < aryClassElements.length; i++ ) {        
    if (aryClassElements[i].className = 'maincontent') {
      // set product page width
      aryClassElements[i].style.width="583px";      
      // get asscoaited image & center in table 100%
      aryClassElements[i].getElementsByTagName("table")[0].style.width="100%";
      // check to see if there is a form (ie options)
      var aryFormElements = aryClassElements[i].getElementsByTagName("form")
      var aryFormPElements = aryClassElements[i].getElementsByTagName("form")[0].getElementsByTagName("p");    
      if (aryFormPElements.length>0) {
        // we have options before first paragraph
        var aryPElements = aryClassElements[i].getElementsByTagName("p");    
        for ( var p = aryFormPElements.length; p < aryPElements.length; p++ ) {        
          // check all p elements
          var pricelabel= getElementsByClassName("pricelabel", document.body);
          if ((p==aryFormPElements.length)&& (pricelabel.length>0)) {
            //we are on a product info page
            aryPElements[p].style.marginTop=eval(aryClassElements[i].getElementsByTagName("table")[0].offsetHeight);
          }
        }
      } 
    }
  } 
}


function getElementsByClassName( strClassName, obj ) {    
  var ar = arguments[2] || new Array();    
  var re = new RegExp("\\b" + strClassName + "\\b", "g");    
  if ( re.test(obj.className) ) {        
    ar.push( obj );    
  }    
  for ( var i = 0; i < obj.childNodes.length; i++ ) getElementsByClassName( strClassName, obj.childNodes[i], ar );        
  return ar;
}

function addOptionsToCommentsBox() {
  if (document.forms[0].ch_comment) {
    document.forms[0].ch_comment.rows=20;
    document.forms[0].ch_comment.cols=80; 
    document.forms[0].ch_comment.value= "PREFERRED DELIVERY DAY: *delete as appropriate \r\nNo Preference\r\nMonday\r\nTuesday\r\nWednesday\r\nThursday\r\nFriday\r\nSaturday (incurs supplement)";
  }
}


