//default script to run on page load if none set in preferences
function onloadGeneral() {
    setFieldFocus('simpleSearch', 'company_name');

}

function onloadInternationalGeneral() {
    setFieldFocus('internationalOnlineSearchForm', 'intl_search_box');

}

/* Onload script for standard search page. User may have returned to the 
   standard search page via the back button, having set the country dropdown
   to a country other than the default. In this case when they come back to
   the page it will still be set to what they set it to, and if they don't 
   notice, and submit a search, they'll be doing an international search 
   from the domestic search page, which doesn't make sense. See APP-2126 */
function resetCountryDropdown()
{
    var defaultValue;
    var roiFlag = "";
    if (document.getElementById("treat_roi_as_domestic") != null)
        roiFlag = document.getElementById("treat_roi_as_domestic").value;
    if (roiFlag == "true")
    {
        defaultValue = "111";     // ROI
        document.standardSearch.include_england_scotland_wales.checked = false;
        document.standardSearch.include_northern_ireland.checked = false;
        document.standardSearch.include_republic_of_ireland.checked = true;
    }
    else
    {
        defaultValue = "83";      // UK
        document.standardSearch.include_england_scotland_wales.checked = true;
        document.standardSearch.include_northern_ireland.checked = true;
        document.standardSearch.include_republic_of_ireland.checked = false;
    }        
    var selectElement = document.getElementById("country_id_select");
	if (selectElement)
	{
		for (var x = 0; x < selectElement.options.length; x++)
		{
			if (selectElement.options[x].value == defaultValue)
			{
				selectElement.options[x].selected = true;
				break;
			}
		}
	}
}

// Reset a single input element to its default looking it up by id
// rather than its name
function clearElementToDefaultById(form, elementId, resetValue)
{
    var els = form.elements;
    for (var count = 0; count < els.length; count++)
    {
        var el = els[count];
        if (el.id == elementId)
        {
            if ((el.type == "text") || (el.type == "textarea") ||
                (el.type == "hidden") || (el.type == "password"))
            {
                el.value = resetValue;
            }
            else if (el.type == "checkbox")
            {
                if (resetValue == "checked")
                    el.checked = true;
                else
                    el.checked = false;
            }
            else if (el.type == "select-one")
            {
                var opts = el.options;
                for (var count2 = 0; count2 < opts.length; count2++)
                {
                    var opt = opts[count2];
                    if (opt.value == resetValue)
                    {
                        opt.selected = true;
                        break;
                    }
                }
            }
            else if (el.type == "radio")
            {
                if (resetValue == el.value)
                    el.checked = true;
                else
                    el.checked = false;
            }
            // @todo Handle multi-selects?
        }
    }
}

// Clear the specified form back to default values
// Expects elements named 'reset__' + fieldname corresponding to each field
// which is to be reset to contain the value that the field is to be reset to.
// elements are looked up bytheir ids, instead their names
function clearFormToDefaultsById(form)
{
    var els = form.elements;
    for (var count = 0; count < els.length; count++)
    {
        var el = els[count];
        if ((el.name.length > "reset__".length)
            && (el.name.substring(0,7) == "reset__"))
        {
            clearElementToDefaultById(form, el.name.substring(7), el.value);
        }
    }
    setFocusOnFirstTextField(true);
}

//allow item to remain visible while scrolling

function positionit(){

//define universal reference to "staticcontent"
var crossobj=document.all? document.all.staticcontent : document.getElementById("DivFloatText")

//define reference to the body object in IE
var iebody=(document.compatMode && document.compatMode != "BackCompat")? document.documentElement : document.body

//define universal dsoc left point
//var dsocleft=document.all? iebody.scrollLeft : pageXOffset

//define universal dsoc top point
var dsoctop=document.all? iebody.scrollTop : pageYOffset

//if the user is using IE 4+ or Firefox/ NS6+
if (document.all||document.getElementById){
//crossobj.style.left=parseInt(dsocleft)+5+"px"
crossobj.style.top=dsoctop+5+"px"
}
setInterval("positionit()",100)
}



//allow div content to float and remain visible when scrolling vertically

function FloatInitialize(){

var objFloatText
var objBottom
var intWindowHeight
var intBottom
// Allow only MS Internet Explorer to see floating DivFloatText
if (navigator.appName!="Microsoft Internet Explorer") {return};
// Instantiate object pointer to DivFloatText DIV
objFloatText=document.all? document.all.DivFloatText :
document.getElementById? document.getElementById("DivFloatText") :
document.layers? document.DivFloatText : 0
if (!objFloatText) {return}
if (document.all || document.getElementById){
intFloatTextWidth=objFloatText.offsetWidth
intFloatTextHeight=objFloatText.offsetHeight
setInterval("FloatIntoView()",200)
objFloatText.style.visibility="visible"
}
}
function FloatIntoView(){
// Called every 200ms to reposition DivFloatText as the user scrolls
var pageoffsety
var intTop
intWindowHeight=window.innerHeight? window.innerHeight :
document.body.clientHeight;
objBottom=document.all? document.all.DivFloatTextEnd :
document.getElementById? document.getElementById("DivFloatTextEnd") :
document.layers? document.DivFloatTextEnd : 0;
if (!objBottom) {
// First Time through, assume a large number.
intBottom=4000}
else {
// Vertical Pixel Number for bottom of area where FloatText should show
intBottom=objBottom.offsetTop;
}
objFloatText.style.right=140; // Left is always the same on this web page
pageoffsety=document.all? document.body.scrollTop : window.pageYOffset;
intTop=Math.max(pageoffsety + 30, 371); // Minimum of 371 from top of page
if ((intTop + 67 + intFloatTextHeight)<=intBottom) {
objFloatText.style.top=intTop
}
else {
objFloatText.style.top=intBottom - intFloatTextHeight - 67;
}
}

