document.observe("dom:loaded", function() {
    init()
});

//preload main nav background image

var scrollTimer
var scrollToggle = 0
var slowScroll = 200
var fastScroll = 50
var scrollCount = 0
var scrollSpeed = slowScroll
var prodObservers = []
var solObservers = []
var ignoreScroll = 0
var tickerPos = 0
var tickerFinancialPos = 0
var mainNavTimer
var mainNavOpening = 0
var mainNavStop = 0
var rootPos
var months = ",January,February,March,April,May,June,July,August,September,October,November,December".split(",")
var now = new Date()
var calParent
var leftMenu
var tmpImg = []


function setCookie(c_name, value, expiredays) {
    var exdate = new Date();
    exdate.setDate(exdate.getDate() + expiredays);
    document.cookie = c_name + "=" + escape(value) +
    ((expiredays == null) ? "" : ";expires=" + exdate.toGMTString());
}

function getCookie(c_name) {
    if (document.cookie.length > 0) {
        c_start = document.cookie.indexOf(c_name + "=");
        if (c_start != -1) {
            c_start = c_start + c_name.length + 1;
            c_end = document.cookie.indexOf(";", c_start);
            if (c_end == -1) c_end = document.cookie.length;
            return unescape(document.cookie.substring(c_start, c_end));
        }
    }
    return "";
}



function init() {

    
    
    //all client events are registered here
    rootPos = findPos($('root'))

    //determine if this is the extranet
    if (document.styleSheets[0].href.indexOf('extranet') > 0) {
        if ($('prodNavAnchor')) {
            $('prodNavAnchor').addClassName('nav905')
        }
        if ($('solNavAnchor')) {
            $('solNavAnchor').addClassName('nav905')
        }
    }


    //hook up events for search box and search button
    if ($('search')) {
        $('search').observe("keypress", GoSearchSubmit)

    }

    if ($('buttonSearch')) {
        $('buttonSearch').observe("click", GoSearch)
    }


    //hook up events for left navigation
    //if ($('leftNav')) {
    //$('leftNav').select('li').each(function(element) {
    //element.observe("click", leftNav)
    //})
    //}

    //hook up events for main navigation

    if ($('mainNav')) {
        $('mainNav').select('.sub1').each(function(element) {
            element.observe("mouseover", mainNavInit)
            element.observe("mouseout", mainNavHideTimer)
        })
        $('mainNav').select('.mainSub').each(function(element) {
            element.observe("mouseover", mainSubActive)
            element.observe("mouseout", mainNavHideTimer)
        })
    }


    //hook up events for block navigation
    if ($('homeNav')) {
        $('homeNav').select('.homeTile').each(function(element) {
            element.observe("click", expandBlock)
        })
    }



    //product navigation links
    if ($('browseProducts')) {
        try {
            $('browseProducts').observe("click", prodNavBar)
        }
        catch (e) {
            $('browseProducts').hide()
        }
    }

    //product navigation links
    if ($('browseSolutions')) {
        try {
            $('browseSolutions').observe("click", solNavBar)
        }
        catch (e) {
            $('browseSolutions').hide()
        }
    }

    if ($('prodNavBar')) {
        $('prodNavBar').select('li').each(function(element) {
            element.observe("click", prodNavPanel)
        })
    }


    if ($('prodNavPanel')) {
        $('prodNavPanel').select('li').each(function(element) {
            element.observe("click", prodNav)
        })
    }

    if ($('solNavBar')) {
        $('solNavBar').select('li').each(function(element) {
            element.observe("click", solNavPanel)
        })
    }


    if ($('solNavPanel')) {
        $('solNavPanel').select('li').each(function(element) {
            element.observe("click", solNav)
        })
    }

    if ($('emailFriend')) {
        $('emailFriend').observe("click", emailFriend)
    }



    //show prod nav bar with page load
    if ($('prodNavAnchor')) {
        showProdNavBar()
    }

    //show sol nav bar with page load
    if ($('solNavAnchor')) {
        showSolNavBar()
    }

    //news ticker
    if ($('ticker')) {
        $('ticker').select('li').each(function(element) {
            element.hide()
        })
        $('ticker').down('li').show()
        newsTicker()
    }

    //stock symbol drop-down
    if ($('newsBar')) {
        $('newsBar').down('select').observe("change", showStock)
    }

    //social nav icons
    if ($('socialNav')) {
        $('socialNav').select('img').each(function(element) {
            element.observe("mouseover", socialNav)
            element.observe("mouseout", socialNavOut)
        })

    }

    //auto-clearing text fields
    $$('.autoClear').each(function(element) {
        element.observe("focus", autoClear)
        element.observe("blur", autoClear)
        $(element).store("defaultText", $(element).value)
    })

    //hook up tabbed interface

    if ($$('.tabs')) {
        $$('.tabs').each(function(element) {
            element.select('a').each(function(element) {
                element.observe("click", setTab)
            })
        })
    }

    //browse button
    if ($('browseProducts')) {
        $('browseProducts').down('a').observe("mouseover", browseButton)
        $('browseProducts').down('a').observe("mouseout", browseButton)
    }

    if ($('browseSolutions')) {
        $('browseSolutions').down('a').observe("mouseover", browseButton)
        $('browseSolutions').down('a').observe("mouseout", browseButton)
    }

    //help desk button
    if ($('helpButton')) {
        $('helpButton').observe("click", function() { openHelp(false); })
    }

    //help desk button
    if ($('answerButton')) {
        $('answerButton').observe("click", openKBAnswer)
    }

    //auto-open alerts if there is only one result
    if ($('result')) {
        if ($('result').select('.alertListSection').toArray().length == 1) {
            alertAutoLoad()
        }
    }

    //Definition pop-up
    if ($('root').select('.def')) {

        $('root').select('.def').each(function(element) {
            element.observe("click", openDefinition)
        })
    }

    $('root').select('.perm').each(function(element) {
        var tipImg = $(element).previous('img')
        //alert($(element).previous())
        tipImg.observe("mouseover", roleTip)
        tipImg.observe("mouseout", roleTipClear)        
        //alert("###")
    })

    $('root').select('.helptip').each(function(element) {
        //alert('here')
        var tipImg = $(element).previous('img')
        //alert($(element).previous())
        tipImg.observe("mouseover", roleTipNqg)
        tipImg.observe("mouseout", roleTipClearNqg)
        //alert("###")
    })

    //set our own styles for issue tracker tab
    //$('zenbox_tab').style.backgroundImage = "url(/Images/BGIssueTracker.png)"
    if ($('zenbox_tab')) {
        new Effect.Opacity('zenbox_tab', { to: .3, duration: 0 })
    }

    //initialize calendar control
    if ($('cal')) {
        var selYear
        var yCount = 0
        for (var x = now.getFullYear() - 3; x < now.getFullYear() + 3; x++) {
            $('dpyr')[$('dpyr').length] = new Option(x)
            if (x == now.getFullYear()) {
                selYear = yCount
            }
            yCount++

        }
        //build month drop-down
        for (var x = 1; x < 13; x++) {
            $('dpmo')[$('dpmo').length] = new Option(months[x], x)
        }
        $('dpmo').selectedIndex = now.getMonth()
        $('dpyr').selectedIndex = selYear

        //insert calendar icon and hook up click event
        $('root').select('.datePicker').each(function(element) {
            element.observe("click", showCal)
            element.insert({ after: "&nbsp;<a href='javascript:;// open calendar' onclick='showCal2(this)'><img style='margin-bottom:-3px;' src='/Images/btnCal.gif'></a>" })
        })
        //detect date and year change
        $('dpmo').observe("change", calDate)
        $('dpyr').observe("change", calDate)
    }

    // +/- expanders
    $$('.expander').each(function(element) {
        element.observe("click", expander)
    })
    $$('.anotherExpander').each(function(element) {
    element.observe("click", anotherExpander)
    })

    //if windows is resized, reposition dialog boxes
    window.onresize = function() {
        reposition()
    };



    //capture form submit event
    //$('aspnetForm').observe('submit',spinner)    


    //preload home page expanded boxes
    var tmpImages = []
    tmpImages[0] = new Image()
    tmpImages[1] = new Image()
    tmpImages[2] = new Image()
    tmpImages[3] = new Image()
    tmpImages[0].src = "/Assets/HomePageTiles/Tile1Expanded.png"
    tmpImages[1].src = "/Assets/HomePageTiles/Tile2Expanded.png"
    tmpImages[2].src = "/Assets/HomePageTiles/Tile3Expanded.png"
    tmpImages[3].src = "/Assets/HomePageTiles/Tile4Expanded.png"

    ratingInit();
}

