// ----------------------------------------------
// Erstellt:  10.05.2006
// Anmerkung: Verschiedene Funktionen
// Autor:     (c) Andreas 'decoman' Fay
// ----------------------------------------------


var blnIE                                        =  self.innerHeight ? false : true;

// Browse
function openBrowseWindow(strParent, strURL)
{
    switch (strParent)
    {
        case "firm":
            strURLAppendix                       =  "";
            break;
    }

    var BrowseWindow                             =  window.open(strURL+strURLAppendix, "browseWindow", "width=970,height=600,left=100,top=100,location=no,menubar=no,resizable=no,scrollbars=no,status=no,toolbar=no,dependent=yes,hotkeys=no");
    BrowseWindow.focus();
}


function openBrowseWindow4Information(strParent, strURL)
{
    switch (strParent)
    {
        case "firm":
            strURLAppendix                       =  document.getElementsByName('firm_name')[0].value;
            break;
    }

    var BrowseWindow                             =  window.open(strURL+"&needle="+strURLAppendix, "browseWindow", "width=1,height=1,left=10000,top=100,location=no,menubar=no,resizable=no,scrollbars=no,status=no,toolbar=no,dependent=yes,hotkeys=no");
    BrowseWindow.focus();
}


function closeBrowseWindow(strParent, arrInformation)
{
    window.close();

    switch (strParent)
    {
        case "firm":
            if (arrInformation.length == 0)
            {
                opener.document.getElementsByName('firm_id')[0].value                  =  "";
                opener.document.getElementsByName('firm_road')[0].readOnly             =  false;
                swapClassOpener('firm_road', '');
                opener.document.getElementsByName('firm_postalcode')[0].readOnly       =  false;
                swapClassOpener('firm_postalcode', '');
                opener.document.getElementsByName('firm_town')[0].readOnly             =  false;
                swapClassOpener('firm_town', '');
                opener.document.getElementsByName('firm_country')[0].disabled          =  false;
                swapClassOpener('firm_country', '');
                opener.document.getElementsByName('firm_type')[0].disabled             =  false;
                swapClassOpener('firm_type', '');
                opener.document.getElementsByName('firm_website')[0].readOnly          =  false;
                swapClassOpener('firm_website', '');

                opener.document.getElementById('firm_hint_mismatch').style.display     =  "block";
                opener.document.getElementById('firm_hint_match').style.display        =  "none";
            }
            else
            {
                opener.document.getElementsByName('firm_id')[0].value                  =  arrInformation[0];
                opener.document.getElementsByName('firm_name')[0].value                =  arrInformation[1];
                opener.document.getElementsByName('firm_road')[0].value                =  arrInformation[2];
                opener.document.getElementsByName('firm_postalcode')[0].value          =  arrInformation[3];
                opener.document.getElementsByName('firm_town')[0].value                =  arrInformation[4];
                opener.document.getElementsByName('firm_country')[0].value             =  arrInformation[5];
                opener.document.getElementsByName('firm_type')[0].value                =  arrInformation[6];
                opener.document.getElementsByName('firm_website')[0].value             =  arrInformation[7];
                opener.document.getElementsByName('firm_road')[0].readOnly             =  true;
                swapClassOpener('firm_road', 'readonly');
                opener.document.getElementsByName('firm_postalcode')[0].readOnly       =  true;
                swapClassOpener('firm_postalcode', 'readonly');
                opener.document.getElementsByName('firm_town')[0].readOnly             =  true;
                swapClassOpener('firm_town', 'readonly');
                opener.document.getElementsByName('firm_country')[0].disabled          =  true;
                swapClassOpener('firm_country', 'readonly');
                opener.document.getElementsByName('firm_type')[0].disabled             =  true;
                swapClassOpener('firm_type', 'readonly');
                opener.document.getElementsByName('firm_website')[0].readOnly          =  true;
                swapClassOpener('firm_website', 'readonly');

                opener.document.getElementById('firm_hint_mismatch').style.display     =  "none";
                opener.document.getElementById('firm_hint_match').style.display        =  "block";
            }
            break;
    }
}


