﻿function strGoBackNlevels(i_intLevels)
    {

    var strResult = "";

    for (var x = 1; x <= i_intLevels; x++)
        {
        strResult = strResult + "../";
        }

    return strResult;
    }
    
function datePickerWizard(i_strDateFieldId, i_strTimeFieldId, i_intLevels, i_strButton)
{
    // You must pass in the name of the date field.
    var objDateTextField  = document.getElementById(i_strDateFieldId);
    var objTimeTextField  = document.getElementById(i_strTimeFieldId);
    
    var strURL = strGoBackNlevels(i_intLevels) + "Wizards/DatePickerWizard/DatePickerWizard.aspx" +
        "?datevalue=" + objDateTextField.value ;
        
    var a_strReturnElements;
    
    var Args= "";
    var Opts="dialogWidth:300px;dialogHeight:200px;scrollbars:no;centre:yes;status:no;toolbar:no;menubar:no;help:no;";

    var objButton;
    var strButtonGraphicOriginal = "";
    var strButtonGraphicNew = "";    
    
    if (document.getElementById(i_strButton))
    {
        objButton = document.getElementById(i_strButton);
        strButtonGraphicOriginal = objButton.src;
        strButtonGraphicNew = strButtonGraphicOriginal.replace("WizardButton.jpg","WizardButtonWaiting.gif");
        objButton.src = strButtonGraphicNew;
    }

    var strReturnValue = window.showModalDialog(strURL,Args,Opts);

    if (strReturnValue == null)
        {
            // Do nothing
        }
    else
        {
            a_strReturnElements = strReturnValue.split("*|*");
            
            // Element 0 is the display date
            objDateTextField.value = a_strReturnElements[0];
            objTimeTextField.value = "00:00:00";
        }

    if (strButtonGraphicOriginal != "")
        objButton.src = strButtonGraphicOriginal;
        
    window.event.cancelBubble = true;
    window.event.returnValue = false;
}

function datePickerNotCustomControl(i_strFieldId, i_intLevels, i_blnReturnInternationalFormat, i_strButton)
{
    // You must pass in the name of the date field.
    var objResultField  = document.getElementById(i_strFieldId);
    var strURL = strGoBackNlevels(i_intLevels) + "Wizards/DatePickerWizard/DatePickerWizard.aspx" +
        "?datevalue=" + objResultField.value ;
        
    var a_strReturnElements;

    var objButton;
    var strButtonGraphicOriginal = "";
    var strButtonGraphicNew = "";    
    
    if (document.getElementById(i_strButton))
    {
        objButton = document.getElementById(i_strButton);
        strButtonGraphicOriginal = objButton.src;
        strButtonGraphicNew = strButtonGraphicOriginal.replace("WizardButton.jpg","WizardButtonWaiting.gif");
        objButton.src = strButtonGraphicNew;
    }
    
    var Args= "";
    var Opts="dialogWidth:300px;dialogHeight:200px;scrollbars:no;centre:yes;status:no;toolbar:no;menubar:no;help:no;";

    var strReturnValue = window.showModalDialog(strURL,Args,Opts);
    
    if (strReturnValue == null)
        {
            // Do nothing
        }
    else
        {
            a_strReturnElements = strReturnValue.split("*|*");
         
            if (i_blnReturnInternationalFormat)
            {
                // Element 1 is the international date
                objResultField.value = a_strReturnElements[1];
            }
            else
            {
                // Element 0 is the friendly display date
                objResultField.value = a_strReturnElements[0];
            }
        }

    if (strButtonGraphicOriginal != "")
        objButton.src = strButtonGraphicOriginal;

    window.event.cancelBubble = true;
    window.event.returnValue = false;
}