function spinner(evt) {
    var element = Event.element(evt);
    alert(element.tagName)
}

function findPos(obj) {
    //find coordinates of a DIV
    var curleft = curtop = 0;
    if (obj.offsetParent) {
        curleft = obj.offsetLeft
        curtop = obj.offsetTop
        while (obj = obj.offsetParent) {
            curleft += obj.offsetLeft
            curtop += obj.offsetTop
        }
    }
    return [curleft, curtop];
}



function mainNavInit(evt) {
    //open the sub-navigation
    if (mainNavOpening == 1) {
        return
    }

    var element = Event.element(evt);
    if (element.tagName == 'A') {
        element = element.up('li')
    }
    //close other panels
    mainNavHide()
    clearTimeout(mainNavTimer)
    mainNav(element)

}

function mainNavHideTimer(evt) {
    //timer to close main nav
    mainNavTimer = window.setTimeout(function() {
        mainNavHide()
    }, 100)

}

function mainNavHide() {
    //hide main nav
    $('mainNav').select('.panelOpen').each(function(element) {
        element.hide()
        element.removeClassName('panelOpen')
    })
}

function mainSubActive() {
    //stop hiding main nav on subnav mouseover
    clearTimeout(mainNavTimer)
}


function mainNav(element) {
    //build and position main nav and contents
    mainNavOpening = 1
    var panel = element.down('.mainSub')
    if (!panel) {
        //this element has no children
        mainNavOpening = 0
        return
    }
    panel.addClassName('panelOpen')
    var myPos = findPos(element.down())

    if (!panel.hasClassName('adjusted')) {
        //determine width of panel

        var colCount = panel.select('ul').toArray()
        panel.style.width = 130 * colCount.length + 'px'
        panel.style.height = "187px"

        //determine if menu exceeds page width

        var rootPos = findPos($('mainNav'))

        var panelLeft = myPos[0] - rootPos[0] + 5 + 'px'

        //adjust position for partnerDirectory site
        if ($(document.body).hasClassName('extranetHomeBody')) {
            panelLeft = myPos[0] - rootPos[0] + 'px'
        }
        //var panelLeft = myPos[0] - rootPos[0] + 'px'
        //determine if contents are larger than default height
        panel.style.left = "-9999px"
        panel.show()
        var maxHeight = panel.getHeight()

        //inelegant fix for IridiumConnected
        if (panel.style.width == "910px") {
            var colCount2 = panel.select('.firstRow').toArray()
            panel.style.width = 130 * colCount2.length + 'px'
        }
        if (!$(document.body).hasClassName('extranetHomeBody')) {
            if (panel.style.width == "130px") {
                panel.style.width = "145px";
                panel.style.marginLeft = "-55px";
            }
        }
                
         if ($(document.body).hasClassName('extranetHomeBody')) {
            if (panel.style.width == "130px") {
                panel.style.width = "145px";
                panel.style.marginLeft = "0px";
            }
        }

        //About Nav menu redesign 
        var maxHeight1 = 0
        panel.select('.firstRow').each(function(element) {
            if (element.getHeight() > maxHeight1) {
                maxHeight1 = element.getHeight()
            }
        })
        var maxHeight2 = 0
        panel.select('.secondRow').each(function(element) {
            if (element.getHeight() > maxHeight2) {
                maxHeight2 = element.getHeight()
            }
        })

        if (maxHeight < (maxHeight1 + maxHeight2)) {
            maxHeight = maxHeight1 + maxHeight2 + 14
            var colCount1 = panel.select('.firstRow').toArray()
            panel.style.width = 130 * (colCount1.length) + 'px'
        }
        else {
            //About Nav menu redesign - end     
            panel.select('.mainSubColumn').each(function(element) {
                if (element.getHeight() > maxHeight) {
                    maxHeight = element.getHeight()
                }
            })
        }

        if (panel.getWidth() + myPos[0] - rootPos[0] > 640) {
            var newPos = 650 - (panel.getWidth() + myPos[0] - rootPos[0])
            $(panel).style.marginLeft = newPos + "px"

        }

        //hardcoded postioning for Investors Panel. Any future changes to IP will have to be reflected here.
        if (panel.style.marginLeft == "-130px") {
            panel.style.marginLeft = "-30px"
        }

        //hardcoded postioning for Iridium Conencted
        if (panel.style.marginLeft == "-18px") {
            panel.style.marginLeft = "-50px"
        }


        //adjust View All button position
        panel.select('.mainSubColumn').each(function(element) {
            //if less than six items, hide view all button
            var myList = element.select('li').toArray()
            if (myList.length < 6 && element.down('input')) {
                //element.down('input').hide()
            }

            if (element.down('input')) {
                element.down('input').style.marginTop = maxHeight - element.getHeight() + 20 + 'px'
            }
        })
        panel.style.height = maxHeight + 40 + 'px'
        panel.hide()
        panel.style.left = panelLeft
    }

    $('mainNav').style.zIndex = "100"

    panel.addClassName('adjusted')
    new Effect.Appear(panel, { duration: .2, afterFinish: function() { mainNavOpening = 0 } })

}




function leftNav(evt) {
    //this controls the opening/closing of left navigation items

    var element = Event.element(evt);

    if (element.next('ul')) {
        element.next().toggle()
    }
}

function expandBlock(evt) {
    var elem = Event.element(evt);
    expandBlockSub(elem);
}

function expandBlockSub(elem) {
    //expanding menus for landign pages
    closePanels();

    if (!$('expanded')) {
        $(document.body).insert(new Element('div', { id: 'expanded', className: 'expanded', style: 'display:none;' }))
    }
    else {
        //collapse existing box
        unexpand()
        window.setTimeout(function() {
            expandBlockSub(elem);
        }, 550)
        return;
    }

    var rowPos = findPos($('homeNav'))
    //var element = Event.element(evt);
    var element = elem;
    if (!element.hasClassName('homeTile')) {
        element = element.up('.homeTile')
    }

    var myPos = findPos(element)

    //if this is the last element, move to the left one box
    newLeft = myPos[0] + 'px'
    if (!element.next('.homeTile')) {
        newLeft = myPos[0] - 238 + 'px'
    }

    //copy the box contents

    var myHTML = element.down('.expDetails').innerHTML
    var expandedClasses = element.down('.expDetails').classNames().toArray()
    //determine class name of expanded block
    var expandedImage = 'Images/BGBlockNavSwooshExpanded.gif'
    if (element.hasClassName('exp')) {
        var myClasses = element.classNames().toArray()
        //expandedImage = "/Iridium/Assets/HomePageTiles/" + myClasses[2].replace("BGHome", "") + "Expanded.png"
        expandedImage = "/Assets/HomePageTiles/" + myClasses[2].replace("BGHome", "") + "Expanded.png"
    }

    //copy clicked element contents
    $('expanded').style.height = element.getHeight()
    $('expanded').style.width = element.getWidth()
    $('expanded').style.top = rowPos[1] + 'px'
    $('expanded').style.left = myPos[0] + 'px'
    $('expanded').insert(new Element('img', { id: 'expandedBG', src: expandedImage, style: 'height:148px;width:226px;position:absolute;top:0px;left:0px;' }))
    $('expanded').insert(new Element('div', { id: 'expandedContent', className: 'expandedContent' }))

    //add close button
    $('expandedContent').update("<div class='closer'><a class='closeX' href='javascript:;//close' onclick='unexpand(this)'></a></div>" + myHTML)
    $('expandedContent').addClassName(expandedClasses[1])
    //hide content
    $('expandedContent').hide()
    new Effect.Opacity('expandedContent', { to: 0, duration: 0 })

    //show content
    $('expanded').show()

    $('expanded').addClassName('panelOpen')
    var newTop = rowPos[1] - 156 + 'px'

    new Effect.Morph('expandedBG', { style: 'width:464px;height:304px;', duration: .5, fps: 70 })
    new Effect.Morph('expanded', { style: 'border:1px solid #ff0000;width:464px;height:304px;top:' + newTop + ';left:' + newLeft, duration: .5, fps: 70 })
    new Effect.Opacity('expandedContent', { from: 0, to: 1, duration: .5, delay: .5, beforeStart: function() { $('expandedContent').show() } })

}