// ----------------------------------------------
// Function
// ----------------------------------------------
// Name:        bowdlerizeClass
// Description:
// Input:       Field,
//              Classname
// Output:
// ----------------------------------------------
// Version:     0.1
// ----------------------------------------------
// ChangeLog
// ----------------------------------------------
// v0.1 (08.05.2007)
// ----------------------------------------------
function bowdlerizeClass(objField, strClassName)
{
    objField.className                           =  objField.className.replace(strClassName, "");
}


// ----------------------------------------------
// Function
// ----------------------------------------------
// Name:        checkSelectedText
// Description:
// Input:       Field-Id
// Output:      TRUE if text is selected,
//              FALSE if no text is selected
// ----------------------------------------------
// Version:     0.1
// ----------------------------------------------
// ChangeLog
// ----------------------------------------------
// v0.1 (10.05.2007)
// ----------------------------------------------
function checkSelectedText(strField)
{
    objField                                     =  document.getElementById(strField);

    // IE
    if (document.selection)
    {
        objField.focus();
        sel                                      =  document.selection.createRange();
        if (sel.text.length)
            return true;
        else
            return false;
    }

    // MOZILLA/NETSCAPE
    else if (objField.selectionStart || objField.selectionStart == "0")
    {
        var startPos                             =  objField.selectionStart;
        var endPos                               =  objField.selectionEnd;

        if (startPos != endPos)
            return true;
        else
            return false;
    }
}


// ----------------------------------------------
// Function
// ----------------------------------------------
// Name:        closeAdvancedSearch
// Description:
// Input:       Layer
// Output:
// ----------------------------------------------
// Version:     0.1
// ----------------------------------------------
// ChangeLog
// ----------------------------------------------
// v0.1 (25.05.2007)
// ----------------------------------------------
function closeAdvancedSearch(strLayerId)
{
    objLayer                                  =  document.getElementById(strLayerId);
    objLayer.style.zIndex                     =  -1;
    objLayer.style.display                    =  "none";
}


// ----------------------------------------------
// Function
// ----------------------------------------------
// Name:        closeImageView
// Description:
// Input:       
// Output:
// ----------------------------------------------
// Version:     0.1
// ----------------------------------------------
// ChangeLog
// ----------------------------------------------
// v0.1 (12.06.2007)
// ----------------------------------------------
function closeImageView(strLayerId)
{
    objLayer                                  =  document.getElementById("image_view");
    objLayer.style.zIndex                     =  -1;
    objLayer.style.display                    =  "none";
}


// ----------------------------------------------
// Function
// ----------------------------------------------
// Name:        closeImageView
// Description:
// Input:       
// Output:
// ----------------------------------------------
// Version:     0.2
// ----------------------------------------------
// ChangeLog
// ----------------------------------------------
// v0.1 (12.06.2007)
// v0.2 (23.08.2007)
// ----------------------------------------------
function closeImageView(strLayerId)
{
    objLayer                                  =  document.getElementById("image_view");
    objIframe                                 =  document.getElementById("image_view_iframe");
    
    objLayer.style.zIndex                     =  -1;
    objIframe.style.zIndex                    =  -1;
    objLayer.style.display                    =  "none";
    objIframe.style.display                   =  "none";
}


// ----------------------------------------------
// Function
// ----------------------------------------------
// Name:        disableFields
// Description:
// Input:       Fields
// Output:
// ----------------------------------------------
// Version:     0.1
// ----------------------------------------------
// ChangeLog
// ----------------------------------------------
// v0.1 (11.04.2007)
// ----------------------------------------------
function disableFields(arrField)
{
    for (var intFieldId in arrField)
    {
        for (var i=0; i<document.getElementsByName(arrField[intFieldId]).length; i++)
        {
            if ((document.getElementsByName(arrField[intFieldId])[i].type == "radio")
                || (document.getElementsByName(arrField[intFieldId])[i].type == "checkbox")
                || (document.getElementsByName(arrField[intFieldId])[i].type == "select-one"))
                document.getElementsByName(arrField[intFieldId])[i].disabled
                                                 =  true;
            else if (document.getElementsByName(arrField[intFieldId])[i].name)
            {
                document.getElementsByName(arrField[intFieldId])[i].readOnly
                                                 =  true;
                document.getElementsByName(arrField[intFieldId])[i].className
                                                 =  "readonly";
            }
        }
    }
}


