var tr = '';
var close = false;


var rSuccess = function(o){
 var txt = o.responseText;
 var tableId = txt.replace(/correct/,'');
 var tableId = tableId.replace(/[^0-9]/, "");
 tableId = 'sizetable-'+tableId;
 var parent = document.getElementById(tableId);

 if(txt.indexOf("correct") == '-1')
 {
   parent = parent.parentNode;

   document.getElementById(o.responseText).style.border = '1px solid red';

   if(parent.lastChild.className != 'errortext')
   {
     var p = document.createElement('p');

     parent.appendChild(p);

     p.className = 'errortext';
     p.innerHTML = 'The values highlighted above are not within the min/max range for this product<br />Please click the product link on the left for a guide';
   }
 }
 else
 {
   var id = txt.replace(/correct/,'');
   document.getElementById(id).style.border = '';
   var input = parent.getElementsByTagName('input');
   var error = false;

   for(i=0;i<input.length;i++)
   {

     if(input[i].style.border == '1px solid red')
     {
       error = true;
     }
   }

   if(parent.parentNode.lastChild.className == 'errortext' && error == false)
   {
     parent.parentNode.lastChild.id = 'remove';
     document.getElementById('remove').parentNode.removeChild(document.getElementById('remove'));
     //parent.parentNode.lastChild.parentNode.removeChild(parent.parentNode.lastChild);
   }

 }
};

var rFailure = function(o){

}

var cbRanges =
{
  success:rSuccess,
  failure:rFailure
};



function rangesCheck(o)
{

 var val = this.value;
 var field = this.name;
 var fid = this.id;
 var letter = field.replace(/[^a-zA-Z]/, "");
 letter = letter.replace(/\[/, "");
 letter = letter.replace(/\]/, "");
 letter = letter.replace(/[0-9]/, "");
 letter = letter.replace(/[0-9]/, "");

 var number = field.replace(/[^0-9]/, "");
 number = number.replace(/\[/, "");
 number = number.replace(/\]/, "");
 //number = number.replace(/a/, "");

 var pId = document.getElementById('product-'+number).value;

 var postVars = 'product_id='+pId+'&value='+val+'&id='+fid+'&field='+letter+'&ranges=true';
 sUrl = '/_assets/src/ssi/ajax.inc.php';

 var transaction = YAHOO.util.Connect.asyncRequest('POST', sUrl, cbRanges, postVars);


}

function goback(o)
{
 history.back();
}

function gobacktwo(o)
{
 history.go(-2);
}

function isInteger (s)
{
  var i;

  if (isEmpty(s))
  if (isInteger.arguments.length == 1) return 0;
  else return (isInteger.arguments[1] == true);

  for (i = 0; i < s.length; i++)
  {
     var c = s.charAt(i);

     if (!isDigit(c))
     {
       if(c != '.')
       {
         return false;
       }
     }

  }

  return true;
}

function isEmpty(s)
{
  return ((s == null) || (s.length == 0))
}

function isDigit (c)
{
  return ((c >= "0") && (c <= "9"))
}


function validateInt(o)
{

 var frm = document.getElementById('steponeform');

 var input = frm.getElementsByTagName('input');
 var alrt = false;
 var values = false;
 for(i=0;i<input.length;i++)
 {
   if(input[i].type == "text")
   {
     if(!isInteger(input[i].value) && input[i].value != '')
     {
       alrt = true;
       input[i].style.border = '1px solid red';
     }
     else
     {
       if(input[i].value != '')
       {
         values = true;
       }
       input[i].style.border = '';
       input[i].removeAttribute('style');
     }
   }
 }

   if(alrt === true)
   {
     alert('Please check the indicated values numerical');
     return false;
   }

     //return true;

   if(values === false)
   {
     alert('Please select a product by inserting the quanitity required');
     return false;
   }
   else
   {
     return true;
   }

   //return false;
}



function validateForm(o)
{
 var alrt = false;
 var frm = document.getElementById('step2table');

 var input = frm.getElementsByTagName('input');

 var sel = frm.getElementsByTagName('select');

 for(i=0;i<sel.length;i++)
 {


   if(sel[i].name.indexOf('size') != '-1')
   {
     //console.log(sel[i].options[sel[i].selectedIndex].value);
     if(sel[i].options[sel[i].selectedIndex].value == '2')
     {
       alrt = true;
       sel[i].style.border = '1px solid red';
     }
     else
     {
       sel[i].style.border = '';
     }

   }

 }

 if(alrt==true)
 {
   alert('please select sizes for the products indicated');
   return false;
 }

 for(i=0;i<input.length;i++)
 {
   if(input[i].type == "text")
   {

     if(!isInteger(input[i].value))
     {
       alrt = true;
       input[i].style.border = '1px solid red';
     }
     else
     {
       input[i].style.border = '';
     }
   }
 }

   if(alrt === true)
   {
     alert('Please select a size or input custom values for the indicated products before continuing');
     return false;
   }
   else
   {
     return true;
   }

   //return false;
}