function unexpand() {
    new Effect.Fade('expanded', { duration: .5, afterFinish: function() { $('expanded').remove() } })
}

function setScroll() {
    myHeight = $('root').getHeight()
    window.scroll(0, myHeight)
    //new Effect.ScrollTo('expanded')
}



function openPartners(element) {
    //open login panel
    closePanels()

    myPos = findPos($(element))
    $('loginPanel').style.top = myPos[1] + 25 + 'px'
    $('loginPanel').style.left = myPos[0] + 'px'
    $('loginPanel').addClassName('panelOpen')
    new Effect.Appear('loginPanel', { duration: .25 })
}

function newsletterSignup(element) {
    // open newsletter signup panel
    closePanels()
    $('overlay').style.height = getDocHeight() + 'px';
    $('overlay').show()
    var dOffsets = document.viewport.getScrollOffsets()
    dWidth = $('newsletterSignup').getWidth()
    dHeight = $('newsletterSignup').getHeight()
    pWidth = $(document.body).getWidth()
    pHeight = getDocHeight()

    $('newsletterSignup').style.top = dOffsets.top + 100 + 'px'
    $('newsletterSignup').style.left = parseInt(pWidth / 2 - dWidth / 2) + 'px'
    $('newsletterSignup').addClassName('panelOpen')
    new Effect.Appear('newsletterSignup', { duration: .5 })
}

function newsletterHide() {
    $('newsletterSignup').hide()
}

function tellFriend(element) {
    //open tall a friend panel
    closePanels()
    myPos = findPos($(element))
    $('tellAFriend').style.top = myPos[1] + 25 + 'px'
    $('tellAFriend').style.left = myPos[0] + 'px'
    $('tellAFriend').addClassName('panelOpen')
    new Effect.Appear('tellAFriend', { duration: .5 })
}

function newsLetterConfirm(element) {
    var dOffsets = document.viewport.getScrollOffsets()
    dWidth = $('newsletterSignup').getWidth()
    dHeight = $('newsletterSignup').getHeight()
    pWidth = $(document.body).getWidth()
    pHeight = getDocHeight()

    //open confirmation of newsletter subscription
    myPos = findPos($('newsletterSignup'))
    $('newsletterSignup').hide()

    $('NewsLetterSignUpConfirmation').style.top = dOffsets.top + 100 + 'px'
    $('NewsLetterSignUpConfirmation').style.left = parseInt(pWidth / 2 - dWidth / 2) + 'px'
    //    $('NewsLetterSignUpConfirmation').style.top = myPos[1] + 25 + 'px'
    //    $('NewsLetterSignUpConfirmation').style.left = myPos[0] + 'px'
    $('NewsLetterSignUpConfirmation').addClassName('panelOpen')
    new Effect.Appear('NewsLetterSignUpConfirmation', { duration: .5 })
    return true
}

function tellFriendHide() {
    $('tellAFriend').hide()
}

function tellFriendConfirm(element) {
    var dOffsets = document.viewport.getScrollOffsets()
    dWidth = $('tellAFriend').getWidth()
    dHeight = $('tellAFriend').getHeight()
    pWidth = $(document.body).getWidth()
    pHeight = getDocHeight()

    //open tall a friend panel
    myPos = findPos($('tellAFriend'))
    $('tellAFriend').hide()
    //        $('tellAFriendConfirmation').style.top = myPos[1] + 25 + 'px'
    //        $('tellAFriendConfirmation').style.left = myPos[0] + 'px'
    $('tellAFriendConfirmation').style.top = dOffsets.top + 100 + 'px'
    $('tellAFriendConfirmation').style.left = parseInt(pWidth / 2 - dWidth / 2) + 'px'

    $('tellAFriendConfirmation').addClassName('panelOpen')
    new Effect.Appear('tellAFriendConfirmation', { duration: .5 })
    return true
}

function htbSendResultSignup(element) {
    // open how to Buy send result by email panel
    closePanels()
    $('overlay').style.height = getDocHeight() + 'px';
    $('overlay').show()
    var dOffsets = document.viewport.getScrollOffsets()
    dWidth = $('htbSendResult').getWidth()
    dHeight = $('htbSendResult').getHeight()
    pWidth = $(document.body).getWidth()
    pHeight = getDocHeight()

    $('htbSendResult').style.top = dOffsets.top + 250 + 'px'
    $('htbSendResult').style.left = parseInt(pWidth / 2 - dWidth / 2) + 'px'
    $('htbSendResult').addClassName('panelOpen')
    new Effect.Appear('htbSendResult', { duration: .5 })
}

function htbSendResultConfirm(element) {
    //open confirmation of How to Buy send results by email

    if (Page_ClientValidate('vgHtbSubmit')) {
        $('htbSendResult').hide()
        return true
    } else return false
}

function htbSendResultConfirmHide() {
    var dOffsets = document.viewport.getScrollOffsets()
    dWidth = $('htbSendResult').getWidth()
    dHeight = $('htbSendResult').getHeight()
    pWidth = $(document.body).getWidth()
    pHeight = getDocHeight()
    //       myPos = findPos($('htbSendResult'))
    //      $('htbSendResult').hide()
    //        $('htbSendResultConfirmation').style.top = myPos[1] + 'px'
    //        $('htbSendResultConfirmation').style.left = myPos[0] + 'px'

    $('htbSendResultConfirmation').style.top = dOffsets.top + 100 + 'px'
    $('htbSendResultConfirmation').style.left = parseInt(pWidth / 2 - dWidth / 2) + 'px'

    $('htbSendResultConfirmation').addClassName('panelOpen')
    new Effect.Appear('htbSendResultConfirmation', { duration: .5 })
}

function SendMsgToPartnerConferenceAttendee(element) {
    // open Partner Conference Attendee email panel
    closePanels()
    $('overlay').style.height = getDocHeight() + 'px';
    $('overlay').show()
    var dOffsets = document.viewport.getScrollOffsets()
    dWidth = $('PartnerConferenceAttendeeEmail').getWidth()
    dHeight = $('PartnerConferenceAttendeeEmail').getHeight()
    pWidth = $(document.body).getWidth()
    pHeight = getDocHeight()

    $('PartnerConferenceAttendeeEmail').style.top = dOffsets.top + 250 + 'px'
    $('PartnerConferenceAttendeeEmail').style.left = parseInt(pWidth / 2 - dWidth / 2) + 'px'
    $('PartnerConferenceAttendeeEmail').addClassName('panelOpen')
    new Effect.Appear('PartnerConferenceAttendeeEmail', { duration: .5 })
}

function SendMsgToPartnerConferenceAttendeeConfirm(element) {
    //open confirmation of Partner Conference Attendee email

    if (Page_ClientValidate('vgAttendeesEmail')) {
        $('PartnerConferenceAttendeeEmail').hide()
        return true
    } else return false
}

function SendMsgToPartnerConferenceAttendeeConfirmHide() {
    var dOffsets = document.viewport.getScrollOffsets()
    dWidth = $('PartnerConferenceAttendeeEmail').getWidth()
    dHeight = $('PartnerConferenceAttendeeEmail').getHeight()
    pWidth = $(document.body).getWidth()
    pHeight = getDocHeight()


    $('PartnerConferenceAttendeeEmailConfirmation').style.top = dOffsets.top + 100 + 'px'
    $('PartnerConferenceAttendeeEmailConfirmation').style.left = parseInt(pWidth / 2 - dWidth / 2) + 'px'

    $('PartnerConferenceAttendeeEmailConfirmation').addClassName('panelOpen')
    new Effect.Appear('PartnerConferenceAttendeeEmailConfirmation', { duration: .5 })
}

function closeMe(element) {
    //close the current panel
    element = $(element)



    //reset tabs on help desk
    if (element.next(2, '.tabs')) {
        $$('#helpDesk .tabs .active').each(function(element) {
            element.removeClassName('active')
        })
    }


    new Effect.Fade(element.up('.panel'), { duration: .25 })
    if ($('overlay').visible()) {
        new Effect.Fade('overlay', { duration: .25 })
    }

}