// ----------------------------------------------
// Function
// ----------------------------------------------
// Name:        enableFields
// Description:
// Input:       Fields
// Output:
// ----------------------------------------------
// Version:     0.1
// ----------------------------------------------
// ChangeLog
// ----------------------------------------------
// v0.1 (11.04.2007)
// ----------------------------------------------
function enableFields(arrField)
{
    for (var intFieldId in arrField)
    {
        for (var i=0; i<document.getElementsByName(arrField[intFieldId]).length; i++)
        {
            if ((document.getElementsByName(arrField[intFieldId])[i].type == "radio")
                || (document.getElementsByName(arrField[intFieldId])[i].type == "checkbox")
                || (document.getElementsByName(arrField[intFieldId])[i].type == "select-one"))
                document.getElementsByName(arrField[intFieldId])[i].disabled
                                                 =  false;
            else if (document.getElementsByName(arrField[intFieldId])[i].name)
            {
                document.getElementsByName(arrField[intFieldId])[i].readOnly
                                                 =  false;
                document.getElementsByName(arrField[intFieldId])[i].className
                                                 =  "";
            }
        }
    }
}


// ----------------------------------------------
// Function
// ----------------------------------------------
// Name:        formatTextInArea
// Description:
// Input:       Field-Id,
//              Prefix,
//              Suffix
// Output:
// ----------------------------------------------
// Version:     0.1
// ----------------------------------------------
// ChangeLog
// ----------------------------------------------
// v0.1 (10.05.2007)
// ----------------------------------------------
function formatTextInArea(strField, strPrefix, strSuffix)
{
    objField                                     =  document.getElementById(strField);

    // IE
    if (document.selection)
    {
        objField.focus();
        sel                                      =  document.selection.createRange();

        // Delete format
        if ((sel.text.substr(0, strPrefix.length) == strPrefix) && (sel.text.substr(sel.text.length-strSuffix.length) == strSuffix))
        {
            sel.text                             =  sel.text.substring(strPrefix.length, sel.text.length-strSuffix.length);
        }
        else
        {
            oldSel                               =  sel.duplicate();
            sel.moveStart("character", strPrefix.length*-1);
            sel.moveEnd("character", strSuffix.length);

            if ((sel.text.substr(0, strPrefix.length) == strPrefix) && (sel.text.substr(sel.text.length-strSuffix.length) == strSuffix))
            {
                sel.text                         =  sel.text.substring(strPrefix.length, sel.text.length-strSuffix.length);
            }
            // Add format
            else
            {
                oldSel.text                      =  strPrefix+oldSel.text+strSuffix;
            }
        }
    }

    // MOZILLA/NETSCAPE
    else if (objField.selectionStart || objField.selectionStart == "0")
    {
        var startPos                             =  objField.selectionStart;
        var endPos                               =  objField.selectionEnd;

        // Delete format
        if ((objField.value.substring(startPos, endPos).substr(0, strPrefix.length) == strPrefix) && (objField.value.substring(startPos, endPos).substr(objField.value.substring(startPos, endPos).length-strSuffix.length) == strSuffix))
        {
            objField.value                       =  objField.value.substring(0, startPos)
                                                    + objField.value.substring(startPos+strPrefix.length, endPos-strSuffix.length)
                                                    + objField.value.substring(endPos, objField.value.length);
        }
        else if ((objField.value.substring(0, startPos).substr(objField.value.substring(0, startPos).length-strPrefix.length) == strPrefix) && (objField.value.substring(endPos, objField.value.length).substr(0, strSuffix.length) == strSuffix))
        {
            objField.value                       =  objField.value.substring(0, startPos-strPrefix.length)
                                                    + objField.value.substring(startPos, endPos)
                                                    + objField.value.substring(endPos+strSuffix.length, objField.value.length);
        }
        // Add format
        else
        {
            objField.value                       =  objField.value.substring(0, startPos)
                                                    + strPrefix
                                                    + objField.value.substring(startPos, endPos)
                                                    + strSuffix
                                                    + objField.value.substring(endPos, objField.value.length);
        }
    }
}