function supplierFinderWizard(i_strFieldSupplierId, i_strFieldCompanyName, i_strFieldPostcode, i_blnMatchBoth, i_intLevels, i_strCallingButton, i_strShowSelectButton, i_strShowMaintainButton)
{
    // You must pass in the name of... supplier id, company name, postcode fields.
    var objSupplierIdField  = document.getElementById(i_strFieldSupplierId);
    var objCompanyNameField  = document.getElementById(i_strFieldCompanyName);
    var objPostcodeField  = document.getElementById(i_strFieldPostcode);
    
    var objButton;
    var strButtonGraphicOriginal = "";
    var strButtonGraphicNew = "";
    
    var strMatchBoth = "F";
    
    if (document.getElementById(i_strCallingButton))
    {
        objButton = document.getElementById(i_strCallingButton);
        strButtonGraphicOriginal = objButton.src;
        strButtonGraphicNew = strButtonGraphicOriginal.replace("WizardButton.jpg","WizardButtonWaiting.gif");
        objButton.src = strButtonGraphicNew;
    }
    
    if (i_blnMatchBoth)
        strMatchBoth = "T";
        
    if (((objCompanyNameField.value == "") || (objPostcodeField.value == "")) && i_blnMatchBoth)
    {
        alert("You must supply both the supplier name and postcode if you ask Zeus to match on both");
    }
    else
    {
        
        var strURL = strGoBackNlevels(i_intLevels) + "Wizards/SupplierFinderWizard/SupplierFinderWizard.aspx" +
            "?company=" + objCompanyNameField.value +
            "&postcode=" + objPostcodeField.value +
            "&matchboth=" + strMatchBoth +
            "&ShowSelectButton=" + i_strShowSelectButton +
            "&ShowMaintainButton=" + i_strShowMaintainButton;
            
        var Args= "";
        var Opts="dialogWidth:1000px;dialogHeight:600px;scrollbars:no;centre:yes;status:no;toolbar:no;menubar:no;help:no;";

        var strReturnValue = window.showModalDialog(strURL,Args,Opts);
        

        if (strReturnValue == null)
            {
                // Do nothing
            }
        else
            {
                if (objSupplierIdField)
                {
                objSupplierIdField.value = strReturnValue
                }
            }
    }
    
    
    if (strButtonGraphicOriginal != "")
        objButton.src = strButtonGraphicOriginal;
        
    window.event.cancelBubble = true;
    window.event.returnValue = false;
}

