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)
    	$('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('.panel239').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()
        })
        $('investorInfo').select('li').each(function(element) {
            element.hide()
        })
        $('newsLink1').observe("click", tickerTab)
        $('newsLink2').observe("click", tickerTab)
        $('ticker').down('li').show()
        $('investorInfo').down('li').show()
        newsTicker()
    }

    //stock symbol drop-down
    if ($('stocks')) {
        $('stocks').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').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("###")
    })
    
    
    //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)
    })

   
    //if windows is resized, reposition dialog boxes
    window.onresize = function() {
        reposition()
    };



    //capture form submit event
    //$('aspnetForm').observe('submit',spinner)    


    //reaload 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 = "/Images/BGHomeProductsExpanded.png"
    tmpImages[1].src = "/Images/BGHomeSolutionsExpanded.png"
    tmpImages[2].src = "/Images/BGHomeSupportExpanded.png"
    tmpImages[3].src = "/Images/BGHomeOurStoryExpanded.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]+ 'px'
  
        if (panel.getWidth() + myPos[0] - rootPos[0] >  640) {
            var newPos = 650 - (panel.getWidth() + myPos[0] - rootPos[0])
            $(panel).style.marginLeft = newPos + "px"
        }

        //determine if contents are larger than default height
        panel.style.left = "-9999px"
        panel.show()
        var maxHeight = panel.getHeight()
        panel.select('.mainSubColumn').each(function(element) {
            if (element.getHeight() > maxHeight) {
                maxHeight = element.getHeight()
            }
        })
        //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) {
    //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() {
            expandBlock(evt);
        }, 550)
        return;
    }

    var rowPos = findPos($('homeNav'))
    var element = Event.element(evt);
    if (!element.hasClassName('panel239')) {
        element = element.up('.panel239')
    }
   
    var myPos = findPos(element)

    //if this is the last element, move to the left one box
    newLeft = myPos[0]+'px'
    if (!element.next('.panel239')) {
        newLeft = myPos[0] - 240 + '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 = "Images/BGHome" + myClasses[2].replace("BG","") + "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:152px;width:239px;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]-150+'px'
    
    new Effect.Morph('expandedBG', { style: 'width:480px;height:304px;', duration: .5, fps: 70 })
    new Effect.Morph('expanded', { style: 'border:1px solid #ff0000;width:480px;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 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 tellFriendConfirm(element) {
    //open tall a friend panel

    myPos = findPos($('tellAFriend'))
    $('tellAFriend').hide()   
    $('tellAFriendConfirmation').style.top = myPos[1] + 25 + 'px'
    $('tellAFriendConfirmation').style.left = myPos[0] + 'px'
    $('tellAFriendConfirmation').addClassName('panelOpen')
    //$('tellAFriendConfirmation').show()
    new Effect.Appear('tellAFriendConfirmation', { duration: .5 })

    
}

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 closeMe(element) {
    //close the current panel
    element = $(element)



    //reset tabs on help desk
    if (element.next(2, 'tabs')) {
        $('tabs').select('.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() } })
    }
    if ($('investorInfo').visible()) {
        financialList = $('investorInfo').select('li').toArray()
        new Effect.Fade(financialList[tickerFinancialPos], { duration: duration, delay: startTime })
        if (tickerFinancialPos + 1 == financialList.length) {
            tickerFinancialPos = -1
        }
        new Effect.Appear(financialList[tickerFinancialPos + 1], { duration: duration, delay: startTime + duration, afterFinish: function() { tickerFinancialPos++; 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);
    var tabList = $('tabs').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 setTabToElement(element) {
	//change tab state and hide/show associated panel
	var tabList = $('tabs').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) {
    //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
    $('tabs').select('.active').each(function(element) {
        element.removeClassName('active')
    })
    $(document.body).select('.tabPanel').each(function(element) {
        element.hide()})
    $('tabs').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 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 = $('tabs').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 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=" + 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 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 = $('stocks').down('select')
 
    $('stocks').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).next('.alertSection').visible()) {        
        $(element).removeClassName('expand')
        $(element).addClassName('collapse')
        $(element).innerHTML="Collapse"
    }
    else {
        $(element).removeClassName('collapse')
        $(element).addClassName('expand')
        $(element).innerHTML = "Expand"
    }
}

function closeAllAlerts() {
    $('result').select('.alertDetails').each(function(element) {
        element.hide()
    })

}

function showAlert(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);
    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) {
    var element = Event.element(evt);
    var myTip = $(element).next('.perm')
    myTip.hide()
}

function fixPath() {
    $('root').select('img').each(function(element) {
        var mySRC = element.src
        element.src = mySRC.replace("localhost", "iridium.com")
    })
}