function getDocHeight() {
    //utility function to find dimensions of page
    var D = document;
    return Math.max(
        Math.max(D.body.scrollHeight, D.documentElement.scrollHeight),
        Math.max(D.body.offsetHeight, D.documentElement.offsetHeight),
        Math.max(D.body.clientHeight, D.documentElement.clientHeight)
    );
}


function gotoPage(loc) {
    //utility function to navigate using javascript

    if (!$('overlay').visible()) {
        document.location = loc
    }
}

function loadVideo(fileName) {
    //loads flash video and opens player panel
    var loc = document.location + ""
    if (loc.indexOf('localhost') > 0) {
        var flashPath = "/Iridium/Flash/"
    }
    else {
        var flashPath = "/Flash/"
    }
    if (fileName.indexOf('wmv') > 0) {
        var player = '<OBJECT id="VIDEO" width="314" height="234" style="margin-left:0px;margin-top:53px;"	CLASSID="CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6" type="application/x-oleobject">'
        player = player + '<PARAM NAME="URL" VALUE="' + fileName + '">'
        player = player + '<PARAM NAME="SendPlayStateChangeEvents" VALUE="True">'
        player = player + '<PARAM NAME="AutoStart" VALUE="True">'
        player = player + '<PARAM name="uiMode" value="none">'
        player = player + '<PARAM name="PlayCount" value="9999">'
        player = player + '<EMBED TYPE="video/x-ms-wmv " SRC="' + fileName + '" NAME="MediaPlayer" WIDTH="314" HEIGHT="234" ShowControls="0" ShowStatusBar="0" ShowDisplay="0" autostart="1"> </EMBED>'
        player = player + '</OBJECT>'
    }
    else {
        //fileName = "presentfuture.flv"
        var player = '<object width="640" height="350">'
        player = player + '<param name="movie" value="' + flashPath + 'moviePlayerV3.swf">'
        player = player + '<param name="FlashVars" value="' + flashPath + fileName + '">'
        player = player + '<param name="wmode" value="transparent">'
        player = player + '<embed src="' + flashPath + 'moviePlayerV3.swf" width="640" height="350" FlashVars="' + flashPath + fileName + '">'
        player = player + '</embed>'
        player = player + '</object>'
    }
    $('videoPlayer').update(player)
    $('overlay').style.height = getDocHeight() + 'px';
    $('overlay').show()
    var dOffsets = document.viewport.getScrollOffsets()

    dWidth = $('videoBox').getWidth()
    dHeight = $('videoBox').getHeight()
    pWidth = $(document.body).getWidth()
    pHeight = getDocHeight()

    $('videoBox').style.top = dOffsets.top + 100 + 'px'
    $('videoBox').style.left = parseInt(pWidth / 2 - dWidth / 2) + 'px'
    new Effect.Appear('videoBox', { duration: .25 })

}

function closeVideo() {
    //close video player.
    new Effect.Fade('overlay', { duration: .25 })
    new Effect.Fade('videoBox', { duration: .25, afterFinish: function() { $('videoPlayer').update("") } })
}

function newsTicker() {
    //loop through newsticker items

    var startTime = 5
    var duration = .6
    if ($('ticker').visible()) {
        newsList = $('ticker').select('li').toArray()
        new Effect.Fade(newsList[tickerPos], { duration: duration, delay: startTime })
        if (tickerPos + 1 == newsList.length) {
            tickerPos = -1
        }
        new Effect.Appear(newsList[tickerPos + 1], { duration: duration, delay: startTime + duration, afterFinish: function() { tickerPos++; newsTicker() } })
    }
}

function tickerTab(evt) {
    //swap news ticker modes
    var element = Event.element(evt);
    if (element.id == 'newsLink1') {
        $('newsLink2').removeClassName('active')
        $('newsLink1').addClassName('active')
        $('investorInfo').hide()
        $('ticker').show()
    }
    else {
        $('newsLink1').removeClassName('active')
        $('newsLink2').addClassName('active')
        $('ticker').hide()
        $('investorInfo').show()
    }
}

function socialNav(evt) {
    //mouseover handler for socian nav bar
    var element = Event.element(evt);
    element.src = element.src.replace(".png", "Hover.png")

}

function socialNavOut(evt) {
    //mouseout handler for socian nav bar
    var element = Event.element(evt);
    element.src = element.src.replace("Hover.png", ".png")

}

function autoClear(evt) {
    //clear fields with promt text, and replace the promt if empty and blur
    var element = Event.element(evt);
    if (element.value == '') {
        element.value = element.retrieve('defaultText')
        return
    }
    if (element.value == element.retrieve('defaultText')) {
        element.value = ''
    }

}

function setTab(evt) {
    //change tab state and hide/show associated panel
    var element = Event.element(evt);

    //alert(element.up(2).id)
    //var tabList = $('tabs').select('a').toArray()
    var tabList = element.up(2).select('a').toArray()

    for (var x = 0; x < tabList.length; x++) {
        tabList[x].removeClassName('active');
        //adjust adjacent borders
        tabList[x].style.borderRight = "1px solid #e8eaed";
        if (x > 0 || x == tabList.length - 1) {
            tabList[x].style.borderLeft = "0";
        }
        else {
            tabList[x].style.borderLeft = "1px solid #e8eaed";
        }
        if (x > 0 && tabList[x] == element) {
            tabList[x - 1].style.borderRight = "0";
        }
    }

    element.addClassName('active')
    element.style.borderLeft = "1px solid #e8eaed";

    //swap associated panels
    $(element).up('.panel').select('.tabPanel').each(function(element) {
        element.hide()
    })

    var myClasses = element.classNames().toArray()
    for (var x = 0; x < myClasses.length; x++) {
        if (myClasses[x].indexOf('panel') > -1) {
            $(myClasses[x]).show()
        }
    }
}

function setTabToElement(element) {
    //change tab state and hide/show associated panel
    var tabList = $('helpDesk').down('ul').select('a').toArray()

    for (var x = 0; x < tabList.length; x++) {
        tabList[x].removeClassName('active');
        //adjust adjacent borders
        tabList[x].style.borderRight = "1px solid #e8eaed";
        if (x > 0 || x == tabList.length - 1) {
            tabList[x].style.borderLeft = "0";
        }
        else {
            tabList[x].style.borderLeft = "1px solid #e8eaed";
        }
        if (x > 0 && tabList[x] == element) {
            tabList[x - 1].style.borderRight = "0";
        }
    }

    element.addClassName('active')
    element.style.borderLeft = "1px solid #e8eaed";

    //swap associated panels
    $(document.body).select('.tabPanel').each(function(element) {
        element.hide()
    })
    var myClasses = element.classNames().toArray()
    for (var x = 0; x < myClasses.length; x++) {
        if (myClasses[x].indexOf('panel') > -1) {
            $(myClasses[x]).show()
        }
    }
}


function reposition() {
    //reposition floating elements when browser resizes

    //find changes in root position
    var myPos
    var newRootPos = findPos($('root'))
    var dx = rootPos[0] - newRootPos[0]
    var dy = rootPos[1] - newRootPos[1]

    $(document.body).select('.panelOpen').each(function(element) {
        myPos = findPos(element)
        element.style.top = myPos[1] - dy + 'px'
        element.style.left = myPos[0] - dx + 'px'
    })
    rootPos = findPos($('root'))
}

function browseButton(evt) {
    return;
    //mouseover event for browse button
    var element = Event.element(evt);

    if (element.src.indexOf('Hover') > 0) {
        element.src = element.src.replace('Hover.png', '.png')
    }
    else {
        element.src = element.src.replace('.png', 'Hover.png')
    }
}

function showCal2(element) {
    //alternate entry point for calendar control
    if (element.tagName == 'A') {
        showCal($(element).previous())
    }
}

