﻿var AjaxServerPageName = "/AjaxHandlers/AjaxResponse.aspx";
//Creating and setting the instance of appropriate xmlHttp Request object to a “xmlHttp” variable
var inputField = '';
var divEstimatePopUp = '';
var partID = '';
var customerSearch='';
var estimateIDSearch='';
var dateFromSearch='';
var dateToSearch='';
var waitImage = '';
var textBox ;
var hdnEstimateID = 0;
var hdnSerialID = 0;


function createXmlHttp()
 {
    //Creating object of xmlHttp in IE
    xmlHttp = null;
    try
     {
        xmlHttp = new ActiveXObject("Msxml2.xmlHttp");
     }
     catch (e) 
    {
        try
         {
            //Mozilla
            //xmlHttp = new ActiveXObject("Microsoft.xmlHttp");
            xmlHttp = new XMLHttpRequest();
         }
         catch (oc)
         {
            xmlHttp = null;
         }
    }
}

function openLaborSelector(partNumberControlID) 
{
    customerSearch='';
    estimateIDSearch='';
    dateFromSearch='';
    dateToSearch='';
    
    var imgBtnAddtoEstimate ='imgBtnAddtoEstimate';
    divEstimatePopUp = 'divEstimatePopUp';
    divEstimatePopUp = partNumberControlID.replace(/imgBtnAddtoEstimate/,'divEstimatePopUp');
    var tblName = "grdSearchResult";
    var estimateDivs = document.getElementById(tblName).getElementsByTagName('Div');
    for (var index = 0; index <= estimateDivs.length - 1; index++) 
    {
        if (estimateDivs[index].id == divEstimatePopUp)
        {
        }
        else  
        {//Close other divEstimatePopUp
           if (estimateDivs[index].id.indexOf('EstimatePopUp') > 0)
              estimateDivs[index].innerHTML = '';
        }
    }
    partID = partNumberControlID.replace(/imgBtnAddtoEstimate/, "lblObjectID");
    partID = document.getElementById(partID);
    partID = partID.firstChild;
    partID = partID.data;  //get the partID.
    textBox = partNumberControlID.replace(/imgBtnAddtoEstimate/, "txtQty");
    textBox = document.getElementById(textBox);
    createXmlHttp();
    var requestUrl;
    var requstType = "GetLaborEstimates";
    requestUrl = AjaxServerPageName + "?RequestType=" + encodeURIComponent(requstType) + "&get=recent&nocaching=" + Math.random(); ;
    if (xmlHttp)
     {
        xmlHttp.onreadystatechange = listLabors
        xmlHttp.open("GET", requestUrl, true)
        xmlHttp.send(null)
    }
}
function searchEstimates() 
{
    createXmlHttp();
    var requestUrl;
    var requstType = "GetLaborEstimates";
    customerSearch=document.forms[0].txtCustomerName.value;
    estimateIDSearch=document.forms[0].txtEstimateID.value;
    dateFromSearch=document.forms[0].txtDateFrom.value;
    dateToSearch=document.forms[0].txtDateTo.value;
    if (document.getElementById('imgWait') != null)
           document.getElementById('imgWait').style.display='block';
           
    var getString=customerSearch+"|"+estimateIDSearch+"|"+dateFromSearch+"|"+dateToSearch;
    //todo you need to url encode values
    requestUrl = AjaxServerPageName + "?RequestType=" + encodeURIComponent(requstType) + "&get="+getString+"&nocaching=" + Math.random(); ;
    if (xmlHttp)
     {
        xmlHttp.onreadystatechange = listLabors
        xmlHttp.open("GET", requestUrl, true)
        xmlHttp.send(null)
    }

}

function openLaborSelectorFromOrderForm(partNumberControlID) 
{
    var imgBtnAddtoEstimate ='imgBtnAddtoEstimate';
    divEstimatePopUp = 'divEstimatePopUp';
    divEstimatePopUp = partNumberControlID.replace(/imgBtnAddtoEstimate/,'divEstimatePopUp');
    var tblName = "grdResult";
    var estimateDivs = document.getElementById(tblName).getElementsByTagName('Div');
    for (var index = 0; index <= estimateDivs.length - 1; index++) 
    {
        if (estimateDivs[index].id == divEstimatePopUp)
        {
        }
        else  
        {//Close other divEstimatePopUp
           if (estimateDivs[index].id.indexOf('EstimatePopUp') > 0)
              estimateDivs[index].innerHTML = '';
        }
    }
    partID = partNumberControlID.replace(/imgBtnAddtoEstimate/, "lblObjectID");
    partID = document.getElementById(partID);
    partID = partID.firstChild;
    partID = partID.data;  //get the partID.
    
    textBox = partNumberControlID.replace(/imgBtnAddtoEstimate/, "txtQty");
    textBox = document.getElementById(textBox);
    
    createXmlHttp();
    var requestUrl;
    var requstType = "GetLaborEstimates";
    requestUrl = AjaxServerPageName + "?RequestType=" + encodeURIComponent(requstType) + "&get=recent&nocaching=" + Math.random(); ;
    if (xmlHttp)
     {
        xmlHttp.onreadystatechange = listLabors
        xmlHttp.open("GET", requestUrl, true)
        xmlHttp.send(null)
    }
}