// ----------------------------------------------
// Function
// ----------------------------------------------
// Name:        formatTextInArea_withCheck
// Description: see also formatTextInArea
//              added check for selected text
// Input:       Field-Id,
//              Prefix,
//              Suffix,
//              Errormessage
// Output:
// ----------------------------------------------
// Version:     0.1
// ----------------------------------------------
// ChangeLog
// ----------------------------------------------
// v0.1 (10.05.2007)
// ----------------------------------------------
function formatTextInArea_withCheck(strField, strPrefix, strSuffix, strMessage)
{
    if (checkSelectedText(strField))
        formatTextInArea(strField, strPrefix, strSuffix);
    else
        alert(strMessage);
}


// ----------------------------------------------
// Function
// ----------------------------------------------
// Name:        getInnerDimensions
// Description: 
// Input:
// Output:      (arr) x: innerWidth
//                    y: innerHeight
// ----------------------------------------------
// Version:     0.2
// ----------------------------------------------
// ChangeLog
// ----------------------------------------------
// v0.1 (26.07.2007)
// v0.2 (20.10.2007)
// ----------------------------------------------
function getInnerDimensions()
{
    var x,y;
    var arrDimension                             =  new Array();
    
    // All except Explorer
    if (self.innerHeight)
    {
    	x                                        =  self.innerWidth;
    	y                                        =  self.innerHeight;
    }
    
    // Explorer 6 Strict Mode
    else if (document.documentElement && document.documentElement.clientHeight)
    {
    	x                                        =  document.documentElement.clientWidth;
    	y                                        =  document.documentElement.clientHeight;
    }
    
    // Other Explorers
    else if (document.body)
    {
    	x                                        =  document.body.clientWidth;
    	y                                        =  document.body.clientHeight;
    }
    
    arrDimension['x']                            =  x;
    arrDimension['y']                            =  y;
    
    return arrDimension;
}


// ----------------------------------------------
// Function
// ----------------------------------------------
// Name:        getPointerPosition
// Description:
// Input:
// Output:      Pointer position
// ----------------------------------------------
// Version:     0.1
// ----------------------------------------------
// ChangeLog
// ----------------------------------------------
// v0.1 (19.04.2007)
// ----------------------------------------------
function getPointerPosition(mousemove)
{
    if (!mousemove)
        mousemove                                =  window.event;

    arrPointer                                   =  new Array();

    if (self.pageYOffset) // all except Explorer
    {
        x                                       =  self.pageXOffset;
        y                                       =  self.pageYOffset;
    }
    else if (document.documentElement && document.documentElement.scrollTop) // Explorer 6 Strict
    {
        x                                        =  document.documentElement.scrollLeft;
        y                                        =  document.documentElement.scrollTop;
    }
    else if (document.body) // all other Explorers
    {
        x                                        =  document.body.scrollLeft;
        y                                        =  document.body.scrollTop;
    }

    arrPointer["x"]                              =  mousemove.clientX+x;
    arrPointer["y"]                              =  mousemove.clientY+y;

    return arrPointer;
}


// ----------------------------------------------
// Function
// ----------------------------------------------
// Name:        insertAtCursor
// Description:
// Input:       Field,
//              Text
// Output:      Offset at the end of new text
// ----------------------------------------------
// Version:     0.1
// ----------------------------------------------
// ChangeLog
// ----------------------------------------------
// v0.1 (19.04.2007)
// ----------------------------------------------
function insertAtCursor(objField, strValue)
{
    // IE
    if (document.selection)
    {
        objField.focus();
        sel                                      =  document.selection.createRange();
        sel.text                                 =  strValue;
    }

    // MOZILLA/NETSCAPE
    else if (objField.selectionStart || objField.selectionStart == "0")
    {
        var startPos                             =  objField.selectionStart;
        var endPos                               =  objField.selectionEnd;

        objField.value                           =  objField.value.substring(0, startPos)
                                                    + strValue
                                                    + objField.value.substring(endPos, objField.value.length);
    }

    else
        objField.value                           += objField;

    return endPos+strValue.length;
}