function showCal(evt) {
    //show the calendar control
    try {
        var element = Event.element(evt);
    }
    catch (e) {
        var element = $(evt)
    }
    if (now == '') {
        now = new Date()
    }
    curDate = now

    //position control
    if (element.hasClassName("datePicker")) {
        var myPos = findPos($(element))
        var myOffset = $(element).viewportOffset()
        if (document.viewport.getHeight() - myOffset[1] < 230) {
            myPos[1] = myPos[1] - 230
        }
        $('cal').style.top = myPos[1] + 'px'
        $('cal').style.left = myPos[0] + $(element).getWidth() + 30 + 'px'
        $('calShadow').style.top = myPos[1] + 3 + 'px'
        $('calShadow').style.left = myPos[0] + 3 + $(element).getWidth() + 30 + 'px'
        calParent = $(element)
    }

    //set claendar to value in textbox, if present
    if (element.value != '' && element.hasClassName("datePicker")) {
        curDate = Date.parse(element.value)
        mo = parseInt(curDate.getMonth()) + 1
        yr = parseInt(curDate.getFullYear())
        for (var x = 0; x < $('dpmo').length; x++) {
            if ($('dpmo')[x].value == mo) {
                $('dpmo').selectedIndex = x
            }
        }
        for (var x = 0; x < $('dpyr').length; x++) {
            if ($('dpyr')[x].text == yr) {
                $('dpyr').selectedIndex = x
            }
        }
    }


    drawCal(curDate)
    new Effect.Appear('cal', { duration: .25 })
    new Effect.Appear('calShadow', { duration: .25 })
}

function drawCal(curDate) {
    //this populates the calendar grid

    //clear grid
    $('cal').select('td').each(function(element) {
        element.innerHTML = ""
    })
    //fill in grid

    var dy = 1
    var mo = $('dpmo')[$('dpmo').selectedIndex].value
    var yr = $('dpyr')[$('dpyr').selectedIndex].text
    var wk = 1

    var startCal = new Date(yr, mo - 1, 1)

    var days = Date.getDaysInMonth(yr, mo - 1)

    //find start day of week
    if (startCal.is().sunday()) {
        dy = 1
    }
    if (startCal.is().monday()) {
        dy = 2
    }
    if (startCal.is().tuesday()) {
        dy = 3
    }
    if (startCal.is().wednesday()) {
        dy = 4
    }
    if (startCal.is().thursday()) {
        dy = 5
    }
    if (startCal.is().friday()) {
        dy = 6
    }
    if (startCal.is().saturday()) {
        dy = 7
    }
    var curYear = parseInt(curDate.getFullYear())
    var curMonth = parseInt(curDate.getMonth()) + 1
    var curDay = parseInt(curDate.getDate())

    for (var x = 1; x < days + 1; x++) {
        if (x == curDay) {
            //highlight selected day
            $('w' + wk + "_d" + dy).innerHTML = "<div onclick='fillDate(this)' class='calDate active'>" + x + "</div>"
        }
        else {
            $('w' + wk + "_d" + dy).innerHTML = "<div onclick='fillDate(this)' class='calDate'>" + x + "</div>"
        }
        dy++
        if (dy == 8) {
            dy = 1
            wk++
        }
    }
}

function calDate() {
    //change calendar date and re-draw
    var mo = $('dpmo')[$('dpmo').selectedIndex].value
    var yr = $('dpyr')[$('dpyr').selectedIndex].text
    var now = mo + "/1/" + yr
    showCal($('dpmo'))
}

function calToday() {
    //set calendar to today
    if (calParent == '') {
        return;
    }
    var now = new Date()
    var dy = now.getDate()
    var mo = parseInt(now.getMonth()) + 1
    dy = "0" + dy
    mo = "0" + mo
    mo = mo.substr(mo.length - 2, 2)
    dy = dy.substr(dy.length - 2, 2)
    calParent.value = mo + "/" + dy + "/" + now.getFullYear()
    closeCal()
}

function calMove(go) {
    //calendar scroll buttons
    var mo = $('dpmo')[$('dpmo').selectedIndex].value
    var yr = $('dpyr')[$('dpyr').selectedIndex].text
    var activeDays = $('cal').select('div.active').toArray()
    if (activeDays.length > 0) {
        var dy = activeDays[0].innerHTML
    }
    else {
        var dy = 1
    }

    var now = Date.parse(mo + "/" + dy + "/" + yr).add({ months: go })

    mo = now.getMonth() + 1
    yr = now.getFullYear()
    for (var x = 0; x < $('dpmo').length; x++) {
        if ($('dpmo')[x].value == mo) {
            $('dpmo').selectedIndex = x
        }
    }
    for (var x = 0; x < $('dpyr').length; x++) {
        if ($('dpyr')[x].text == yr) {
            $('dpyr').selectedIndex = x
        }
    }
    drawCal(now)
}

function fillDate(element) {
    //fill in textbox with selected date
    if (calParent == '') {
        return;
    }
    var mo = ("0" + $('dpmo')[$('dpmo').selectedIndex].value)
    mo = mo.substr(mo.length - 2, 2)
    var yr = $('dpyr')[$('dpyr').selectedIndex].text
    var dy = ("0" + element.innerHTML)
    dy = dy.substr(dy.length - 2, 2)
    calParent.value = mo + "/" + dy + "/" + yr
    closeCal()
}



function closeCal() {
    //close the calendar control
    new Effect.Fade('cal', { duration: .25 })
    new Effect.Fade('calShadow', { duration: .25 })
}

function openHelp(cancelInitialLoad) {

    //open the help desk panel
    $('overlay').style.height = getDocHeight() + 'px';
    $('overlay').show()
    var dOffsets = document.viewport.getScrollOffsets()

    dWidth = $('helpDeskWrapper').getWidth()
    dHeight = $('helpDeskWrapper').getHeight()
    pWidth = $(document.body).getWidth()
    pHeight = getDocHeight()
    if (cancelInitialLoad == null || cancelInitialLoad == undefined || !cancelInitialLoad) {
        initialLoad();
    }

    $('helpDeskWrapper').style.top = dOffsets.top + 100 + 'px'
    $('helpDeskWrapper').style.left = parseInt(pWidth / 2 - dWidth / 2) + 'px'
    new Effect.Appear('helpDeskWrapper', { duration: .25 })
}

function openHelpTab(tabNum) {
    openHelp(false)
    //close all tab and invisible all tabPanels

    $$('helpDesk').select('a.active').each(function(element) {
        element.removeClassName('active')
    })
    $('results').select('.tabPanel').each(function(element) {
        element.hide()
    })
    $('helpDesk').down('ul').down('a', tabNum).addClassName('active')
    $('results').down('.tabPanel', tabNum).show()
}

function openKBAnswer() {
    //open the help desk panel
    $('overlay').style.height = getDocHeight() + 'px';
    $('overlay').show()
    var dOffsets = document.viewport.getScrollOffsets()

    dWidth = $('helpDeskKBAnswer').getWidth()
    dHeight = $('helpDeskKBAnswer').getHeight()
    pWidth = $(document.body).getWidth()
    pHeight = getDocHeight()
    $('helpDeskKBAnswer').style.top = dOffsets.top + 1 + 'px'
    $('helpDeskKBAnswer').style.left = parseInt(pWidth / 2 - dWidth / 2) + 'px'
    new Effect.Appear('helpDeskKBAnswer', { duration: .25 })
}

function openForgotPassword() {

    $('forgotPswOverlay').style.height = getDocHeight() + 'px';
    $('forgotPswOverlay').show()
    var dOffsets = document.viewport.getScrollOffsets()

    dWidth = $('forgotPswWrapper').getWidth()
    dHeight = $('forgotPswWrapper').getHeight()
    pWidth = $(document.body).getWidth()
    pHeight = getDocHeight()

    $('forgotPswWrapper').style.top = dOffsets.top + 100 + 'px'
    $('forgotPswWrapper').style.left = parseInt(pWidth / 2 - dWidth / 2) + 'px'
    new Effect.Appear('forgotPswWrapper', { duration: .25 })
}

function closeForgotPassword(element) {

    element = $(element)
    new Effect.Fade(element.up('.panel'), { duration: .25 })
    if ($('forgotPswOverlay').visible()) {
        new Effect.Fade('forgotPswOverlay', { duration: .25 })
    }

}

function loadHelp(qid, gid) {

    // qid = questionId (0=not used)
    // gid = glossaryId

    //call your server-side panel update here
    //Function.Method(qid, gid, loadHelp_Success, loadHelp_Error);

    // JS:20100118 - if qid > 0, then have HelpDesk form do asynch postback and show appropriate placeholder
    var cancelInitialLoad = false;
    if (qid > 0) {
        loadQuestion(qid);
        cancelInitialLoad = true;
    }

    //simulate AJAX action
    openHelp(cancelInitialLoad)
    //    window.setTimeout(function() {
    //        loadHelp_Success(0, "Test result has loaded")
    //    }, 100)

}