function materialWizard(i_strRawResultField,i_strMaterialIdField,i_strMaterialNameField,i_strQuantityField,i_strEwcField,i_strMode,i_intLevel,i_strButton,i_strSupplierId,i_blnShowPrivate,i_strJobId,i_strArrangementId)
{
    // CWC return value Removed. DB 17-1-12

    // Pass in empty strings if you don't want to return values to all fields.
    // i_strRawResultField is used only for testing.
    // i_strMode has the following values...
            //private enum enuDataMode
            //{
            //    Job = 1, // Find a material to add to this Job
            //    Quote = 2, // Find a material to add to this Quote
            //    Supplier = 3, // Find a material to add to this Supplier
            //    Lookup = 4 // Find a material
            //}

    
    var objMaterialId;
    var objMaterialName;
    //var objCWC;
    var objQty;
    var objJobId;
    var objResultField;
    
    var strReturnValue;
    var a_strReturnElements;
    
    var strButtonGraphicOriginal = "";
    var strButtonGraphicNew = "";
    var strSupplierQuerystring = "";
    var strJobQuerystring = ""
    var strArrangementQuerystring = ""
    var strPrivateQuerystring = ""
    
    var objButton;
    var strButtonGraphicOriginal = "";
    var strButtonGraphicNew = "";
    
    if (document.getElementById(i_strButton))
    {
        objButton = document.getElementById(i_strButton);
        strButtonGraphicOriginal = objButton.src;
        strButtonGraphicNew = strButtonGraphicOriginal.replace("WizardButton.jpg","WizardButtonWaiting.gif");
        objButton.src = strButtonGraphicNew;
    }
    
    if (i_strRawResultField != "")
        objResultField  = document.getElementById(i_strRawResultField);
    if (i_strMaterialIdField != "")
        objMaterialId  = document.getElementById(i_strMaterialIdField);
    if (i_strMaterialNameField != "")  
        objMaterialName  = document.getElementById(i_strMaterialNameField);
    if (i_strQuantityField != "")
        objQty  = document.getElementById(i_strQuantityField);
    //if (i_strEwcField != "")
    //    objCWC  = document.getElementById(i_strEwcField);
        
        
    if (i_strSupplierId != "")
        {
        strSupplierQuerystring = "&SupplierId=" + i_strSupplierId;
        }
    if (i_strJobId != "")
        {
        strJobQuerystring = "&JobId=" + i_strJobId;
        }     
    if (i_strArrangementId != "")
        {
        strArrangementQuerystring = "&ArrangementId=" + i_strArrangementId;
        }          
           
        
        
    if (i_blnShowPrivate)
        {
        strPrivateQuerystring = "&ShowPrivate=T" ;
        }
    else
        {
        strPrivateQuerystring = "&ShowPrivate=F" ;
        }
        
    if (i_strMode == "")
        i_strMode = "quote";
        
    var Args= "";
    var Opts="dialogWidth:900px;dialogHeight:550px;scrollbars:no;centre:yes;status:no;toolbar:no;menubar:no;help:no;";

    strReturnValue = window.showModalDialog(strGoBackNlevels(i_intLevel) + 
        "Wizards/MaterialWizard/MaterialWizard.aspx?DataMode=" + 
        i_strMode + 
        strSupplierQuerystring + 
        strPrivateQuerystring + 
        strJobQuerystring +
        strArrangementQuerystring,Args,Opts);
    

    // Now the wizard has the returned value which is a string which has several parts and
    // we use the string *|* as a delimiter so a typical return may look something like this...
    // AR*|*Aerosols (205lt drum)*|*45*|*160504
    // This is in the format...
    // Material code / Material Name / Quantity / EWC code

    if (strReturnValue == null)
        {
        if (i_strRawResultField != "")
            objResultField.value = "No value was returned";
        }
    else
        {

        if (i_strRawResultField != "")
            objResultField.value = strReturnValue;

        // You can see the raw string. Now separate the elements and put them in their own fields.
        a_strReturnElements = strReturnValue.split("*|*");

        if (i_strMaterialIdField != "")
            objMaterialId.value = a_strReturnElements[0];
        if (i_strMaterialNameField != "")    
            objMaterialName.value = a_strReturnElements[1];
        if (i_strQuantityField != "")
            objQty.value = a_strReturnElements[2];
        //if (i_strEwcField != "")
        //    objCWC.value = a_strReturnElements[3];
    }
    

    if (strButtonGraphicOriginal != "")
        objButton.src = strButtonGraphicOriginal;
    
    
    window.event.cancelBubble = true;
    window.event.returnValue = false;
}