function listLabors()
{
     if (xmlHttp.readyState == 4)
     {
         if (xmlHttp.status == 200)
            openPopup(xmlHttp.responseXML.documentElement);
         else
            alert("There was a problem retrieving data from the server.");
     }
 }

function openPopup(xml)
{
     waitImage = '/Images/waitcircle.gif';	
     var messageBody = '';
     if(document.getElementById('hdnEstimateID') != null && document.getElementById('hdnSerialID') != null)
     {
        hdnEstimateID = document.getElementById('hdnEstimateID').value; 
        hdnSerialID = document.getElementById('hdnSerialID').value;
     }
    if (xml.hasChildNodes)
    {
        messageBody = "<script language=javascript src=/Script/Common.js></script>";
        messageBody = messageBody + "<div class=blur><div class=shadow><div class=content>";
        messageBody = messageBody + "<TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0 width=270px >";
        messageBody = messageBody + "<TR><TD valign=top>";
        messageBody = messageBody + "<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=0>";
        messageBody = messageBody + "<TR><TD valign=top class=labelbold align=center>";
        messageBody = messageBody + "Click the estimate to which this part needs to be added";
        messageBody = messageBody + "</TD></TR></TABLE><BR>";
        if(hdnEstimateID > 0)
            messageBody = messageBody + "<span class=labelbold>Currently Active Estimate : <a href='javascript:addToEstimate("+hdnSerialID+");'>"+ hdnEstimateID+"</a></span><BR><BR>";
        
        if( customerSearch ==''&& estimateIDSearch==''&& dateFromSearch ==''&& dateToSearch=='')
            messageBody = messageBody + "<span class=labelbold>Recent Estimates...</span><BR>";
        else
            messageBody = messageBody + "<span class=labelbold>Search Results...</span><BR>";
        
        messageBody = messageBody + "<TABLE WIDTH=100% BORDER=0 CELLPADDING=3 CELLSPACING=0 >";
        
        for (var count = 0; count <= xml.childNodes.length - 1; count++)
        {
            var record = getInnerText(xml.childNodes[count]);
            var serialID=record.substring(0,record.indexOf("/"));
            var display=record.substring(serialID.length+1,record.length);
            var link = "<a href='javascript:addToEstimate("+serialID+");'>"+ display+"</a>";
            messageBody = messageBody + "<TR><TD class=pagedesc valign=top>";
            messageBody = messageBody + "<b>"+link+"</b>";
            messageBody = messageBody + "</TD></TR>";
        }
        messageBody = messageBody + "</TABLE><BR>";
        messageBody = messageBody + "<img align=center id=imgWait style=display:none src="+ waitImage +">";
        messageBody = messageBody + "<a href=javascript:showHide();>More...</a>";
        messageBody = messageBody + "<DIV id=searchSection style=display:none><TABLE> ";
        messageBody = messageBody + "<TR><TD class='label'>Estimate ID</TD><TD><input  class=textbox name=txtEstimateID value="+ estimateIDSearch+"></TD></TR>";         
        messageBody = messageBody + "<TR><TD class='label'>Customer Name</TD><TD><input  class=textbox name=txtCustomerName value="+ customerSearch +"></TD></TR>";
        messageBody = messageBody + "<TR><TD class='label'>Created After</TD><TD class='label'><input class=textbox name=txtDateFrom value="+ dateFromSearch +"></TD></TR>";
        messageBody = messageBody + "<TR><TD class='label'>Created Before</TD><TD class='label'><input class=textbox name=txtDateTo value="+ dateToSearch +"></TD></TR>";
        messageBody = messageBody + "<TR><TD class='label'colspan=2><input type=button class=coolbutton1 value=Search onclick='javascript:searchEstimates()'</TD></TR>";         
        messageBody = messageBody + "</TABLE>";
        messageBody = messageBody + "</TD>";
        messageBody = messageBody + "</TR>";
        messageBody = messageBody + "<TR>";
        messageBody = messageBody + "<TD>";
        messageBody = messageBody + "<FONT COLOR=#000000 SIZE=1>";
        if(hdnEstimateID > 0)
            messageBody = messageBody + "<CENTER><p style=Text-Align:Right><a href='javascript:redirect();'>Go back to estimate</a>&nbsp;&nbsp;<p style=Text-Align:Right><a href='javascript:closeLEPopUp();'>Close</a>&nbsp;&nbsp;</p></CENTER>";
        else
            messageBody = messageBody + "<CENTER><p style=Text-Align:Right><a href='javascript:closeLEPopUp();'>Close</a>&nbsp;&nbsp;</p></CENTER>";
        messageBody = messageBody + "</FONT>";
        messageBody = messageBody + "</TD></TR></TABLE></DIV>";
        messageBody = messageBody + "</div></div></div>";
    }
    else
    {
        messageBody = "<div class=blur><div class=shadow><div class=content>";
        messageBody = messageBody + "<TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0 width=270px >";
        messageBody = messageBody + "<TR>";
        messageBody = messageBody + "<TD class=infomessage>No estimates found.";
        messageBody = messageBody + "</TD>";
        messageBody = messageBody + "</TR>";
        messageBody = messageBody + "</TR>";
        messageBody = messageBody + "<TR>";
        messageBody = messageBody + "<TD>";
        messageBody = messageBody + "<FONT COLOR=#000000 SIZE=1>";
        if(hdnEstimateID > 0)
            messageBody = messageBody + "<CENTER><p style=Text-Align:Right><a href='javascript:redirect();'>Go back to estimate</a>&nbsp;&nbsp;<p style=Text-Align:Right><a href='javascript:closeLEPopUp();'>Close</a>&nbsp;&nbsp;</p></CENTER>";
        else
            messageBody = messageBody + "<CENTER><p style=Text-Align:Right><a href='javascript:closeLEPopUp();'>Close</a>&nbsp;&nbsp;</p></CENTER>";
        messageBody = messageBody + "</FONT>";
        messageBody = messageBody + "</TD>";
        messageBody = messageBody + "</TR>";
        messageBody = messageBody + "</TABLE>";
        messageBody = messageBody + "</div></div></div>";
    }
    document.getElementById(divEstimatePopUp).style.display = 'block';
    document.getElementById(divEstimatePopUp).innerHTML = messageBody;
}

 
 function closeLEPopUp()
 {
    document.getElementById(divEstimatePopUp).style.display = 'none';
 }
 
 function redirect()
 {
    if(hdnEstimateID > 0)
        window.location.href= '/Catalog/Labors/LaborResults.aspx?EstimateSerialID='+hdnSerialID+'&EstimateID='+hdnEstimateID+'';
    else
        alert('There is no Active Estimate');    
    document.getElementById(divEstimatePopUp).style.display = 'none';
 }
 
 
 //Returns the node text value
 function getInnerText(node)
 {
     return (node.textContent || node.innerText || node.text);
 }


 function addToEstimate(estimateID)
  {      
      createXmlHttp();
      if (xmlHttp)
       {
          var requestUrl;
          var requstType = "GetLaborEstimates";
          var quantity  ="1";
          if(textBox != 'undefined')
            quantity = textBox.value;  
          requestUrl = AjaxServerPageName + "?AddPartToEstimate=" + encodeURIComponent(requstType) + "&partid=" + encodeURIComponent(partID) + "&serialid=" + encodeURIComponent(estimateID)+ "&quantity="+quantity+"&nocache=" + Math.random(); ;
          xmlHttp.onreadystatechange = displayMessageLE
          xmlHttp.open("GET", requestUrl, true)
          xmlHttp.send(null)
      }
  }
  function displayMessageLE()
   {
        var messageBody = '';
        var statusMessage = '';
        if (xmlHttp.readyState == 4)
        {
           if (xmlHttp.status == 200)
           {    
                var response = getInnerText(xmlHttp.responseXML.documentElement);
                if (response=='1')
                        statusMessage = 'The part has been successfully added to the estimate';
                else if (response=='2')
                    statusMessage = 'The part has been updated to the estimate';
                else
                    statusMessage = 'There was a problem while adding the part to estimate. Please retry.';
               if(hdnEstimateID > 0)
                    statusMessage += "<p style=Text-Align:Right><a href='javascript:redirect();'>Go back to estimate</a>&nbsp;&nbsp;";
	
                messageBody = "<div class=blur><div class=shadow><div class=content>";
                messageBody = messageBody + "<TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0 width=270px >";
                messageBody = messageBody + "<TR>";
                messageBody = messageBody + "<TD class=infomessage>";
                messageBody = messageBody + statusMessage;
                messageBody = messageBody + "</TD>";
                messageBody = messageBody + "</TR>";
                messageBody = messageBody + "</TR>";
                messageBody = messageBody + "<TR>";
                messageBody = messageBody + "<TD>";
                messageBody = messageBody + "<FONT COLOR=#000000 SIZE=1>";
                messageBody = messageBody + "<CENTER><p style=Text-Align:Right><a href='javascript:closeLEPopUp();'>Close</a>&nbsp;&nbsp;</p></CENTER>";
                messageBody = messageBody + "</FONT>";
                messageBody = messageBody + "</TD>";
                messageBody = messageBody + "</TR>";
                messageBody = messageBody + "</TABLE>";
                messageBody = messageBody + "</div></div></div>";
                document.getElementById(divEstimatePopUp).innerHTML = messageBody;
               }
           else
               alert("There was a problem while adding the part to estimate. Please retry.");
       }
}

function showHide()
{
    try
    {
        
        if(document.getElementById('searchSection').style.display=="none")
        {
            document.getElementById('searchSection').style.display="block";
        }
        else
        {
            document.getElementById('searchSection').style.display="none";
        } 
        
    }
    catch(e)
    {
        alert(e.message);
    }
}