var responseSuccess = function(o){

 function ani()
 {

   var nxt = tr.nextSibling;
 var cl = tr.className;
 var ntr = document.createElement('tr');
 var ntd = document.createElement('td');

 ntr.appendChild(ntd);
 nxt.parentNode.insertBefore(ntr,nxt)

 ntr.className = cl;
 ntr.id = 'animated';

 if(document.getElementById('step3table'))
 {
   ntd.setAttribute('colspan','8');
   ntd.colSpan = '8';
 }

 if(document.getElementById('step2table'))
 {
   ntd.setAttribute('colspan','7');
   ntd.colSpan = '7';
 }

 //ntd.offsetHeight = '0';
 ntd.innerHTML = o.responseText;
 document.getElementById('dimensions-fill').style.overflow = 'hidden';
 document.getElementById('dimensions-fill').style.height = '0';
 var myAnim = new YAHOO.util.Anim('dimensions-fill', {
    height: { from:0 , to: 300 }
    }, 1, YAHOO.util.Easing.easeOut);
    myAnim.animate();
 }

 function removeElement(){
  document.getElementById('animated').parentNode.removeChild(document.getElementById('animated'));
    if(close == false)
    {
      ani();
    }
 }

 if(document.getElementById('animated'))
 {

    var myAnim = new YAHOO.util.Anim('dimensions-fill', {
    height: { to: 0 }
    }, 1, YAHOO.util.Easing.easeOut);
    myAnim.onComplete.subscribe(removeElement);
    myAnim.animate();
 }
 else
 {
   ani();
 }

};

var responseFailure = function(o){

}

var callback =
{
  success:responseSuccess,
  failure:responseFailure
};


function dimension_disp()
{
 if(this.parentNode.parentNode.parentNode == tr)
 {
   close = true;
 }
 else
 {
   close = false;
 }
 tr = this.parentNode.parentNode.parentNode;
 if(this.id != ''){
 var sUrl = '/'+this.id;
 var transaction = YAHOO.util.Connect.asyncRequest('GET', sUrl, callback, null);
 }

 return false;
}


function size_active_init(sid)
{
    var oldId = sid;
    var newId = oldId.replace(/size-/,'sizetable-');

    var tab = document.getElementById(newId);
    var inputs = tab.getElementsByTagName('input');
      if(inputs.length > 0)
      {
          for(k=0;k<inputs.length;k++)
          {
            inputs[k].removeAttribute('disabled');
            inputs[k].className = 'textfield';
          }

      }
}

var successCB = function(o){

   var res = o.responseText;

   var dat = res.split('|');

   var id = dat[0];

   var sizes = dat[1].split('Z*Z');

   if(document.getElementById('a'+id)){ document.getElementById('a'+id).value = sizes[0]; document.getElementById('a'+id).style.border = '';  }
   if(document.getElementById('b'+id)){ document.getElementById('b'+id).value = sizes[1]; document.getElementById('b'+id).style.border = '';  }
   if(document.getElementById('c'+id)){ document.getElementById('c'+id).value = sizes[2]; document.getElementById('c'+id).style.border = '';  }
   if(document.getElementById('d'+id)){ document.getElementById('d'+id).value = sizes[3]; document.getElementById('d'+id).style.border = '';  }
   if(document.getElementById('e'+id)){ document.getElementById('e'+id).value = sizes[4]; document.getElementById('e'+id).style.border = '';  }
   if(document.getElementById('f'+id)){ document.getElementById('f'+id).value = sizes[5]; document.getElementById('f'+id).style.border = '';  }
   if(document.getElementById('g'+id)){ document.getElementById('g'+id).value = sizes[6]; document.getElementById('g'+id).style.border = '';  }

   var parent = document.getElementById('sizetable-'+id).parentNode;
   if(parent.lastChild.className == 'errortext')
   {
     parent.lastChild.id = 'remove';
     document.getElementById('remove').parentNode.removeChild(document.getElementById('remove'));
     //parent.parentNode.lastChild.parentNode.removeChild(parent.parentNode.lastChild);
   }
   else if(parent.parentNode.lastChild.className == 'errortext')
   {
     parent.parentNode.lastChild.id = 'remove';
     document.getElementById('remove').parentNode.removeChild(document.getElementById('remove'));

   }
}

var failureCB = function(o){
}

var cbSizes =
{
  success:successCB,
  failure:failureCB
};

var successDel = function(o){
//console.log(o.responseText);
}

var cbDel =
{
  success:successDel,
  failure:failureCB
};



function size_active()
{

  var oldId = this.id;
  var eek = this;
  var newId = oldId.replace(/size-/,'sizetable-');
  var Id = oldId.replace(/size-/,'');
  var prodId = oldId.replace(/size-/,'product-');

  if(document.getElementById(newId))
  {
    var tab = document.getElementById(newId);
    var inputs = tab.getElementsByTagName('input');
    for(i=0;i<inputs.length;i++)
    {
      if(this.value == 8 || this.value == 13 || this.value == 17 || this.value == 20)
      {
        inputs[i].removeAttribute('disabled');
        //inputs[i].className = 'textfield';
      }
      else
      {
        inputs[i].setAttribute('disabled','disabled');
        inputs[i].className = 'greyed-input';



      }
    }

  }
  // get values
  var product = document.getElementById(prodId).value;

  postVars = 'value='+this.value+'&product='+product+'&getsize=true&id='+Id;
  sUrl = '/_assets/src/ssi/ajax.inc.php';

  var transaction = YAHOO.util.Connect.asyncRequest('POST', sUrl, cbSizes, postVars);

}