function ServiceWizard(i_strRawResultField,i_strServiceIdField,i_strServiceNameField,i_strQuantityField,i_strMode,i_intLevel,i_strButton,i_strSupplierId,i_blnShowPrivate,i_strJobId,i_strArrangementId)
{

    // Pass in empty strings if you don't want to return values to all fields.
    // i_strRawResultField is used only for testing.
    // i_strMode has the following values...
            //private enum enuDataMode
            //{
            //    Job = 1, // Find a Service to add to this Job
            //    Quote = 2, // Find a Service to add to this Quote
            //    Supplier = 3, // Find a Service to add to this Supplier
            //    Lookup = 4 // Find a Service
            //}
            // DB : At 9 Oct 2008 the mode only changes the title. In future it may
            // be developed to do more.
    
    var objServiceId;
    var objServiceName;
    var objQty;
    var objResultField;
    
    var strReturnValue;
    var a_strReturnElements;
    
    var strButtonGraphicOriginal = "";
    var strButtonGraphicNew = "";
    var strSupplierQuerystring = "";
    var strPrivateQuerystring = ""
    var strJobQuerystring = ""
    var strArrangementQuerystring = ""    
    
    var objButton;
    var strButtonGraphicOriginal = "";
    var strButtonGraphicNew = "";
    
    if (document.getElementById(i_strButton))
    {
        objButton = document.getElementById(i_strButton);
        strButtonGraphicOriginal = objButton.src;
        strButtonGraphicNew = strButtonGraphicOriginal.replace("WizardButton.jpg","WizardButtonWaiting.gif");
        objButton.src = strButtonGraphicNew;
    }
    
    if (i_strRawResultField != "")
        objResultField  = document.getElementById(i_strRawResultField);
    if (i_strServiceIdField != "")
        objServiceId  = document.getElementById(i_strServiceIdField);
    if (i_strServiceNameField != "")  
        objServiceName  = document.getElementById(i_strServiceNameField);
    if (i_strQuantityField != "")
        objQty  = document.getElementById(i_strQuantityField);
   
    if (i_strSupplierId != "")
        {
        strSupplierQuerystring = "&SupplierId=" + i_strSupplierId;
        }
    if (i_blnShowPrivate)
        {
        strPrivateQuerystring = "&ShowPrivate=T" ;
        }     
    if (i_strJobId != "")
        {
        strJobQuerystring = "&JobId=" + i_strJobId;
        }     
    if (i_strArrangementId != "")
        {
        strArrangementQuerystring = "&ArrangementId=" + i_strArrangementId;
        }            
        
    if (i_strMode == "")
        i_strMode = "quote";
        
    var Args= "";
    var Opts="dialogWidth:850px;dialogHeight:500px;scrollbars:no;centre:yes;status:no;toolbar:no;menubar:no;help:no;";

    strReturnValue = window.showModalDialog(strGoBackNlevels(i_intLevel) + 
        "Wizards/ServiceWizard/ServiceWizard.aspx?DataMode=" + 
        i_strMode + 
        strSupplierQuerystring + 
        strArrangementQuerystring +
        strJobQuerystring +
        strPrivateQuerystring,Args,Opts);

    // Now the wizard has the returned value which is a string which has several parts and
    // we use the string *|* as a delimiter so a typical return may look something like this...
    // AR*|*Aerosols (205lt drum)*|*45
    // This is in the format...
    // Service code / Service Name / Quantity 

    if (strReturnValue == null)
        {
        if (i_strRawResultField != "")
            objResultField.value = "No value was returned";
        }
    else
        {

        if (i_strRawResultField != "")
            objResultField.value = strReturnValue;

        // You can see the raw string. Now separate the elements and put them in their own fields.
        a_strReturnElements = strReturnValue.split("*|*");

        if (i_strServiceIdField != "")
            objServiceId.value = a_strReturnElements[0];
        if (i_strServiceNameField != "")    
            objServiceName.value = a_strReturnElements[1];
        if (i_strQuantityField != "")
            objQty.value = a_strReturnElements[2];
       
    }
    

    if (strButtonGraphicOriginal != "")
        objButton.src = strButtonGraphicOriginal;
    
    
    window.event.cancelBubble = true;
    window.event.returnValue = false;
}


