﻿

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_strButton)
{
    // 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_strButton))
    {
        objButton = document.getElementById(i_strButton);
        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 ;
            
        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)
{

    // 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
            //}
            // DB : At 9 Oct 2008 the mode only changes the title. In future it may
            // be developed to do more.
    
    var objMaterialId;
    var objMaterialName;
    var objCWC;
    var objQty;
    var objResultField;
    
    var strReturnValue;
    var a_strReturnElements;
    
    var strButtonGraphicOriginal = "";
    var strButtonGraphicNew = "";
    
    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_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/MaterialWizard/MaterialWizard.aspx?DataMode=" + i_strMode,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 sicCodeWizard(i_strRawResultField, i_strCodeFieldId, i_strDescriptionFieldId, i_intLevels, i_strButton)
{
    // 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" 
    var Args= "";
    var Opts="dialogWidth:800px;dialogHeight:100px;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_strCompanyNameField,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 objCompany;
    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_strCompanyNameField != "")
        objCompany  = document.getElementById(i_strCompanyNameField);        

    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 (objCompany)
            objCompany.value = 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;        
}