// ----------------------------------------------
// Function
// ----------------------------------------------
// Name:        insertEmailVariable
// Description:
// Input:       Fields
// Output:
// ----------------------------------------------
// Version:     0.1
// ----------------------------------------------
// ChangeLog
// ----------------------------------------------
// v0.1 (19.04.2007)
// ----------------------------------------------
function insertEmailVariable(objField, strValue, objActivator)
{
    intOffset                                    =  insertAtCursor(objField, strValue);

    objActivator.selectedIndex                   =  0;
    setCursor(objField, intOffset);
}


// ----------------------------------------------
// Function
// ----------------------------------------------
// Name:        installSearchEngine
// Description: (external from firefox)
// Input:       Language
// Output:
// ----------------------------------------------
// Version:     0.1
// ----------------------------------------------
// ChangeLog
// ----------------------------------------------
// v0.1 (26.05.2007)
// ----------------------------------------------
function installSearchEngine(strLanguage) {
 if (window.external && ("AddSearchProvider" in window.external)) {
   // Firefox 2 and IE 7, OpenSearch
   window.external.AddSearchProvider("http://www.neemoy.com/files/search-plugins/neemoy_"+strLanguage+".xml");
 /*} else if (window.sidebar && ("addSearchEngine" in window.sidebar)) {
   // Firefox <= 1.5, Sherlock
   window.sidebar.addSearchEngine("http://example.com/search-plugin.src",
                                  "http://example.com/search-icon.png",
                                  "Search Plugin", "");*/
 } else {
   // No search engine support (IE 6, Opera, etc).
   alert("No search engine support");
 }
}


// ----------------------------------------------
// Function
// ----------------------------------------------
// Name:        number_format
// Description: 
// Input:       (dbl) Number
//              (int) Decimals
//              (str) Decimals Point
//              (str) Thousands Seperator
// Output:      (str) Formatted number
// ----------------------------------------------
// Version:     0.1
// ----------------------------------------------
// ChangeLog
// ----------------------------------------------
// v0.1 (16.10.2007)
// ----------------------------------------------
function number_format(dblNumber, intDecimals, strDecPoint, strThousandsSeperator)
{
    // Is number negativ
    if (dblNumber < 0)
    {
        blnNegative                              =  true;
        dblNumber                                =  Math.abs(dblNumber);
    }
    else
        blnNegative                              =  false;

    // Ensure that dblNumber is at least interger
    dblNumber                                    =  dblNumber * 1;
    
    // Get integer part of dblNumber
    intNumber                                    =  Math.floor(dblNumber);
    
    // Round to given
    if (intDecimals)
        dblNumber                                =  Math.round(dblNumber * intDecimals * 10) / intDecimals / 10;
        
    // Set numbers to be string
    dblNumber                                    =  dblNumber + "";
    intNumber                                    =  intNumber + "";
    
    
    // Set decimal-part -------------------------
    // Check if number is double
    if (intNumber != dblNumber)
    {
        strDecimalPart                           =  dblNumber.substr(intNumber.length + 1, dblNumber.length - intNumber.length - 1);
        
        for (i=strDecimalPart.length; i<intDecimals; i++)
            strDecimalPart                       += "0";
    }
    
    else
    {
        strDecimalPart                           =  "";
        
        for (i=0; i<intDecimals; i++)
            strDecimalPart                       += "0";
    }
    
    // Treat thousandsseperator -----------------
    strFullPart                                  =  "";
    i                                            =  intNumber.length;
    while (i > 0)
    {
        strFullPart                              =  intNumber.substr((i<3) ? 0 : i-3, (i<3) ? i : 3) + ((i<intNumber.length) ? strThousandsSeperator : "") + strFullPart;
        i                                        -= 3;
    }
    
    // Output -----------------------------------
    if (intDecimals)
        strDecimalPart                           =  strDecPoint + strDecimalPart;
        
    if (blnNegative)
        strFullPart                              =  "-" + strFullPart;
        
    return strFullPart + strDecimalPart;
}