function sicCodeWizard(i_strRawResultField, i_strCodeFieldId, i_strDescriptionFieldId, i_intLevels, i_strButton, i_intSeries)
{
    // Pass in empty strings if you don't want to return values to all fields.
    var objResultField; // used for testing
    var objIdField;
    var objDescriptionField;
    var a_strReturnElements;
    
    var objButton;
    var strButtonGraphicOriginal = "";
    var strButtonGraphicNew = "";
    
    if (document.getElementById(i_strButton))
    {
        objButton = document.getElementById(i_strButton);
        strButtonGraphicOriginal = objButton.src;
        strButtonGraphicNew = strButtonGraphicOriginal.replace("WizardButton.jpg","WizardButtonWaiting.gif");
        objButton.src = strButtonGraphicNew;
    }

    
    if (i_strRawResultField != "")
        objResultField = document.getElementById(i_strRawResultField);

    if (i_strCodeFieldId != "")
        objIdField = document.getElementById(i_strCodeFieldId);

    if (i_strDescriptionFieldId != "")
        objDescriptionField = document.getElementById(i_strDescriptionFieldId);

    var strURL = strGoBackNlevels(i_intLevels) + "Wizards/SicWizard/SicWizard.aspx?SicSeries=" + i_intSeries.toString();  
    var Args= "";
    var Opts="dialogWidth:800px;dialogHeight:500px;scrollbars:no;centre:yes;status:no;toolbar:no;menubar:no;help:no;";

    var strReturnValue = window.showModalDialog(strURL,Args,Opts);

    if (strReturnValue != null)
        {
        a_strReturnElements = strReturnValue.split("*|*");
        
        if (i_strRawResultField != "")
            objResultField.value = strReturnValue;

        if (i_strCodeFieldId != "")
            objIdField.value = a_strReturnElements[0];

        if (i_strDescriptionFieldId != "")
            // Labels are rendered as spans so they don't have a value property
            objDescriptionField.innerText = a_strReturnElements[1];
  
        }
     else
        {
        if (i_strRawResultField != "")
            objResultField.value = "No value was returned";
        }
   
    if (strButtonGraphicOriginal != "")
        objButton.src = strButtonGraphicOriginal;   
   
    window.event.cancelBubble = true;
    window.event.returnValue = false;
}

function postcodeWizard(i_strRawResultField,i_strAddress1Field,i_strAddress2Field,i_strAddress3Field,i_strTownField,i_strCountyField,i_strPostcodeField,i_strCountryNameField,i_intLevel,i_strButton)
{
    // Pass in empty strings if you don't want to return values to all fields.
    var objAddress1;
    var objAddress2;
    var objAddress3;
    var objTown;
    var objCounty;
    var objPostcode;
    var objCountryDropdown;
    var objResultField;
    
    var strPostCodeUrl = "";
    var strReturnValue;
    var a_strReturnElements;
    
    var objButton;
    var strButtonGraphicOriginal = "";
    var strButtonGraphicNew = "";
    
    
    if (document.getElementById(i_strButton))
    {
        objButton = document.getElementById(i_strButton);
        strButtonGraphicOriginal = objButton.src;
        strButtonGraphicNew = strButtonGraphicOriginal.replace("WizardButton.jpg","WizardButtonWaiting.gif");
        objButton.src = strButtonGraphicNew;
    }

    if (i_strRawResultField != "")
        objResultField = document.getElementById(i_strRawResultField);
    if (i_strAddress1Field != "")
        objAddress1 = document.getElementById(i_strAddress1Field);
    if (i_strAddress2Field != "")
        objAddress2 = document.getElementById(i_strAddress2Field);
    if (i_strAddress3Field != "")
        objAddress3 = document.getElementById(i_strAddress3Field);
    if (i_strTownField != "")  
        objTown  = document.getElementById(i_strTownField);
    if (i_strCountyField != "")
        objCounty = document.getElementById(i_strCountyField);
    if (i_strPostcodeField != "")
        objPostcode = document.getElementById(i_strPostcodeField);
    if (i_strCountryNameField != "")
        objCountryDropdown = document.getElementById(i_strCountryNameField);        

    var Args= "";
    var Opts="dialogWidth:800px;dialogHeight:250px;scrollbars:no;centre:yes;status:no;toolbar:no;menubar:no;help:no;";
    
    if (objPostcode)
        {
        strPostCodeUrl = objPostcode.value.replace(" ","+");
        }

    strReturnValue = window.showModalDialog(strGoBackNlevels(i_intLevel) + "Wizards/PostcodeWizard/PostcodeWizard.aspx?postcode=" + strPostCodeUrl,Args,Opts);

    if (strReturnValue == null)
        {
        if (objResultField)
            objResultField.value = "No value was returned";
        }
    else
        {

        if (objResultField)
            objResultField.value = strReturnValue;

        // You can see the raw string. Now separate the elements and put them in their own fields.
        a_strReturnElements = strReturnValue.split("*|*");

        if (objAddress1)
            objAddress1.value = a_strReturnElements[0];
        if (objAddress2)
            objAddress2.value = a_strReturnElements[1];
        if (objAddress3)
            objAddress3.value = a_strReturnElements[2];
        if (objTown)    
            objTown.value = a_strReturnElements[3];
        if (objCounty)
            objCounty.value = a_strReturnElements[4];
        if (objPostcode)
            objPostcode.value = a_strReturnElements[5];
            
        if (objCountryDropdown)
            {
            setDropdown(objCountryDropdown,a_strReturnElements[6]);
            }
    }
    
    if (strButtonGraphicOriginal != "")
        objButton.src = strButtonGraphicOriginal;
        
    window.event.cancelBubble = true;
    window.event.returnValue = false;
}

