﻿
// solution browser tool
var loc = document.location + ""
if (loc.indexOf('localhost') > 0) {
    var imgPath = "url(/Iridium/Images/"
}
else {
    var imgPath = "url(/Images/"
}

function showSolNavBar() {
    //open it instantly, inserted to anchor point, such as on landing pages
	var panel = $('solNavBarWrapper')
	panel.style.width = "960px"

	if ($('solNavAnchor').hasClassName('nav905')) {	    
	    $('solNavBar').style.backgroundImage = imgPath + "BGProdNavBar905.png)"
		panel.style.width = "905px"
	}
	if ($('solNavAnchor').hasClassName('navIndent')) {
		$('solNavBar').style.left = "23px";
		$('solNavBar').style.width = "905px"
		panel.style.width = "935px"
		$('solNavPanel').style.width = "935px"
		$('solNavPanel').style.backgroundImage = imgPath + "BGProdNavPanel935.png)"
	}


	//panel.style.marginTop = "75px"
	

	$('solNavBar').down().hide()
	$('solNavAnchor').update(panel)
	//panel.relativize()
	panel.style.position = 'relative'
	panel.show()

}

function solNavBar(evt) {
	//expand nav bar (bar state, not panel state)
	closePanels()
	var element = Event.element(evt);
 	var myPos = findPos(element)
	var panel = $('solNavBarWrapper')
	if (element.up('div').hasClassName('nav935')) {
		$('solNavBar').style.backgroundImage = imgPath + "BGProdNavBar935.png)"
		$('solNavBar').style.width = "935px"
		panel.style.width = "935px"
	}
	else {
		$('solNavBar').style.backgroundImage = imgPath + "BGProdNavBar.png)"
	}

	var myPos = findPos(element)
	var panel = $('solNavBarWrapper')
	new Effect.Morph('solNavBarWrapper', { style: 'width:0px;', duration: 0, queue: 'front' })
	var panelWidth
	panel.style.top = myPos[1] + 'px'
	panel.style.left = myPos[0] + 'px'

	panel.style.width = "905px"

	//get parent width
	if (element.up('browsesolutions')) {

	}


	$('solNavBarWrapper').show()

	new Effect.Morph('solNavBarWrapper', { style: 'width:962px;', duration: .5 })
	$('solNavBarWrapper').addClassName('panelOpen')

	//new Effect.Appear('solNavBar',{duration:.5})
}



function solNavPanel(evt) {
	//create the navigation panel
	//load the solution after the panel opens
	var element = Event.element(evt);
    
    var narrow = 0
	var myPos = findPos($('solNavBar'))
	var bar = element.up('div')
	var myPos = findPos(bar)
	closePanels()
	$('solNavBar').show()
	var panel = $('solNavPanel')

	var tabNum = solTab(element)
	var tabs = panel.select('li').toArray()

	element.addClassName('active')
	tabs[tabNum].addClassName('active')
	panel.style.top = myPos[1] + 'px'
	panel.style.left = myPos[0] + 'px'
	panel.style.height = bar.getHeight() + 'px'
    if($('solNavAnchor')) {
        if($('solNavAnchor').hasClassName('nav935')||$('solNavAnchor').hasClassName('nav905')) {
            narrow = 1
        }
    }
	if ($('solNavBar').getWidth() < 960 || narrow == 1 ) {
		panel.style.width = "935px"
		panel.style.backgroundImage = imgPath + "BGProdNavPanel935.png)"
	}

	panel.show()
	$('solSel').innerHTML = ""
	$('solSub').innerHTML = ""
	var newTop = myPos[1] - 218 + 'px'
	panel.addClassName('panelOpen')
	ignoreScroll = 1
	new Effect.Morph(panel, { style: 'height:288px;top:' + newTop, duration: .5, afterFinish: function() { loadsol(tabNum) } })

}

function solNavClose() {
	//close product/solution nav
	if ($('solNavBarWrapper').style.position != 'relative') {
		new Effect.Fade('solNavBarWrapper', { duration: .25 })
	}
	$('solNavBar').select('.active').each(function(element) {
		element.removeClassName('active')
	})
	$('solNavPanel').select('.active').each(function(element) {
		element.removeClassName('active')
	})
	new Effect.Fade('solNavPanel', { duration: .25 })
}

function solNav(evt) {
	var element = Event.element(evt);
	$('solSel').innerHTML = ""
	$('solSub').innerHTML = ""
	$('solView').innerHTML = ""
	$('solSelHolder').hide()
	$('solSubHolder').hide()
	$('solView').hide()
	var tabNum = solTab(element)
	$('solNavPanel').select('ul li').each(function(element) {
		element.removeClassName('active')
	})
	$('solNavPanel').down('ul').down(tabNum).addClassName('active')
	loadsol(tabNum)
}