// ----------------------------------------------
// Function
// ----------------------------------------------
// Name:        openAdvancedSearch
// Description:
// Input:       Layer,
//              Event
// Output:
// ----------------------------------------------
// Version:     0.1
// ----------------------------------------------
// ChangeLog
// ----------------------------------------------
// v0.1 (25.05.2007)
// ----------------------------------------------
function openAdvancedSearch(strLayerId, event)
{
    objLayer                                  =  document.getElementById(strLayerId);

    // Position layer
    arrPointer                                =  getPointerPosition(event);
    objLayer.style.left                       =  arrPointer['x']-300 + "px";
    objLayer.style.top                        =  arrPointer['y']+10 + "px";

    objLayer.style.zIndex                     =  3;
    objLayer.style.display                    =  "block";
}


// ----------------------------------------------
// Function
// ----------------------------------------------
// Name:        openImageView
// Description:
// Input:       (str) Imagesource,
//              (int) Imagewidth,
//              (int) Imageheight
// Output:
// ----------------------------------------------
// Version:     0.4
// ----------------------------------------------
// ChangeLog
// ----------------------------------------------
// v0.1 (12.06.2007)
// v0.2 (14.07.2007)
// v0.3 (23.08.2007)
// v0.4 (24.08.2007)
// ----------------------------------------------
function openImageView(strImage, intWidth, intHeight)
{
    closeImageView();
    
    
    objLayer                                     =  document.getElementById("image_view");
    objIframe                                    =  document.getElementById("image_view_iframe");
    objSubLayer                                  =  document.getElementById("image_view_img");
    
    objSubLayer.style.height                     =  intHeight;
    objSubLayer.style.width                      =  intWidth;
    
    objIframe.style.height                       =  intHeight*1 +(blnIE ? 30 : 18);
    objIframe.style.width                        =  intWidth*1 +(blnIE ? 14 : 4);

    if (objLayer.style.display == "none")
    {
        arrDimension                             =  getInnerDimensions();
        arrOffset                                =  page_scroll_offset_get();

        // Position layer
        objLayer.style.left                      =  arrDimension['x']/2 - intWidth/2 + (blnIE ? arrOffset['x'] : 0);
        objIframe.style.left                     =  arrDimension['x']/2 - intWidth/2 + (blnIE ? arrOffset['x'] : 0);
        objLayer.style.top                       =  arrDimension['y']/2 - intHeight/2 + (blnIE ? arrOffset['y'] : 0);
        objIframe.style.top                      =  arrDimension['y']/2 - intHeight/2 + (blnIE ? arrOffset['y'] : 0);
        
        objSubLayer.innerHTML                    =  '<a href="#" onClick="closeImageView(); return false;"><img src="'+strImage+'" alt="" width="'+intWidth+'" height="'+intHeight+'"></a>';

        objLayer.style.zIndex                    =  3;
        objIframe.style.zIndex                   =  2;
        objLayer.style.display                   =  "block";
        objIframe.style.display                  =  "block";
        
        // Fade in
        objFader                                 =  new fader(objSubLayer, "objFader");
        objFader.stepFade                        =  0.05;
        objFader.stepTime                        =  10;
        objFader.fadeIn();
    }
}


// ----------------------------------------------
// Function
// ----------------------------------------------
// Name:        openPreview
// Description:
// Input:       Fields
// Output:
// ----------------------------------------------
// Version:     0.1
// ----------------------------------------------
// ChangeLog
// ----------------------------------------------
// v0.1 (19.04.2007)
// ----------------------------------------------
function openPreview(strLayerId, strContentId, event)
{
    objLayer                                  =  document.getElementById(strLayerId);
    document.getElementById(strLayerId+"_content").innerHTML
                                              =  document.getElementById(strContentId).value.replace(/\n/g, "<br>");

    // Position layer
    arrPointer                                =  getPointerPosition(event);
    objLayer.style.left                       =  arrPointer['x']-420 + "px";
    objLayer.style.top                        =  arrPointer['y']-200 + "px";

    objLayer.style.zIndex                     =  3;
    objLayer.style.display                    =  "block";
}