function clearTextBox(i_strTextboxId)
{
    var objTextBox = document.getElementById(i_strTextboxId);  

    if(objTextBox)
        {
        objTextBox.value = "";
        }
        
    window.event.cancelBubble = true;
    window.event.returnValue = false;        
}

function setTextBoxValue(i_strTextboxId, i_strNewValue)
{
    var objTextBox = document.getElementById(i_strTextboxId);  

    if(objTextBox)
        {
        objTextBox.value = i_strNewValue;
        }
        
    window.event.cancelBubble = true;
    window.event.returnValue = false;        
}

function siteWizard(i_strRawResultField, i_strSiteFieldId, i_strDescriptionFieldId, i_intLevels, i_strButton, i_blnShowCarrierDropdown)
{
    // Pass in empty strings if you don't want to return values to all fields.
    var objResultField; // used for testing
    var objIdField;
    var objDescriptionField;
    var a_strReturnElements;
    
    var strQuerystring = ""
    if (i_blnShowCarrierDropdown)
        {
            strQuerystring = "?ShowCarrierDropdown=true";
        }
    else
        {
            strQuerystring = "?ShowCarrierDropdown=false";
        }
            
    var objButton;
    var strButtonGraphicOriginal = "";
    var strButtonGraphicNew = "";
    
    if (document.getElementById(i_strButton))
    {
        objButton = document.getElementById(i_strButton);
        strButtonGraphicOriginal = objButton.src;
        strButtonGraphicNew = strButtonGraphicOriginal.replace("WizardButton.jpg","WizardButtonWaiting.gif");
        objButton.src = strButtonGraphicNew;
    }

    
    if (i_strRawResultField != "")
        objResultField = document.getElementById(i_strRawResultField);

    if (i_strSiteFieldId != "")
        objIdField = document.getElementById(i_strSiteFieldId);

    if (i_strDescriptionFieldId != "")
        objDescriptionField = document.getElementById(i_strDescriptionFieldId);

    var strURL = strGoBackNlevels(i_intLevels) + "Wizards/SiteWizard/SiteWizard.aspx" + strQuerystring;  
    //alert(strURL);
    var Args= "";
    var Opts="dialogWidth:850px;dialogHeight:600px;scrollbars:no;centre:yes;status:no;toolbar:no;menubar:no;help:no;";

    var strReturnValue = window.showModalDialog(strURL,Args,Opts);

    if (strReturnValue != null)
        {
            if (strReturnValue.indexOf("*|*") > -1)
            {
                a_strReturnElements = strReturnValue.split("*|*");
                

                if (i_strSiteFieldId != "")
                    objIdField.value = a_strReturnElements[0];

                if (i_strDescriptionFieldId != "")
                    // Labels are rendered as spans so they don't have a value property
                    objDescriptionField.innerText = a_strReturnElements[1];
            }
            else
            {
                if (i_strSiteFieldId != "")
                    objIdField.value = strReturnValue;

                if (i_strDescriptionFieldId != "")
                    objDescriptionField.innerText = "";
            }
            
            if (i_strRawResultField != "")
                objResultField.value = strReturnValue;

        }
     else
        {
        if (i_strRawResultField != "")
            objResultField.value = "No value was returned";
        }
   
    if (strButtonGraphicOriginal != "")
        objButton.src = strButtonGraphicOriginal;   
   
    window.event.cancelBubble = true;
    window.event.returnValue = false;
}