function loadHelp_Success(tab, result) {
    var tabList = $('helpDesk').down('ul').select('a').toArray()
    if (tab == 0) {
        //$('panelKnowledgeBase').update(result)    
    }
    if (tab == 2) {
        $('panelGlossary').update(result)
    }
    element = tabList[tab]
    for (var x = 0; x < tabList.length; x++) {
        tabList[x].removeClassName('active');
        //adjust adjacent borders
        tabList[x].style.borderRight = "1px solid #e8eaed";
        if (x > 0 || x == tabList.length - 1) {
            tabList[x].style.borderLeft = "0";
        }
        else {
            tabList[x].style.borderLeft = "1px solid #e8eaed";
        }
        if (x > 0 && tabList[x] == element) {
            tabList[x - 1].style.borderRight = "0";
        }
    }

    element.addClassName('active')
    element.style.borderLeft = "1px solid #e8eaed";

    //swap associated panels
    $(document.body).select('.tabPanel').each(function(element) {
        element.hide()
    })
    var myClasses = element.classNames().toArray()
    for (var x = 0; x < myClasses.length; x++) {
        if (myClasses[x].indexOf('panel') > -1) {
            $(myClasses[x]).show()
        }
    }


}



function expander(evt) {
    //open and close expanding lists
    var element = Event.element(evt);
    var expTarget
    var thisElement = $(element)
    //while (!thisElement.next('.expandee')) {
    //thisElement = thisElement.up()
    //}

    if (!thisElement.next('.expandee')) {
        thisElement = thisElement.up()
    }
    expTarget = thisElement.next('.expandee')
    if (element.hasClassName('expand')) {
        element.removeClassName('expand')
        element.addClassName('collapse')
        //new Effect.BlindDown(expTarget, { duration: 1, beforeStart: function() { element.update('Collapse') } })

    }
    else {
        element.removeClassName('collapse')
        element.addClassName('expand')
        // new Effect.BlindUp(expTarget, { duration: 1, beforeStart: function() { element.update('Expand') } })
    }


}

function anotherExpander(evt) {
    //open and close expanding lists
    var element = Event.element(evt);
    var expTarget
    var thisElement = $(element)
    //while (!thisElement.next('.expandee')) {
    //thisElement = thisElement.up()
    //}

    if (!thisElement.next('.expandee')) {
        thisElement = thisElement.up()
    }
    expTarget = thisElement.next('.expandee')
    if (element.hasClassName('anotherExpand')) {
        element.removeClassName('anotherExpand')
        element.addClassName('anotherCollapse')
        //new Effect.BlindDown(expTarget, { duration: 1, beforeStart: function() { element.update('Collapse') } })

    }
    else {
        element.removeClassName('anotherCollapse')
        element.addClassName('anotherExpand')
        // new Effect.BlindUp(expTarget, { duration: 1, beforeStart: function() { element.update('Expand') } })
    }


}

function partnerDirectory() {
    var dOffsets = document.viewport.getScrollOffsets()

    dWidth = 848
    dHeight = 428
    pWidth = $(document.body).getWidth()
    pHeight = getDocHeight()

    $('partnerDirectory').style.top = dOffsets.top + 100 + 'px'
    $('partnerDirectory').style.left = parseInt(pWidth / 2 - dWidth / 2) + 'px'
    $('overlay').style.height = getDocHeight() + 'px';
    $('overlay').show()
    new Effect.Appear('partnerDirectory', { duration: .25 })
}

function closePanels() {
    //close all open panels

    $(document.body).select('.panelOpen').each(function(element) {
        element.hide()
        element.removeClassName('panelOpen')
    })

    if ($('prodNavPanel')) {
        $('prodNavPanel').hide()
    }
    if ($('solNavPanel')) {
        $('solNavPanel').hide()
    }
}

function GoSearchSubmit(event) {
    if (isSubmitOnEnter(event)) {
        GoSearch();
    }
}

function GoSearch(event) {
    var searchValue = $('search').value.trim();
    if (searchValue != '') {
        var url = "/SearchResults.aspx?q=" + escape(searchValue);
        if (document.domain == "localhost") url = "/Iridium" + url;
        window.location = url;
    }
}


function isSubmitOnEnter(e) {
    var ENTER_KEY = 13;
    var code = "";

    if (window.event) // IE
    {
        code = e.keyCode;
    }
    else if (e.which) // Netscape/Firefox/Opera
    {
        code = e.which;
    }

    var retVal = false;
    if (code == ENTER_KEY) {
        retVal = true;
    }
    return retVal;
}

function docSwap(o, element) {

    //    var viewAll = $('searchResults').select('#' + 'viewAll' + element)
    //    var collapse = $('searchResults').select('#' + 'collapse' + element)
    var txtViewAll = "view all";
    var txtCollapse = "collapse";

    var ph = $('searchResults').select('#' + 'document' + element).toArray();

    var isShortVisible = ph[0].down('.short').visible();

    if (isShortVisible == false) {
        ph[0].down('.long').hide();
        ph[0].down('.short').show();
        o.innerHTML = txtViewAll;
    } else {
        ph[0].down('.long').show();
        ph[0].down('.short').hide();
        o.innerHTML = txtCollapse;
    }

    //    if (viewAll.visible()) {
    //        collapse.show();
    //        viewAll.hide();
    //    }
    //    else
    //    {
    //        viewAll.show();
    //        collapse.hide();
    //    }

    return false;
}

function searchSwap(o, mode) {

    var txtViewAll = "view all";
    var txtCollapse = "collapse";
    var ph = $('searchResults').select('.' + mode).toArray();

    var isShortVisible = ph[0].down('.short').visible();

    $('searchResults').select('.long').each(function(element) {
        element.hide();
    })
    $('searchResults').select('.short').each(function(element) {
        element.show();
    })
    $('searchResults').select('.viewAll').each(function(element) {
        element.innerHTML = txtViewAll;
    })

    if (ph[0].down('.long') == null) {
        return true;
    }

    if (isShortVisible == false) {
        ph[0].down('.long').hide();
        ph[0].down('.short').show();
        o.innerHTML = txtViewAll;
    } else {
        ph[0].down('.long').show();
        ph[0].down('.short').hide();
        o.innerHTML = txtCollapse;
    }

    //window.location.href = "#" + mode;
    return false;

}

function searchSwapExec(o, mode) {
    //
}

function truncateItems(maxHeight) {
    //fix two-line items on navigation panel so they don't wrap to two lines

    var myHeight
    //var maxHeight = 195
    var limit = 50
    var attempts = 0


    element = $('prodView').down('.details')

    elements = $('prodView').select('p').toArray()

    try {
        content = elements[elements.length - 1]
    }
    catch (e) {
        return;
    }

    contentUpper = elements[elements.length - 1].innerHTML.toUpperCase()
    if (contentUpper.indexOf('PART NUMBER') > -1) {
        content = elements[elements.length - 2]
    }

    while (element.getHeight() > maxHeight && attempts < limit) {
        var prodName = content.innerHTML.replace("&hellip;", "")
        var prodNameArr = prodName.split(" ")
        var newName = ""
        for (var x = 0; x < prodNameArr.length - 2; x++) {
            newName = newName + prodNameArr[x] + " "
        }
        content.update(newName + prodNameArr[x] + "&hellip;")
        attempts++
    }

}

function showStock() {
    element = $('newsBar').down('select')

    $('newsBar').select('.stockPrice').each(function(element) {
        element.hide()
    })
    var showMe = $(element)[$(element).selectedIndex].text
    $(showMe).show()
}

function emailFriend() {
    closePanels()
    var dOffsets = document.viewport.getScrollOffsets()
    dWidth = 260
    dHeight = 160
    pWidth = $(document.body).getWidth()
    pHeight = getDocHeight()

    $('tellAFriend').style.top = dOffsets.top + 100 + 'px'
    $('tellAFriend').style.left = parseInt(pWidth / 2 - dWidth / 2) + 'px'
    $('overlay').style.height = getDocHeight() + 'px';
    $('overlay').show()
    new Effect.Appear('tellAFriend', { duration: .25, afterFinish: function() { $('tellAFriend').down('.textBox').focus() } })

}

function faqTop() {
    window.setTimeout(function() { $('results').scrollTop = 0 }, 300)

}