function solTab(selElement) {
	//based on the element, find the ordinal tab number
	var myNodes = selElement.up().childElements().toArray()
	for (var x = 0; x < myNodes.length; x++) {
		if (myNodes[x].innerHTML == selElement.innerHTML) {
			return x
		}
	}
	return -1
}

function loadsol(tabNum) {


	switch (tabNum) {
		case 0:
			SolutionDetails.GetSolutionApplications(loadSolCats_Success, loadSol_Error);
			break;
		case 1:
			SolutionDetails.GetSolutionIndustries(loadSolCats_Success, loadSol_Error);
			break;
		case 2:
			SolutionDetails.GetSolutions(loadSol_Success, loadSol_Error);
			break;
		default:
			break;
	}


}

function loadSolCats_Success(result) {
    $('solSel').update(result);
    
	//kill previous observers
	for (var x = 0; x < solObservers.length; x++) {
	    if ($(solObservers[x])) {
	        element = $(solObservers[x]);
	        element.stopObserving("click", solSelect);
	        element.stopObserving("click", solShow);
	    }
	}

	//hook up click events for menu	
	$('solSel').select('li').each(function(element) {
		if (element.id != '') {
			element.observe("click", solSelect)
			solObservers.push(element.id)
		}
	})
	

	new Effect.Appear('solSelHolder', { duration: .25 })
}

function loadSol_Success(result) {
	$('solSel').update(result);
	//kill previous observers
	for (var x = 0; x < solObservers.length; x++) {
	    if ($(solObservers[x])) {
	        element = $(solObservers[x]);
	        element.stopObserving("click", solSelect);
	        element.stopObserving("click", solShow);
	    }
	}
	//hook up click events for menu	
	$('solSel').select('li').each(function(element) {
		if (element.id != '') {
			element.observe("click", solShow)
			solObservers.push(element.id)
		}
	})
	new Effect.Appear('solSelHolder', { duration: .25 })
}



function loadSol_Error() {
	// TODO: handle error
}

function startsolScroll(element) {
	//timer-based solution nav scroller
	if (scrollToggle == 0 || ignoreScroll == 1) {
		return
	}
	scrollSpeed = slowScroll
	scrollCount++
	if (scrollCount > 10) {
		scrollSpeed = fastScroll
	}
	scrollTimer = window.setTimeout(function() {
		scrollsolList(element)
		startsolScroll(element)

	}, scrollSpeed)
}

function scrollsolList(element) {
	//scroll soluct nav menu
	element = $(element)
	clearTimeout(scrollTimer)
	if (element.hasClassName('down')) {
		var myList = element.previous().select('li').toArray()
		var listPos = findPos(element.previous())
	}
	else {
		var myList = element.next().select('li').toArray()
		var listPos = findPos(element.next())
	}
	var listHeight = 0
	var itemPos = findPos(myList[myList.length - 1])
	if (element.hasClassName('down') && (itemPos[1] - listPos[1] + listHeight) > 160) {
		for (var x = 0; x < myList.length; x++) {
			if (!myList[x].hasClassName('hidden')) {
				myList[x].addClassName('hidden')
				break;
			}
		}
		return;
	}
	if (element.hasClassName('up')) {
		for (var x = myList.length - 1; x > -1; x--) {
			if (myList[x].hasClassName('hidden')) {
				myList[x].removeClassName('hidden')
				break;

			}
		}
		return;
	}
	scrollCount = 0
	scrollSpeed = slowScroll
}

function stopScroll() {
	scrollToggle = 0;
	scrollCount = 0
}

function solSelect(evt) {
	//load sub solution based on main sol click
	var element = Event.element(evt);
	if (element.hasClassName('application')) {
	    // do application list
	    applicationId = element.id.replace("ap_", "");
		loadSolSub(-1, applicationId, -1);
	} else if (element.hasClassName('industry')) {
		industryId = element.id.replace("ip_", "");
		loadSolSub(-1, -1, industryId);
	}

}

function loadSolSub(solCategoryId, solApplicationId, solIndustryId) {
	SolutionDetails.SelectSolutions(solApplicationId, solIndustryId, loadSolSub_Success, loadSolSub_Error);
}

function loadSolSub_Success(result) {
	//populate the solution navigation
	$('solSub').innerHTML = '';
	$('solSub').insert(result)
	//hook up click events for menu

	$('solSub').select('li').each(function(element) {
		if (element.id != '') {
			element.observe("click", solShow)
			//solObservers[]	
		}
	})
	new Effect.Appear('solSubHolder', { duration: .25 })

}

function loadSolSub_Error() {
	// TODO: handle error here
}


function solShow(evt) {
	//show selected solution
	var element = Event.element(evt);
	solId = element.id.replace("p_", "")
	solDetails(solId)
}

function solDetails(solId) {
	SolutionDetails.GetSolution(solId, solDetails_Success, solDetails_Error);
}

function solDetails_Success(result) {
	$('solView').update(result);
	new Effect.Appear('solView', { duration: .5 })
}

function solDetails_Error() {
	// TODO: handle this at some point
}