function cover_active(cid)
{
   if(document.getElementById(cid))
   {
     var oldId = cid;
     var eek = document.getElementById(cid);
   }
   else
   {
      var oldId = this.id;
      var eek = this;
    }
  var fillId = oldId.replace(/cover-/,'filling-');
  var fabricId = oldId.replace(/cover-/,'fabric-');
  var closureId = oldId.replace(/cover-/,'closure-');

    if(eek.value == 3)
    {
      if(document.getElementById(fillId)){
      document.getElementById(fillId).setAttribute('disabled','disabled')
      document.getElementById(fillId).className = 'greyed';
      }
/*
      if(document.getElementById(fabricId)){
      document.getElementById(fabricId).setAttribute('disabled','disabled')
      document.getElementById(fabricId).className = 'greyed';
      }

      if(document.getElementById(closureId)){
      document.getElementById(closureId).setAttribute('disabled','disabled')
      document.getElementById(closureId).className = 'greyed';
      }
      */
    }
    else
    {
      if(document.getElementById(fillId)){
      document.getElementById(fillId).removeAttribute('disabled');
      document.getElementById(fillId).className = 'dropdownmenu';
      }
/*
      if(document.getElementById(fabricId)){
      document.getElementById(fabricId).removeAttribute('disabled');
      document.getElementById(fabricId).className = 'dropdownmenu';
      }

      if(document.getElementById(closureId)){
      document.getElementById(closureId).removeAttribute('disabled');
      document.getElementById(closureId).className = 'dropdownmenu';
      }
*/
    }
}

function printpage() {
window.print();
return false;
}


function deleteThis(o)
{
 var answer = confirm("Delete this item?")
 if (answer)
 {

   var delId = this.id;
   delId = delId.replace(/delete-/,'');
   sUrl = '/_assets/src/ssi/ajax.inc.php';
   postVars = 'delete=true&key='+delId
   //send id via ajax and color this row grey

   var transaction = YAHOO.util.Connect.asyncRequest('POST', sUrl, cbDel, postVars);

   if(this.parentNode.parentNode.nodeName == 'TR')
   {
     var trDel = this.parentNode.parentNode;
   }
   else
   {
     var trDel = this.parentNode.parentNode.parentNode;
   }

   trDel.className = 'deletedrow';

   }
}

function init(o)
{

 if(document.getElementById('steponesubmit'))
 {
   document.getElementById('steponesubmit').onclick = validateInt;
 }

  if(document.getElementById('step2submit'))
 {
   document.getElementById('step2submit').onclick = validateForm;
 }

  if(document.getElementById('step3table'))
  {
   var s2t = document.getElementById('step3table');

   var ac = s2t.getElementsByTagName('a');

   for(i=0;i<ac.length;i++){
     ac[i].onclick = dimension_disp;
   }

  }

 if(document.getElementById('step2table'))
 {
   var s2t = document.getElementById('step2table');

   var ac = s2t.getElementsByTagName('a');

   for(i=0;i<ac.length;i++){
     ac[i].onclick = dimension_disp;
   }

  var inpt = s2t.getElementsByTagName('input');
  for(i=0;i<inpt.length;i++){
    if(inpt[i].type == 'text'){
      inpt[i].onblur = rangesCheck;
    }
  }
   var sel = s2t.getElementsByTagName('select');

   for(i=0;i<sel.length;i++){
     if(sel[i].name.indexOf('size') != -1)
     {
       sel[i].onchange = size_active;
       if(sel[i].value == 8 || sel[i].value == 13 || sel[i].value == 17 || sel[i].value == 20)
       {
         size_active_init(sel[i].id);
       }
     }

     if(sel[i].name.indexOf('cover') != -1)
     {
       sel[i].onchange = cover_active;
       cover_active(sel[i].id);
     }
   }
 }

    if(document.getElementById('back'))
    {
      document.getElementById('back').onclick = goback;
    }

  if(document.getElementById('step3table'))
  {
     var tab3 = document.getElementById('step3table');
     var input = tab3.getElementsByTagName('input');

     for(i=0;i<input.length;i++)
     {
       if(input[i].value == 'Amend')
       {
         input[i].onclick = goback;
       }

       if(input[i].value == 'Delete')
       {
         input[i].onclick = deleteThis;
       }
     }
  }

  if(document.getElementById('step4amend'))
  {
    document.getElementById('step4amend').onclick = gobacktwo;
  }

  if(document.getElementById('step4del'))
  {
    document.getElementById('step4del').onclick = goback;
  }

  if(document.getElementById('print'))
  {
     document.getElementById('print').onclick = printpage;
  }
}
window.onload = init;