var OBJECT_TYPE_FAQ_ID = 20;
var OBJECT_TYPE_NAVIGATION_ID = 2;
var OBJECT_TYPE_PRODUCT_ID = 3;
var OBJECT_TYPE_SOLUTION_ID = 4;

function ratingInit() {


    var objectTypeID = '';
    var objectID = '';



    //element = $(element)
    if ($('results').down('.faqid')) {
        var faq = $('results').down('.faqid');

        var temp = $(faq).id.split("_");
        objectID = temp[1];
        objectTypeID = OBJECT_TYPE_FAQ_ID;
        var thisRating = parseFloat($(faq).innerHTML);
        var rBox = $('results').down('.ratingWrapper');
        var clear = "<span id='voteNote_HelpDesk'>Please help us rate this article.<br />Select your rating on the left.</span><div class='Clear'></div>";

        rBox.update(getRating(thisRating, objectID, objectTypeID) + clear);

    }

    if ($('leftNav') && $('leftNav').down('.navid')) {
        var nav = $('leftNav').down('.navid');

        var temp = $(nav).id.split("_");
        objectID = temp[1];
        objectTypeID = OBJECT_TYPE_NAVIGATION_ID;
        var thisRating = parseFloat($(nav).innerHTML);
        var rBox = $('leftNav').down('.leftRatingWrapper');
        var clear = "<div class=\"Clear\"></div><span id='voteNote'>Please help us rate this page.<br />Select your rating above.</span><div class='Clear'></div>";

        rBox.update(getRating(thisRating, objectID, objectTypeID) + clear);

    }

    if ($('leftNav') && $('leftNav').down('.productid')) {
        var product = $('leftNav').down('.productid');

        var temp = $(product).id.split("_");
        objectID = temp[1];
        objectTypeID = OBJECT_TYPE_PRODUCT_ID;
        var thisRating = parseFloat($(product).innerHTML);
        var rBox = $('leftNav').down('.leftRatingWrapper');
        var clear = "<div class=\"Clear\"></div><span id='voteNote'>Please help us rate this page.<br />Select your rating above.</span><div class='Clear'></div>";

        rBox.update(getRating(thisRating, objectID, objectTypeID) + clear);
    }

    if ($('leftNav') && $('leftNav').down('.solutionid')) {
        var solution = $('leftNav').down('.solutionid');

        var temp = $(solution).id.split("_");
        objectID = temp[1];
        objectTypeID = OBJECT_TYPE_SOLUTION_ID;
        var thisRating = parseFloat($(solution).innerHTML);

        var rBox = $('leftNav').down('.leftRatingWrapper');
        var clear = "<div class=\"Clear\"></div><span id='voteNote'>Please help us rate this page.<br />Select your rating above.</span><div class='Clear'></div>";

        rBox.update(getRating(thisRating, objectID, objectTypeID) + clear);

    }



    if (getCookie('rating' + objectTypeID + '_' + objectID) != '') {
        $('leftRatingWrapper').select('a').each(function(element) {
            element.onmouseover = function() { }
            element.onmouseout = function() { }
            element.onclick = function() { }
        });
        if ($('voteNote')) {
            $('voteNote').update("Thank you for participating")
        }
    }

}
function getRating(thisRating, objID, objectTypeID) {


    if (thisRating == 0) {
        return ratingOff(objID, objectTypeID, 1) + ratingOff(objID, objectTypeID, 2) + ratingOff(objID, objectTypeID, 3) + ratingOff(objID, objectTypeID, 4) + ratingOff(objID, objectTypeID, 5);
    }

    if (thisRating >= 1 && thisRating <= 1.4) {
        return ratingOn(objID, objectTypeID, 1) + ratingOff(objID, objectTypeID, 2) + ratingOff(objID, objectTypeID, 3) + ratingOff(objID, objectTypeID, 4) + ratingOff(objID, objectTypeID, 5);
    }
    if (thisRating > 1.4 && thisRating < 2) {
        return ratingOn(objID, objectTypeID, 1) + ratingHalf(objID, objectTypeID, 2) + ratingOff(objID, objectTypeID, 3) + ratingOff(objID, objectTypeID, 4) + ratingOff(objID, objectTypeID, 5);
    }

    if (thisRating >= 2 && thisRating <= 2.4) {
        return ratingOn(objID, objectTypeID, 1) + ratingOn(objID, objectTypeID, 2) + ratingOff(objID, objectTypeID, 3) + ratingOff(objID, objectTypeID, 4) + ratingOff(objID, objectTypeID, 5);
    }
    if (thisRating > 2.4 && thisRating < 3) {
        return ratingOn(objID, objectTypeID, 1) + ratingOn(objID, objectTypeID, 2) + ratingHalf(objID, objectTypeID, 3) + ratingOff(objID, objectTypeID, 4) + ratingOff(objID, objectTypeID, 5);
    }

    if (thisRating >= 3 && thisRating <= 3.4) {
        return ratingOn(objID, objectTypeID, 1) + ratingOn(objID, objectTypeID, 2) + ratingOn(objID, objectTypeID, 3) + ratingOff(objID, objectTypeID, 4) + ratingOff(objID, objectTypeID, 5);
    }
    if (thisRating > 3.4 && thisRating < 4) {
        return ratingOn(objID, objectTypeID, 1) + ratingOn(objID, objectTypeID, 2) + ratingOn(objID, objectTypeID, 3) + ratingHalf(objID, objectTypeID, 4) + ratingOff(objID, objectTypeID, 5);
    }

    if (thisRating >= 4 && thisRating <= 4.4) {
        return ratingOn(objID, objectTypeID, 1) + ratingOn(objID, objectTypeID, 2) + ratingOn(objID, objectTypeID, 3) + ratingOn(objID, objectTypeID, 4) + ratingOff(objID, objectTypeID, 5);
    }
    if (thisRating > 4.4 && thisRating < 5) {
        return ratingOn(objID, objectTypeID, 1) + ratingOn(objID, objectTypeID, 2) + ratingOn(objID, objectTypeID, 3) + ratingOn(objID, objectTypeID, 4) + ratingHalf(objID, objectTypeID, 5);
    }

    if (thisRating == 5) {
        return ratingOn(objID, objectTypeID, 1) + ratingOn(objID, objectTypeID, 2) + ratingOn(objID, objectTypeID, 3) + ratingOn(objID, objectTypeID, 4) + ratingOn(objID, objectTypeID, 5);
    }

}

function ratingOn(objID, objectTypeID, pos) {
    return '<a class="voteOn Left" onclick="vote(this,' + objID + ',' + objectTypeID + ',' + pos + ')" onmouseout="$(this).down().src=\'/Images/RatingOn.png\'" onmouseover="$(this).down().src=\'/Images/RatingOn_Hover.png\'" href="javascript://vote"><img src="/Images/RatingOn.png"></a>';
}

function ratingOff(objID, objectTypeID, pos) {
    return '<a class="voteOff Left"  onclick="vote(this,' + objID + ',' + objectTypeID + ',' + pos + ')" onmouseout="$(this).down().src=\'/Images/RatingOff.png\'" onmouseover="$(this).down().src=\'/Images/RatingOff_Hover.png\'" href="javascript://vote"><img src="/Images/RatingOff.png"></a>';
}

function ratingHalf(objID, objectTypeID, pos) {
    return '<a class="voteHalf Left"  onclick="vote(this,' + objID + ',' + objectTypeID + ',' + pos + ')" onmouseout="$(this).down().src=\'/Images/RatingOnHalf.png\'" onmouseover="$(this).down().src=\'/Images/RatingOnHalf_Hover.png\'" href="javascript://vote"><img src="/Images/RatingOnHalf.png"></a>';
}