// ----------------------------------------------
// Function
// ----------------------------------------------
// Name:        openPreview_byCoordinates
// Description:
// Input:       Fields
// Output:
// ----------------------------------------------
// Version:     0.1
// ----------------------------------------------
// ChangeLog
// ----------------------------------------------
// v0.1 (21.10.2007)
// ----------------------------------------------
function openPreview_byCoordinates(strLayerId, strContentId, arrCoordinates)
{
    objLayer                                  =  document.getElementById(strLayerId);
    document.getElementById(strLayerId+"_content").innerHTML
                                              =  document.getElementById(strContentId).value.replace(/\n/g, "<br>");

    // Position layer
    objLayer.style.left                       =  arrCoordinates[0] + "px";
    objLayer.style.top                        =  arrCoordinates[1] + "px";

    objLayer.style.zIndex                     =  3;
    objLayer.style.display                    =  "block";
}


// ----------------------------------------------
// Function
// ----------------------------------------------
// Name:        page_scroll_offset_get
// Description: 
// Input:
// Output:      (arr) x: offsetWidth
//                    y: offsetHeight
// ----------------------------------------------
// Version:     0.1
// ----------------------------------------------
// ChangeLog
// ----------------------------------------------
// v0.1 (22.08.2007)
// ----------------------------------------------
function page_scroll_offset_get()
{
    var x,y;
    var arrOffset                                =  new Array();
    
    // All except Explorer
    if (self.pageYOffset) // all except Explorer
    {
    	x                                        =  self.pageXOffset;
    	y                                        =  self.pageYOffset;
    }
    
    // Explorer 6 Strict Mode
    else if (document.documentElement && document.documentElement.scrollTop)
    {
    	x                                        =  document.documentElement.scrollLeft;
    	y                                        =  document.documentElement.scrollTop;
    }
    
    // Other Explorers
    else if (document.body)
    {
    	x                                        =  document.body.scrollLeft;
    	y                                        =  document.body.scrollTop;
    }
    
    arrOffset['x']                               =  x;
    arrOffset['y']                               =  y;

    return arrOffset;
}


// ----------------------------------------------
// Function
// ----------------------------------------------
// Name:        setCursor
// Description:
// Input:       Field,
//              Offset
// Output:
// ----------------------------------------------
// Version:     0.1
// ----------------------------------------------
// ChangeLog
// ----------------------------------------------
// v0.1 (19.04.2007)
// ----------------------------------------------
function setCursor(objField, intOffset)
{
    objField.focus();

    // IE
    if (document.selection)
    {
        sel                                      =  document.selection.createRange();
    }

    // MOZILLA/NETSCAPE
    else if (objField.selectionStart || objField.selectionStart == "0")
    {
        objField.selectionStart                  =  intOffset;
        objField.selectionEnd                    =  intOffset;
    }
}


// ----------------------------------------------
// Function
// ----------------------------------------------
// Name:        swapAdvancedSearch
// Description:
// Input:       Object icon,
//              Image maximize,
//              Image minimize,
//              Event
// Output:
// ----------------------------------------------
// Version:     0.1
// ----------------------------------------------
// ChangeLog
// ----------------------------------------------
// v0.1 (25.05.2007)
// ----------------------------------------------
function swapAdvancedSearch(objIcon, strImageMax, strImageMin, event)
{
    strLayerId                                   =  "search_advanced";

    objLayer                                     =  document.getElementById(strLayerId);

    if (objLayer.style.display == "none")
    {
        objIcon.src                              =  strImageMin;
        openAdvancedSearch(strLayerId, event);
    }
    else
    {
        objIcon.src                              =  strImageMax;
        closeAdvancedSearch(strLayerId);
    }
}