function doSaveAs(){
	if (document.execCommand){
		document.execCommand("SaveAs")
	}
	else {
		alert("Save-feature available only in Internet Exlorer 5.x.")
	}
}

//another script that might work
   var contentMinWidth = 300;
   var contentMaxWidth = 800;
 
   function refreshProp() {
     if (window.opera) {
       var fc = document.getElementById('oFixedContent');
       fc.style.height = (document.getElementById('oFixed').offsetHeight - fc.offsetTop) + 'px';
       document.getElementById('oContent').style.width =
         Math.max(contentMinWidth, document.body.clientWidth - document.getElementById('oFixed').offsetWidth) + 'px';
     }
   }
 
   function scrollHandler() {
     document.getElementById('oFixedContent').style.left = (20-document.body.scrollLeft) + 'px';
   }
 
    function start() {
     if (document.getElementById) {
       onresize = refreshProp;
       onscroll = scrollHandler;
       setInterval("scrollHandler(); refreshProp();", 300);
     }
   }


function setOfflineDeliveryDetailsAndFieldFocus(emailDeliveryMethodId, faxDeliveryMethodId, postDeliveryMethodId, dxDeliveryMethodId)
{
    var deliveryMethodSelection = document.getElementById('deliveryMethodSelect');
    
    if (emailDeliveryMethodId != null)
    {
        toggleRecipientsLayers('recipientsLabel',
                               'recipientsList',
                               'recipientsButtons',
                               'recipientsSelectedList',
                               'recipientsAdd',
                               'recipientsEdit',
                               deliveryMethodSelection,
                               emailDeliveryMethodId);
    }
    
    if (postDeliveryMethodId != null)
    {
        toggleDeliveryAddressLayers('deliveryAddressLabel',
                                    'deliveryAddress1Label','deliveryAddress1',
                                    'deliveryAddress2Label','deliveryAddress2',
                                    'deliveryAddress3Label','deliveryAddress3',
                                    'deliveryTownLabel','deliveryTown',
                                    'deliveryCountyLabel','deliveryCounty',
                                    'deliveryPostcodeLabel','deliveryPostcode',
                                    'deliveryCountryLabel','deliveryCountry',
                                    deliveryMethodSelection,
                                    postDeliveryMethodId);
    }
    
    if (faxDeliveryMethodId != null)
    {  
        toggleDeliveryFaxLayers('deliveryFaxLabel',
                                'deliveryFaxCountryCodeLabel',
                                'deliveryFaxCountryCode',
                                'deliveryFaxAreaCodeLabel',
                                'deliveryFaxAreaCode',
                                'deliveryFaxNumberLabel',
                                'deliveryFaxNumber',
                                deliveryMethodSelection,
                                faxDeliveryMethodId);
    }
        
    if (dxDeliveryMethodId != null)
    {
        toggleDxNumberLayers('dxNumberLabel', 
                             'dxNumber', 
                             'dxRecipientsAdd',
                             deliveryMethodSelection, 
                             dxDeliveryMethodId);
    }        
       
    setFocusOnFirstTextField(true);
}    
    

function toggleRecipientsLayers(layer1, layer2, layer3, layer4, layer5, layer6, deliveryMethodSelection, deliveryTypeId)
{
    var options = deliveryMethodSelection.options;
    var index = deliveryMethodSelection.selectedIndex;
    var emailRecipients = document.getElementById('EmailRecipients');
        
    if(options[index].id == deliveryTypeId || 
       options[index].text.toUpperCase() == "Email".toUpperCase())
    {
        // Display the layers
        if (layer1 != null)
        {
            toggleLayer(layer1, false);
        }
        if (layer2 != null)
        {        
            toggleLayer(layer2, false);
        }
        if (layer3 != null)
        {
            toggleLayer(layer3, false);
        }
        if (layer4 != null)
        {
            toggleLayer(layer4, false);
        }
        if (layer5 != null)
        {
            toggleLayer(layer5, false);
        }
        if (layer6 != null)
        {
            toggleLayer(layer6, false);
        }
        // Enable so that the valuse if selected are posted.
        emailRecipients.disabled = false;
    } 
    else 
    {
        // Hide the layers
        if (layer1 != null)
        {
            toggleLayer(layer1, true);
        }
        if (layer2 != null)
        {        
            toggleLayer(layer2, true);
        }
        if (layer3 != null)
        {
            toggleLayer(layer3, true);
        }
        if (layer4 != null)
        {
            toggleLayer(layer4, true);
        }
        if (layer5 != null)
        {
            toggleLayer(layer5, true);
        }
        if (layer6 != null)
        {
            toggleLayer(layer6, true);
        }
        // Disable so that the values if selected are not posted.
        emailRecipients.disabled = true;
    }
}

    