function vote(element, objID, objectTypeID, vote) {
    //alert("##")
    element = $(element)
    if (element.hasClassName('voteOn')) {
        element.innerHTML = '<img src="/Images/RatingOn_Hover.png" />'
    }
    if (element.hasClassName('voteOff')) {
        element.innerHTML = '<img src="/Images/RatingOff_Hover.png" />'
    }
    if (element.hasClassName('voteHalf')) {
        element.innerHTML = '<img src="/Images/RatingOnHalf_Hover.png" />'
    }

    setCookie('rating' + objectTypeID + '_' + objID, '' + vote, 10);

    switch (objectTypeID) {
        case OBJECT_TYPE_FAQ_ID:
            $('ratingWrapper').select('a').each(function(element) {
                element.onmouseover = function() { }
                element.onmouseout = function() { }
                element.onclick = function() { }
            });
            Ratings.VoteForKnowledgeBaseFAQ(objID, vote, voteHelpDesk_success, vote_fail);
            break;
        case OBJECT_TYPE_NAVIGATION_ID:
            $('leftRatingWrapper').select('a').each(function(element) {
                element.onmouseover = function() { }
                element.onmouseout = function() { }
                element.onclick = function() { }
            });
            Ratings.VoteForPage(objID, vote, vote_success, vote_fail);
            break;
        case OBJECT_TYPE_PRODUCT_ID:
            $('leftRatingWrapper').select('a').each(function(element) {
                element.onmouseover = function() { }
                element.onmouseout = function() { }
                element.onclick = function() { }
            });
            Ratings.VoteForProduct(objID, vote, vote_success, vote_fail);
            break;
        case OBJECT_TYPE_SOLUTION_ID:
            $('leftRatingWrapper').select('a').each(function(element) {
                element.onmouseover = function() { }
                element.onmouseout = function() { }
                element.onclick = function() { }
            });
            Ratings.VoteForSolution(objID, vote, vote_success, vote_fail);
            break;
    }

}

function vote_success(result) {

    var thisRating = result;

    if ($('leftNav') && $('leftNav').down('.navid')) {
        var nav = $('leftNav').down('.navid');

        var temp = $(nav).id.split("_");
        objectID = temp[1];
        objectTypeID = OBJECT_TYPE_NAVIGATION_ID;

        var rBox = $('leftNav').down('.leftRatingWrapper');
        var clear = "<div class=\"Clear\"></div><span id='voteNote'>Please help us rate this page.<br />Select your rating above.</span><div class='Clear'></div>";

        rBox.update(getRating(thisRating, objectID, objectTypeID) + clear);

    }

    if ($('leftNav') && $('leftNav').down('.productid')) {
        var product = $('leftNav').down('.productid');

        var temp = $(product).id.split("_");
        objectID = temp[1];
        objectTypeID = OBJECT_TYPE_PRODUCT_ID;

        var rBox = $('leftNav').down('.leftRatingWrapper');
        var clear = "<div class=\"Clear\"></div><span id='voteNote'>Please help us rate this page.<br />Select your rating above.</span><div class='Clear'></div>";

        rBox.update(getRating(thisRating, objectID, objectTypeID) + clear);
    }

    if ($('leftNav') && $('leftNav').down('.solutionid')) {
        var solution = $('leftNav').down('.solutionid');

        var temp = $(solution).id.split("_");
        objectID = temp[1];
        objectTypeID = OBJECT_TYPE_SOLUTION_ID;

        var rBox = $('leftNav').down('.leftRatingWrapper');
        var clear = "<div class=\"Clear\"></div><span id='voteNote'>Please help us rate this page.<br />Select your rating above.</span><div class='Clear'></div>";

        rBox.update(getRating(thisRating, objectID, objectTypeID) + clear);

    }

    if ($('voteNote')) {
        $('voteNote').update("Thank you for participating")
    }
}

function voteHelpDesk_success(result) {

    if ($('results').down('.faqid')) {
        var faq = $('results').down('.faqid');

        var temp = $(faq).id.split("_");
        objectID = temp[1];
        objectTypeID = OBJECT_TYPE_FAQ_ID;
        var thisRating = result;
        var rBox = $('results').down('.ratingWrapper');
        var clear = "<span id='voteNote_HelpDesk'>Please help us rate this article.<br />Select your rating on the left.</span><div class='Clear'></div>";

        rBox.update(getRating(thisRating, objectID, objectTypeID) + clear);

    }

    if ($('voteNote_HelpDesk')) {
        $('voteNote_HelpDesk').update("Thank you for participating")
    }
}

function vote_fail() {
    //you lose
}


// alerts
function alertAutoLoad() {
    var section = $('result').select('.alertListSection').toArray()
    alertSection(section[0].up())
    var item = $('result').select('.alertTitle').toArray()
    var myAction = item[0].onclick()
}

function alertSection(element) {
    $(element).next('.alertSection').toggle()
    if (!element.hasClassName('expander')) {
        element = $(element).next('.expander')
        if (element.hasClassName('expand')) {
            element.removeClassName('expand')
            element.addClassName('collapse')
        }
        else {
            element.removeClassName('collapse')
            element.addClassName('expand')
        }
    }
    if ($(element).next('.alertSection').visible()) {

        $(element).innerHTML = "Collapse"

    }
    else {

        $(element).innerHTML = "Expand"

    }
}

function collapseContentSection(element) {
    $(element).next('.collapseContentSection').toggle()
    if (!element.hasClassName('anotherExpander')) {
        element = $(element).next('.anotherExpander')
        if (element.hasClassName('anotherExpand')) {
            element.removeClassName('anotherExpand')
            element.addClassName('anotherCollapse')
        }
        else {
            element.removeClassName('anotherCollapse')
            element.addClassName('anotherExpand')
        }
    }
}

function closeAllAlerts() {
    $('result').select('.alertDetails').each(function(element) {
        element.hide()
    })

}

function showAlert(id) {
    //alert(id);
    closeAllAlerts();
    Alerts.GetAlertDetails(id, getAlertDetails_Success, getAlertDetails_Error, id);

}

function getAlertDetails_Success(result, context) {
    // get the nearest alertDetails
    var alertDetails = $('alertDetails' + context);
    alertDetails.show()
    alertDetails.update(result);
}

function getAlertDetails_Error() {
    //bonk
}

function setNavActive(node) {
    $('mainNav').down('.sub1', node).addClassName('active')
}


function openDefinition(evt) {
    var element = Event.element(evt);
    var myPos = findPos($(element))
    var term = element.innerHTML
    if ($('definition').down('.definition')) {
        var del = $('definition').select('.definition').toArray()
        del[0].remove()
    }
    var def = element.next('.desc').innerHTML
    $('definition').down(2).insert({ after: "<div class='definition'><h2>" + term + "</h2>" + def + "</div>" })
    $('definition').style.top = myPos[1] + 25 + 'px'
    $('definition').style.left = myPos[0] + 'px'
    $('definition').show()

}

function gotoTop(element) {
    $('results').scrollTop = "0"

}

function roleTip(evt) {
	var element = Event.element(evt);
	$(element).next('.perm').innerHTML = $(element).next('.perm').innerHTML.replace("OP (OpenPort)", "OpenPort");	
	var myTip = $(element).next('.perm');	
    myTip.style.marginLeft = '-' + ($(element).next('.perm').getWidth() - 10) + 'px';
    //myTip.style.marginLeft = "-" + myTip.style.width;
    new Effect.Appear(myTip, { duration: .5 })
}

function roleTipClear(evt) {
    $(document.body).select('.perm').each(function(element) {
        element.hide()
    })

}

function roleTipNqg(evt) {
    var element = Event.element(evt);
    var myTip = $(element).next('.helptip');
    myTip.style.marginLeft = myTip.style.width;
    new Effect.Appear(myTip, { duration: .5 })
}

function roleTipClearNqg(evt) {
    $(document.body).select('.helptip').each(function(element) {
        element.hide()
    })

}
function fixPath() {
    $('root').select('img').each(function(element) {
        var mySRC = element.src
        element.src = mySRC.replace("localhost", "iridium.com")
    })
}


function tagThis(objectGroupID, objectTypeID, partnerUserID, outputSpanID) {
    TagService.TagThis(objectGroupID, objectTypeID, partnerUserID, outputSpanID, tagThis_Success, tagThis_Error, outputSpanID);
}

function tagThis_Success(result, outputSpanID) {
    $(outputSpanID).innerHTML = result;
}

function tagThis_Error() {
    alert('error');
}

function unTagThis(objectGroupID, objectTypeID, partnerUserID, outputSpanID) {
    TagService.UnTagThis(objectGroupID, objectTypeID, partnerUserID, outputSpanID, tagThis_Success, tagThis_Error, outputSpanID);
}

function unTagThis_Success(result, outputSpanID) {
    $(outputSpanID).innerHTML = result;
}

function unTagThis_Error() {
    alert('error');
}

function overlayOnSearch() {
    $('overlay').style.height = getDocHeight() + 'px';
    $('overlay').show()
}

function overlayOnSearchHide() {
    $('overlay').hide()
}
