//scholar's choice javascript
var alpha="abcdefghijklmnopqrstuvwxyz"
var panelPosition = 0
var colCount = 1
var lastPanel
var panelOpening = 0
var panelTimer
var ddTimer
var scrollPages
var previewLoading=0
var previewTimer
var basketTimer
var jumping = 0


//hide lists - these are uses to populate the category slide-down panel
function loadScript(src,element) {
	//var head = document.getElementsByTagName("head")[0]
	var WDScript = document.createElement('script');
	WDScript.type='text/javascript';
	WDScript.id='WDSTUB';
	WDScript.src = src
	$(element).appendChild(WDScript); 
}

function sweep(){
	var qc = document.sweepsForm.sweepEmail.value;
	if(qc != ''){
		document.sweepsForm.action.value="<@CGI><@APPFILE>";
		document.sweepsForm.submit();
	}
}


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 searchFocus() {
	//change appearance of search box on focus
	if($('searchField').value=='enter search here...') {
		$('searchField').value=''
	}
	$('searchField').removeClassName('searchInactive')
	$('searchField').addClassName('searchActive')
}

function showPanel(panelName,element) {
	var leftPos = 483;
	if(panelName == 'navList1'){leftPos = 403;}
	if(panelName == 'navList3'){leftPos = 483;}
	if(panelName == 'navList4'){leftPos = 483;}
	if(panelName == 'navList5'){leftPos = 483;}
	//display category panel
	
	// this re-writes the HTML of the long list of categories
	// into 8-item chunks so they fit nicely in the panel

	
	//hide mini cart if open
	if($('miniCart')) {
		if($('miniCart').visible()) {
			$('miniCart').hide()
			if($('miniCartShadow')) {
				$('miniCartShadow').hide()
			}
		}
	}
	
	
	clearTimeout(catTimer)
	if(panelOpening) {
		return;
	}
	

	// if the panel is already open, close it and exit
	if($('navPanel').visible()&&lastPanel==panelName) {
		new Effect.BlindUp('navPanel',{duration:.4})
		if($('navPanelShadow')) {
			new Effect.BlindUp('navPanelShadow',{duration:.4})
		}
		return;
	}
	
	//start to build the panel
	var panelTitle = $(element).innerHTML.toLowerCase()
	panelOpening=1
	panelPosition = 0
	colCount = 1
	var linksPerCol = 8
	var linkCount = 1
	
	$('panelTitle').innerHTML = panelTitle
	$('listHolder').innerHTML = ""
	$('catRight').innerHTML="view more"
	$('catLeft').innerHTML="go back"
	$('catLeft').hide()
	$('catRight').hide()
	$('listHolder').style.left="0px"
	


	var buildList
	// buildlist is the temporary element used to hold the HTML until it is
	// ready to be inserted into the DOM. It's faster this way.
	
	var myPos = findPos($('nav'))
	$('navPanel').style.top = '-3px'
	$('navPanel').style.left = leftPos + 'px'
	
	//if the shadow doesn't exist, build it
	if(!$('navPanelShadow')) {
		$(document.body).insert(new Element('div',{id:'navPanelShadow',style:'display:none; z-index:0;',className:'navPanelShadow'}))
	}
	$('navPanelShadow').style.top = $('navPanel').style.top
	$('navPanelShadow').style.left = $('navPanel').style.left 

	//reformat this into columns
	var listLength = $(panelName).select('li').toArray().length
	var catLinks = $(panelName).select('li').each(function(element) {
		//like lists of 8 items		
		if(linkCount==1) {
			buildList="<ul>"
		}		
		buildList = buildList + "<li>"+element.innerHTML+"</li>"
		linkCount++
		if(linkCount==8) {
			$('listHolder').insert(buildList+"</ul>")		
			linkCount=1
			colCount++
		}		
	})
	//output remaining links 
	if(linkCount>1) {
		$('listHolder').insert(buildList+"</ul>")
	}
	
	

	//add alpha index if more than two pages
	var thisURL
	if(colCount>6) {
		if(!$('panelIndex')) {
			var tempIndex = new Element('div',{className:'panelIndex',id:'panelIndex'}).update("<span class='red'>jump to:</span> ")
			for(x=0;x<alpha.length;x++) {
				tempIndex.insert(new Element('a',{href:'javascript:panelJump("'+alpha.substr(x,1)+'")'}).update(alpha.substr(x,1)))	
			}
			$('navPanel').insert(tempIndex)
		}
		else {
			$('panelIndex').show()	
		}
	}
	else {
		if($('panelIndex')) {
			$('panelIndex').hide()	
		}	
	}
	
	
	//add page button if wider than three columns
	if(colCount>3) {
		$('catRight').show()					 
	}
	lastPanel = panelName
	if(!$('navPanel').visible()) {		
		new Effect.BlindDown('navPanel',{duration:.4,afterFinish:function(){panelOpening=0;truncateItems()}})
		new Effect.BlindDown('navPanelShadow',{duration:.4})
	}
	else {
		panelOpening=0
	}
	

	
}

function showPanelBrands(panelName,element) {
	//display category panel
	
	//hide mini cart if open
	if($('miniCart')) {
		if($('miniCart').visible()) {
			$('miniCart').hide()
			if($('miniCartShadow')) {
				$('miniCartShadow').hide()
			}
		}
	}

	if($('panelIndex')) {
		$('panelIndex').hide()
	}

	// if the panel is already open, close it and exit
	if($('navPanel').visible()&&lastPanel==panelName) {
		new Effect.BlindUp('navPanel',{duration:.4})
		if($('navPanelShadow')) {
			new Effect.BlindUp('navPanelShadow',{duration:.4})
		}
		return;
	}
	
	clearTimeout(catTimer)
	if(panelOpening) {
		return;
	}
	
	//start to build the panel
	var panelTitle = $(element).innerHTML.toLowerCase()
	panelOpening=1
	panelPosition = 0
	colCount = 1
	var linksPerCol = 8
	var linkCount = 1
	
	$('panelTitle').innerHTML = panelTitle
	$('listHolder').innerHTML = ""
	$('catRight').innerHTML="view more"
	$('catLeft').innerHTML="go back"
	$('catLeft').hide()
	$('catRight').hide()
	$('listHolder').style.left="0px"

	var buildList
	// buildlist is the temporary element used to hold the HTML until it is
	// ready to be inserted into the DOM. It's faster this way.
	
	var myPos = findPos($('nav'))
	$('navPanel').style.top = '-3px'
	$('navPanel').style.left = 498 + 'px'
	
	//if the shadow doesn't exist, build it
	if(!$('navPanelShadow')) {
		$(document.body).insert(new Element('div',{id:'navPanelShadow',style:'display:none; z-index:0;',className:'navPanelShadow'}))
	}
	$('navPanelShadow').style.top = $('navPanel').style.top
	$('navPanelShadow').style.left = $('navPanel').style.left 

	//reformat this into columns
	var listLength = $(panelName).select('li').toArray().length
	var catLinks = $(panelName).select('li').each(function(element) {
		//like lists of 8 items		
		if(linkCount==1) {
			buildList='<ul class="' + 'brandspanel">'
		}
		
		buildList = buildList + "<li>"+element.innerHTML+"</li>"
		linkCount++
		if(linkCount==4) {
			$('listHolder').insert(buildList+"</ul>")		
			linkCount=1
			colCount++
		}		
	})
	//output remaining links 
	if(linkCount>1) {
		$('listHolder').insert(buildList+"</ul>");
	}
	
	if (!$('brandspanelmore')) {
		$('listHolder').insert('<div id="brandspanelmore"><a href="javascript:;// view by category"  onclick="clearTimeout(catTimer);showPanel(\'navList6\',this)" class="red">Show all brands...</a></div>')
	}
	

	 
	//add page button if wider than three columns

	lastPanel = panelName
	if(!$('navPanel').visible()) {		
		new Effect.BlindDown('navPanel',{duration:.4,afterFinish:function(){panelOpening=0}})
		new Effect.BlindDown('navPanelShadow',{duration:.4})
	}
	else {
		panelOpening=0
	}

	
}

function truncateItems() {
	//fix two-line items on navigation panel so they don't wrap to two lines

	var myHeight
	var maxHeight = 17
	var limit = 50
	var attempts = 0
	
	$('listHolder').select('li').each(function(element) {
		//console.log("-"+element.getHeight()>maxHeight&&attempts<limit)
		while (element.getHeight()>maxHeight&&attempts<limit)  {
			var prodName = element.down().innerHTML.replace("&hellip;","")
			var prodNameArr = prodName.split(" ")
			var newName = ""
			for(var x=0;x<prodNameArr.length-2;x++) {
				newName = newName + prodNameArr[x]+" "
			}
			element.down().update(newName + prodNameArr[x]+"&hellip;")	
			attempts++			
		}
		if(attempts>0) {
			//we can add events for tooltip on the truncated items here
			
			//var myTip = new Element('div',{style:'display:none',className:'prodTip'}).update(origName)			
			//$(document.body).insert(myTip)			
			//$(element).observe('mouseover',prodShowTip.curry(myTip))
			//myTip.observe('mouseout',function(){this.hide();$('prodTipShadow').hide()})
		}	
	})
	
}


function loadList(listName) {
	$('pageList').innerHTML="<ul>"+$(listName)+"</ul>"
}


function panelJump(letter) {
	//jump to correct column using alpha index
	//$('searchField').value = (letter)

	if(panelOpening==1) {
		return	
	}
	panelOpening=1
	thisLetter = letter.toUpperCase()
	var found = 0
	var colCount = 1
	var foundLink
	

	//match the letter to the first character of the LI items
	$('listHolder').select('ul').each(function(element) {
		element.select('li').each(function(element) {
			thisLink = element.down(0).innerHTML
			if(thisLink.substr(0,1).toUpperCase()==thisLetter&&!found) {	
				foundLink = element.down(0)
				found=colCount-1
			}
		})
		colCount++
	})

	if(found==0) {
		//go to previous letter
		for(x=1;x<alpha.length;x++) {
			if(alpha.substr(x,1).toUpperCase()==thisLetter) {
				panelOpening=0
				panelJump(alpha.substr(x-1,1))
				
				return
			}
		}
	}
	var curPos = parseInt($('listHolder').style.left.replace('px',''))
	//var newPos = -1*(found*200)+curPos
	if(found>colCount-4) {
		found = colCount-4	
	}
	var newPos = -150*found
	if(letter=='A') {
		newPos = 0	
	}
	//$('searchField').value = (found+", "+newPos+", "+curPos+":"+letter)
	new Effect.Move('listHolder',{mode:'absolute',x:newPos,fps:30,duration:.3,queue:'end',afterFinish:function(){panelOpening=0}})	
	panelPosition=-1*found
	
	$('catRight').hide()
	$('catLeft').hide()
	if(newPos<0) {	
		$('catRight').show()
		$('catLeft').show()
	}
	else {
		$('catRight').show()
	}

}


function panelScroll(direction) {
	return
	//this is the auto-scroll on the mouseover for the panel nav buttons
	if(direction==0) {
		clearTimeout(panelTimer)	
	}
	else {
		panelTimer=window.setTimeout("panelMove("+direction+");panelScroll("+direction+");",1000)
		
	}
}

function panelMove(direction) {
	//animate categories nav pane

	
	clearTimeout(panelTimer)
	$('catLeft').hide()
	$('catRight').hide()
	
	colMove = 150
	
	
	if(direction==-1) {		
		if(colCount+panelPosition>5) {
			colMove = 450	
			panelPosition--
			panelPosition--
		}
		new Effect.Move('listHolder',{mode:'relative',x:-1*colMove,fps:30,duration:.3,queue:'end'})
		panelPosition--
	}
	if(direction==1) {
		if(panelPosition<-2) {
			colMove = 450	
			panelPosition++
			panelPosition++
		}
		new Effect.Move('listHolder',{mode:'relative',x:colMove,fps:30,duration:.3,queue:'end'})
		panelPosition++
	}
	
	
	//change view more button state
	if(panelPosition==0) {
		$('catRight').show()
		return;
	}

	if(panelPosition<0) {
		if(colCount-1+panelPosition<3) {
			$('catLeft').show()
			return
		}
		else {
			$('catRight').show()
			$('catLeft').show()
		}
	}

}

function closeCat() {
	//close categories nav panel
	if(panelOpening) {
		return;
	}
	//panelOpening=1

	catTimer= window.setTimeout(function() {
		if($('navPanelShadow')) {
			new Effect.BlindUp('navPanelShadow',{duration:.3})
		}
		$('catLeft').hide()
		$('catRight').hide()
		new Effect.BlindUp('navPanel',{duration:.3,afterFinish:function(){panelOpening=0;}})
	},400)
	
}

function closeMiniCart() {
	//close the mini cart
	clearTimeout(basketTimer)
	new Effect.BlindUp('miniCartShadow',{duration:.1})
	new Effect.BlindUp('miniCart',{duration:.1})
	//$('miniCart').hide()	
	//$('miniCartShadow').hide()
}

function miniCart() {
	//display mini cart
	if(jumping) {
		//animation is still running, come back later
		window.setTimeout("miniCart()",100)
		return
	}
	if($('navPanel').visible()) {
		$('navPanel').hide()
		if(!$('navPanelShadow')) {
			$('navPanelShadow').hide()
		}
	}
	if($('miniCart').visible()) {
		return;
	}
	
	if(!$('miniCartShadow')) {
		$(document.body).insert(new Element('div',{id:'miniCartShadow',style:'display:none',className:'miniCartShadow'}))
	}
	
	
	var myPos = findPos($('nav'))
	//$('searchField').value = myPos[0]+","+myPos[1]
	//$('searchField').value=myPos[1]
	$('miniCart').style.top = '40px'
	$('miniCart').style.left = '56%'
	$('miniCartShadow').style.top = $('miniCart').style.top 
	$('miniCartShadow').style.left = $('miniCart').style.left 
	$('miniCartShadow').style.height=$('miniCart').getHeight()+13+'px'
	
	new Effect.BlindDown('miniCartShadow',{duration:.3})
	new Effect.BlindDown('miniCart',{duration:.3})
	basketTimer = window.setTimeout("closeMiniCart()",6000)
}


function ddControl(evt) {
	//drop-down control renderer
	if(!$('ddHolder')) {
		$(document.body).insert(new Element('div',{id:'ddHolder',className:'ddItems'}))
		$(document.body).insert(new Element('div',{id:'ddShadow',className:'ddShadow'}))
	}
	var element = Event.element(evt);
	var myParent = element.id	
	var ddLimit=10
	var ddCount=1
	var addMore = 0
	//assign temp list box
	var myList = $('ddHolder')
	
	//get current list
	myList.innerHTML = element.next().innerHTML
	
	//find position of myParent
	var myPos=findPos(element)
	

	//position the list box
	myList.style.top = myPos[1]+18+'px'
	myList.style.left = myPos[0]+'px'
	$('ddShadow').style.top = myPos[1]+18+'px'
	$('ddShadow').style.left = myPos[0]+'px'


	
	
	listLength = myList.select('li').toArray().length
	if(listLength>ddLimit) {
		//if this is a long list, build the slider instead
		$('ddHolder').stopObserving('mouseout',ddHideTimer)	
		initSlider(listLength,myParent)		
	}
	else {
		myList.style.width = $(myParent).getWidth()+'px'
		myList.style.overflowX = 'visible'
		myList.show()
		$('ddShadow').style.width = myList.getWidth()+3+'px'
		$('ddShadow').style.height = myList.getHeight()+1+'px'
		$('ddShadow').show()
		$('ddHolder').observe('mouseout',ddHideTimer)			
		myList.select('li').each(function(element) {
			element.observe('mouseover',ddHover)
			element.observe('mouseout',ddHover)
			element.addClassName(myParent)
		})
	}

}

function ddHover(evt) {
	// mouseover event for the drop-down generator
	clearTimeout(ddTimer)
	
	var element = Event.element(evt);
	
	//if this is the anchor tag, change the outer LI tag.
	if(!element.down()) {
		element = element.up()
	}
	if(element.hasClassName('ddHover')) {
		element.removeClassName('ddHover')
	}
	else {
		element.addClassName('ddHover')
	}	
}

function ddClear(evt) {
	// hide the drop-down
	
	clearTimeout(ddTimer)
}

function ddClick(evt) {
	//click event for the drop-down
	
	var element = Event.element(evt);
	if(element.down()) {
		element.click()
		return;
	}
	var myClass = $(element).classNames().toArray()
	//alert(myClass[0])
	$(myClass[0]).innerHTML = element.innerHTML
	$('ddShadow').hide()
	$('ddHolder').hide()
	
}

function ddHideTimer(evt) {
	//hide the drop-down
	
	var element = Event.element(evt);
	if(element.hasClassName('noClose')) {
		return	
	}
	ddTimer=window.setTimeout("ddHide(0)",300)
}

function ddHide(evt) {
	$('ddShadow').hide()
	$('ddHolder').hide()

}

function initSlider(listLength,myParent) {			
	// if the drop-down is long you can replace it with a slider control using this function 
	
	clearTimeout(ddTimer)
	scrollPages = listLength
	var myPos=findPos($(myParent))
	var startValue = $(myParent).innerHTML/listLength
	var myList = $('ddHolder')
	var fudgeOffset=1
	
	// curse you, internet explorer!
	if(document.all) {
		fudgeOffset=-39	
	}
	
	
	myList.style.width = '78px'
	
	$('ddShadow').style.width = '80px'
	$('ddShadow').style.height = '230px'
	
	myList.style.top = myPos[1]+18+'px'
	myList.style.left = myPos[0]+fudgeOffset+'px'

	
	$('ddShadow').style.top = myPos[1]+19+'px'
	$('ddShadow').style.left = myPos[0]+2+'px'
	

	myList.show()
	
	$('ddShadow').show()
	
	//build the HTML for the slider
	var panel = '<div class="scrollSlider" id="pageSlider">'
	panel = panel + "page <div id='pageStart' class='pageStart'>1</div> <div id='pageEnd' class='pageEnd'></div>"
	panel = panel + '<div id="pageTrack" class="scrollTrack noClose">'
	panel = panel + '<div id="pageHandle" class="scrollButton noClose"><div class="scrollIndicator noClose" id="pageIndicator">1</div></div>'
	panel = panel + '</div></div>'
	$('ddHolder').innerHTML=panel								
	$('ddHolder').show()
	$('pageEnd').innerHTML = listLength
	$('pageIndicator').innerHTML = $(myParent).innerHTML
	
	//intialize the slider control
	new Control.Slider('pageHandle', 'pageTrack', {
		axis: 'vertical',
		onSlide: slideUpdate,
		onChange: slideSelect,
		sliderValue:startValue
	});	
	
	
	//hook up the slider vents
	$('ddHolder').observe('mouseout',ddHideTimer)
	$('pageSlider').observe('mouseout',ddHideTimer)
	$('pageSlider').observe('mouseover',function(){$('pageSlider').stopObserving('mouseout',ddHideTimer)})	
	$('pageTrack').observe('mouseover',ddClear)
	$('pageTrack').observe('mouseout',ddClear)
}

function slideUpdate(v) {
	//update page selection indicator beside the slider control
	var selPage = (parseInt(v*scrollPages))
	if(selPage<1) {
		selPage = 1
	}
	$('pageIndicator').innerHTML = selPage
}

function slideSelect(v) {
	//jump to page seleted by the slider
	var linkPath=''
	var selected = parseInt(v*scrollPages)
	if(selected<1) {
		selected = 1	
	}
	if(selected+''==$('jupmpToPage').innerHTML) {
		return	
	}
	
	$('jupmpToPage').innerHTML = selected
	$('jupmpToPage').next().select('a').each(function(element) {		
		if(selected==element.innerHTML) {
			linkPath = element.href
		}
	})
	//$('searchField').value = linkPath
	$('ddShadow').hide()
	$('ddHolder').hide()
	document.location =linkPath
	//$('pageIndicator').innerHTML = 'selected: ' + (parseInt(v*scrollPages))
}


function prodShowTip() {
	// tolltip for long product names that are truncated.
	
	var myTip = arguments[0]
	var element = Event.element(arguments[1]);
	if(myTip.visible()) {
		return;
	}
	myPos = findPos(element)
	//alert(myPos[0]+", "+myPos[1])
	myTip.style.top = myPos[1]+'px'
	myTip.style.left = myPos[0]-30+'px'
	$('prodTipShadow').style.top=myPos[1]+5+'px'
	$('prodTipShadow').style.left=myPos[0]-23+'px'
	$('prodTipShadow').style.width = myTip.getWidth()+'px'
	$('prodTipShadow').style.height = myTip.getHeight()+'px'
	new Effect.Appear($('prodTipShadow'),{duration:.5})
	new Effect.Appear(myTip,{duration:.5})
	//myTip.show()

}


function leftLess(element) {
	//collapse left menu list
	var maxLeftList = 5
	var thisItem = 1
	var thisList = $(element).up()
	thisList.select('li').each(function(element) {
		if(thisItem>maxLeftList) {
			element.addClassName('hidden')
		}
		thisItem++
	})
	$(element).replace("<a href='javascript:;//' onclick='leftMore(this)'><span class='red'>"+(thisItem-maxLeftList-1)+" more...</span></a>")
}

function leftMore(element) {
	//expand left menu list	
	var myParent = $(element).up()
	var myHeight = myParent.getHeight()

	myParent.select('li').each(function(element) {
		element.removeClassName('hidden')
	})
	var newHeight = myParent.getHeight()
	myParent.addClassName('overflow')
	myParent.style.height = myHeight+'px'
	new Effect.Morph(myParent,{style:'height:'+newHeight+'px',fps:60,duration:.5,afterFinish:function(){myParent.style.height='';myParent.removeClassName('overflow')}})
	$(element).replace("<a href='javascript:;//' onclick='leftLess(this)'><span class='red'>...collapse list</span></a>")

	
}

function customerServiceFormVal(element){
	
	if(document.csForm.cs_subjectList.selectedIndex != 0) {
		document.csForm.cs_other.value = document.csForm.cs_other.value + " "
	}
	document.csForm.cs_subject.value = document.csForm.cs_subjectList[document.csForm.cs_subjectList.selectedIndex].value + ' ' + document.csForm.cs_other.value;
	valForm(element)
	//document.csForm.cs_button.disabled = true;
	//document.csForm.cs_button.value = '- Sending Your Message -';
	//document.csForm.submit();
}

var minarray = new Array('min6');

function valForm(btn) {
	// this is a general-putpose form validation script
	// any form element with a class name of "req" will be checked
	// any invalid fields will be highlighted using the "formError" class
	
	thisform = $(btn).up('form')

	var firstElement = ''
	var formOK = 1
	$(thisform).select('.req').each(function(element) {
		if(element.selectedIndex) {
				//this is a select statement
				if(element.selectedIndex<1) {
					element.addClassName('formError')
					formOK = 0
					if(firstElement=='') {
						firstElement = element
					}
				}
				else {
					element.removeClassName('formError')
				}
			}
			else {
				//this is a text box
				if(element.value=="") {
					element.addClassName('formError')
					formOK = 0
					if(firstElement=='') {
						firstElement = element
					}
				}
				else {
					element.removeClassName('formError')
				}
			}
	})
	if(formOK) {
	
		var reqlen = 0;
		for (i=0; i<=minarray.length; i++)
		{
			$(thisform).select('.'+minarray[i]).each(function(element) {
				if(!element.selectedIndex) {
					//this is a text box
					reqlen = parseFloat(minarray[i].substring(minarray[i].length-1));
					if(element.value.length < reqlen || element.value.indexOf(" ")>-1) {
						element.addClassName('formError')
						formOK = 0
						if(firstElement=='') {
							firstElement = element
						}
					}
					else {
						element.removeClassName('formError')
					}
				}
			})

			if (formOK == 0)
			{
				var minlen = reqlen;
				break;
			}
		}

		if (formOK != 0)
		{

			//check first and last name	
			$(thisform).select('.valname').each(function(element) {
				if(!element.selectedIndex) {
					//this is a text box
					if(validateName(element.value) == false) {
						element.addClassName('formError')
						formOK = 0
						if(firstElement=='') {
							firstElement = element
						}
					}
					else {
						element.removeClassName('formError')
					}
				}
			})
			if (formOK == 0)
			{
				new Effect.ScrollTo(firstElement,{duration:.6,offset:-240});
				showDialog(firstElement,'Invalid character found',"closeDialog()","");
				return false;
			}
			
			//check email	
			$(thisform).select('.valemail').each(function(element) {
				if(!element.selectedIndex) {
					//this is a text box
					if(validateemail(element.value) == false) {
						element.addClassName('formError')
						formOK = 0
						if(firstElement=='') {
							firstElement = element
						}
					}
					else {
						element.removeClassName('formError')
					}
				}
			})

			if (formOK != 0)
			{
				if (thisform.action != '')
				{
					thisform.submit();
				}
				return true;
			}
			else
			{
				new Effect.ScrollTo(firstElement,{duration:.6,offset:-240});
				showDialog(firstElement,'Invalid email address',"closeDialog()","");
				return false;
			}
		}
		else
		{
			new Effect.ScrollTo(firstElement,{duration:.6,offset:-240});
			showDialog(firstElement,'This field requires a minimum of ' + minlen + ' characters<br />(no spaces)',"closeDialog()","");
			return false;
		}
			
	}
	else {
		new Effect.ScrollTo(firstElement,{duration:.6,offset:-240});
		showDialog(firstElement,'Please complete all required fields',"closeDialog()","");
		return false;
	}
	
}

function buttonEffect(btn) {
	if($(btn).hasClassName('buttonOver')) {
		$(btn).removeClassName('buttonOver')
		$(btn).down().removeClassName('buttonTextOver')
	}
	else {
		$(btn).addClassName('buttonOver')
		$(btn).down().addClassName('buttonTextOver')
	}
}

function showTip(element,thumb) {	
	//this is the product mouse-over mini viewer for the basket pages.
	
	//if the image is still loading, quit
	if(previewLoading==1) {						
		return	
	}
	if(!$('prodThumb')) {
		$(document.body).insert(new Element('div',{id:'prodThumb',className:'prodThumb',style:'display:none'}))		
	}
	
	if(thumb=='') {
		hideTip()
		return
	}
	
	previewLoading=1
	clearTimeout(previewTimer)
	$('prodThumb').stopObserving('mouseout',hideTip)
	$('prodThumb').innerHTML = "<img src='"+thumb+"'>"
	myPos = findPos($(element))
	myWidth = $(element).getWidth()
	$('prodThumb').style.top=myPos[1]-50+'px'
	$('prodThumb').style.left=myPos[0]+myWidth+'px'
	$('prodThumb').observe('mouseout',hideTip)
	$('prodThumb').observe('mouseover',tipTimer)
	new Effect.Appear('prodThumb',{duration:.5,beforeStart:function(){previewTimer = window.setTimeout("hideTip()",2000)},afterFinish:function(){previewLoading=0;}})
	
}

function hideTip() {
	// hide the mini product viewer
	
	$('prodThumb').hide()
}

function tipTimer() {
	clearTimeout(previewTimer)
}


//form buttons


function sch_MiniBasket(){
	//populate and open the mini basket
	
	
	if($('miniCart').visible()) {
		closeMiniCart();
		//alert(1)
		return;
	}
	
	if( $('basketquantity').innerHTML=="0"){
		//alert(2)
		return;
	}
	
	if($('miniCart').innerHTML!=''){
		//alert(3)
		miniCart();
		return;
	}
					
	new Ajax.Request('/ajax/ajaxShowMiniBasket.taf', 
	{   
		onSuccess: function(transport) { 
			$('ajaxcartresponse').innerHTML = transport.responseText;
			$('miniCart').innerHTML = $('miniCartWrapper').innerHTML;

			var basketerror = $('basketerror');
			if (basketerror != null)
			{
				$('addtocartmsg').innerHTML = "";
				alert(basketerror.innerHTML);
			}
			else
			{
				
				//open it
				miniCart();
			}
		}
	});

}

function sch_DisplayBasketTotals(basketquantity,basketprice){
	if(basketquantity=="") basketquantity = 0;
	if(basketprice=="") basketprice = 0.00;
	$("basketquantity").innerHTML = basketquantity;
	$("basketprice").innerHTML = basketprice;
	$('miniCart').innerHTML = ""; //force to reload mini basket when click
	if(basketquantity==1) {
		$('basketItemsTitle').innerHTML = "item";
	}else{
		$('basketItemsTitle').innerHTML = "items";
	}
}


function jumpy() {
	//make the item jump off the page, into the cart.
	jumping = 1
	
	var basketTop = $('cartNav').viewportOffset().top
	if(basketTop<1) {
		new Effect.ScrollTo('root',{duration:.3,queue:'front'})	
	}
	
	
	img = $('showimage')
	if(!$('jumpy')) {
		$(document.body).insert(new Element('div',{id:'jumpy',style:'position:absolute;display:none;border:2px solid #000000'}).update(img.innerHTML))
	}
	//$('jumpy').clonePosition(img)
	$('jumpy').show()

	var myPos = findPos(img)
	x1 = myPos[0]
	y1 = myPos[1]
	var myPos = findPos($('cartNav'))
	x2 = myPos[0]
	y2 = myPos[1]+35

	new Effect.Curve('jumpy',{fps:60,duration:1,curve: new BezierCurve(
		x1, y1,
		x1+200, y1+200, 
		x2, y2+200, 
		x2, y2 
	)});
	
	new Effect.Morph($('jumpy').down(),{duration:1,style:'height:5px;width:5px',afterFinish:function(){$('jumpy').remove();jumping=0}})
	new Effect.Fade($('jumpy'),{delay:.5,duration:.5})
	//window.setTimeout("Prod_MultiAddToBasketSC()",900)
}

function checkQTY() {
	var OK = 1
	var total = 0
	var firstElement = ''
	var inputs = 0
	$('productForm').select('input').each(function(element) {
		if(element.type=='text') {
			if(isNaN(element.value)||element.value=='')	{
				OK = 0
				element.addClassName('formError')
				firstElement=element
			}
			else {
				element.removeClassName('formError')
				total = total + parseInt(element.value)
			}
			inputs++
		}
	})

	if(OK&&total>0) {
		return true;	
	}

	if(inputs==1) {
		showDialog(firstElement,'You will need to enter a quantity in order<br />to add this item to your cart.','closeDialog()','')
	}
	else {
		showDialog('','You will need to enter a quantity in order<br />to add this item to your cart.','closeDialog()','')
	}
	return false;
}



function Prod_MultiAddToBasketSC(){
	// add products to basket
	
	//_DEBUD_MODE = true; 
	clearTimeout(basketTimer)
	//initDialogCart();
	var origContent = $('addtocartmsg').previous().innerHTML

	if (checkQTY()) //ajaxproduct.js
	{
		//style="line-height:4px;"
		//$('addtocartmsg').innerHTML = '<br style="line-height:5px;"><img src="images/ajax_indicator_sm.gif" />';
		
		$('addtocartmsg').previous().observe('mouseout',function() {
			//$('searchField').value="###"
			$('addtocartmsg').previous().innerHTML = origContent
			$('addtocartmsg').previous().removeClassName('buttonAddToCartHover')
			
		})
		//$('addtocartmsg').previous().innerHTML="<div><img src='/Bus/B25/s1/siteskins/assets_1/Spinner.gif'></div>"
		jumpy()
		if(checkIE8()) {
			ajaxDelay = 600
		}
		else {
			ajaxDelay = 1
		}
		
		window.setTimeout(function(){
		new Ajax.Request('/ajax/multiAddToBasket.taf', 
		{   
			parameters: $('productForm').serialize(true),
			onSuccess: function(transport) { 
				$('errorMessage').innerHTML = '';
				$('ajaxcartresponse').innerHTML = transport.responseText;
				$('addtocartmsg').previous().innerHTML=origContent
					var cartresponse = $('addmsg').innerHTML;
					var totalprice = $('totalprice').innerHTML;
					var totalquantity = $('totalquantity').innerHTML;
					$('basketquantity').innerHTML = '';
					$('addtocartmsg').innerHTML = "";
					$('miniCart').innerHTML = '';
					sch_MiniBasket();
					sch_DisplayBasketTotals(totalquantity,totalprice);

			}
		})
		},ajaxDelay)
	}

}

function Prod_SingleAddToBasketSC(){
	//initDialogCart();

	$('addtocartmsg').innerHTML = '<img src="images/ajax_indicator_sm.gif" />';
	new Ajax.Request('/multiAddToBasket.taf', 
	{   
		parameters: $('productForm').serialize(true),
		onSuccess: function(transport) { 
			$('ajaxcartresponse').innerHTML = transport.responseText;
			
			var basketerror = $('basketerror');
			if (basketerror != null)
			{
				$('addtocartmsg').innerHTML = "";
				alert(basketerror.innerHTML);
			}
			else
			{
				var cartresponse = $('addmsg').innerHTML;
				var totalprice = $('totalprice').innerHTML;
				var totalquantity = $('totalquantity').innerHTML;
				//$('addtocartmsg').innerHTML = cartresponse;
				$('addtocartmsg').innerHTML = "";
				$('dialogCartMsg').innerHTML = cartresponse;
				jQuery('.dialogCart').fadeOut('medium');
				jQuery('#dialogCart').fadeIn('medium');
				$('basketquantity').innerHTML = totalquantity;
				$('basketprice').innerHTML = totalprice;
			}
		}
	});
}

function printPage() {
	// this copies the main area to a hidden Iframe, then prints what's in the iframe
	
	if(!$('printWin')) {
		printWin = new Element('iframe',{name:'printWin',id:'printWin',src:'/Bus/B25/S1/SiteSkins/assets_1/PrintWindow.htm',style:'height:0px;width:0px;frameBorder:0'})
		$(document.body).insert(printWin)

	}
	
}

function postMailToFriend(){
	
	
	$('tellafriendnamereq').hide()
	$('tellafriendmsg').hide()
	$('tellafriendmsg').innerHTML = '';
	tEmail = document.sendToFriend.tEmail.value;
	yEmail = document.sendToFriend.yEmail.value;
	yName = document.sendToFriend.yName.value;
	//if (yName == '')
	//{
	//	$('tellafriendnamereq').show()
	//	return;
	//}
	friendMessage = document.sendToFriend.friendMessage.value;
	proid = document.sendToFriend.proid.value;
	if((tEmail!='') && (yEmail!='')){
		//mailToFriend = new Image();
		//mailToFriend.src= globalFilePath + 'tellAFriend.taf?tEmail=' + tEmail + '&yEmail=' + yEmail + '&yName=' + yName + '&friendMessage=' + friendMessage + '&proid=' + proid + '&' + globalUserKey;
		var url = globalFilePath + 'tellAFriend.taf?tEmail=' + tEmail + '&yEmail=' + yEmail + '&yName=' + yName + '&friendMessage=' + encodeURI(friendMessage) + '&proid=' + proid + '&' + globalUserKey;
		tellafriendAjax(url);
	}
}

function tellafriendAjax(url){
  	document.sendToFriend.bttnSendAFriend.value = "Sending...";
	document.sendToFriend.bttnSendAFriend.disabled = true;
	

	var xmlhttp = null;
	//var moment = new Date();
	//ts = moment.getHours() + '-' + moment.getMinutes() + '-' + moment.getSeconds() + '-' + moment.getMilliseconds();
	if (window.XMLHttpRequest){ 
		xmlhttp = new XMLHttpRequest();
	}else if (window.ActiveXObject){
		xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
	}

	try {
		xmlhttp.open('POST',url,true);
		xmlhttp.onreadystatechange = function(){
			if(xmlhttp.readyState == 4){
				if(xmlhttp.status == 200){
					ShowDebugAjaxL(xmlhttp,url,'');
					document.sendToFriend.bttnSendAFriend.disabled = true;
      				document.sendToFriend.bttnSendAFriend.value = "Send Message";
 					
					if(xmlhttp.responseText=='OK'){
						//alert('Your message has been sent');
						$('tellafriendmsg').innerHTML = 'Your message has been sent';
						$('tellafriendmsg').show();
					}else{
						//alert('Sorry, failed to send email');
						$('tellafriendmsg').innerHTML = 'Failed to send the message, please try again later';
						$('tellafriendmsg').show();
					}
				}
			}
		}
		xmlhttp.send('');
	}
	catch(e) {
		//alert(e)
		alert('Sorry, failed to send email.');
	}
}



//gift selector
var shopForBypass = 0
function shopFor(element) {
	var skip = false;
	var num
	
	clicked = $(element).id
		
	//show spinner	
	myPos = findPos($(element))
	/*if(!$('loadSpinner')) {
		$(document.body).insert(new Element('div',{id:'loadSpinner',style:'position:absolute'}).update('<img src="'+imgPath+'SpinnerSmall.gif" />'))		
	}
	$('loadSpinner').style.top = myPos[1]+2+'px'
	$('loadSpinner').style.left = myPos[0]+150+'px'		
	$('loadSpinner').show()
	*/	
	//clear second selection if first changes
	if(clicked=='SF1'&&$('SF2').selectedIndex<1) {
		$('SF2').length=1	
	}


	//$('SFResponseIndicator').innerHTML="aaa<img src='/Bus/B25/s1/siteskins/assets_1/Spinner.gif'/>"
	if(document.SF.C.selectedIndex>0||shopForBypass==1) {
		var A = document.SF.A[document.SF.A.selectedIndex].value
		var B = document.SF.B[document.SF.B.selectedIndex].value
		var C = document.SF.C[document.SF.C.selectedIndex].value
		var Bt = ''
		var Ct = ''
		var Cp = ''
		var At = stripChars(document.SF.A[document.SF.A.selectedIndex].text).replace(" ","-")
			//alert(stripChars(document.SF.A[document.SF.A.selectedIndex].text));
			//alert(At);
		if(B!='') {
			Bt = stripChars(document.SF.B[document.SF.B.selectedIndex].text).replace(" ","-")
		}
		if(C!='') {
			Ct = stripChars(document.SF.C[document.SF.C.selectedIndex].text).replace(" ","-")
			Cp = Ct+"-"+C
		}

		//http://scholar.staging.moveable.com/products/Grade-5-530/Female-359/Dramatic-Play-491/
		document.location = "/products/"+At+"-"+A+"/"+Bt+"-"+B+"/"+Cp
		return
	}
	switch(clicked)
	{
		case 'SF1':
			document.SF.B.selectedIndex = 0;
			$('SF3').show();
			num = 1
			if (document.SF.A.selectedIndex == 0)
			{
				$('SF2').show();
				skip = true;
			}
			break;
		case 'SF2':
			num = 2
			if (document.SF.B.selectedIndex == 0)
				$('SF3').show();
			break;
	}

	if (!skip)
	{
		var url = '/ajax/ShopForDebug.taf?'+$('SF').serialize()+"&num=" + num + "&now="+new Date()
		//x = prompt('',url)
		new Ajax.Updater('SFResponse', url,{evalScripts:true});
		//gid=1530&gid=1772&gid=1533
		//$('SFResponseIndicator').innerHTML="";
	}

}

function stripChars(txt) {
	return txt.replace(/[^a-zA-Z 0-9]+/g,'');

}

function shopForPopulate() {
	if($('SFRepsonseB')) {
		$('SF2').innerHTML = $('SFRepsonseB').innerHTML;
		//$('SF2c').innerHTML = $('SFResponseB').innerHTML;
		$('SF2').show()
		$('SFB').focus()
	}
	if($('SFRepsonseC')) {
		$('SF3').innerHTML = $('SFRepsonseC').innerHTML;
		//$('SF3c').innerHTML = $('SFRepsonseC').innerHTML;
		// if the thirs list is empty, go to the currently selected category.
		//if($('SFC').length==1) {
		//	shopForBypass = 1
		//	shopFor($('SFB')) 
		//	return;
		//}
		$('SF3').show()
		$('SFC').focus()
		
	}
	
}


function getInternetExplorerVersion() {
    var rv = -1; // Return value assumes failure.
    if (navigator.appName == 'Microsoft Internet Explorer') {
        var ua = navigator.userAgent;
        var re = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
        if (re.exec(ua) != null)
            rv = parseFloat(RegExp.$1);
    }
    return rv;
}

function checkIE8() {
    var msg = "You're not using Windows Internet Explorer.";
    var ver = getInternetExplorerVersion();
    if (ver > -1) {
        if (ver >= 8.0)
            return true
        else
           return false
    }
}

function showDialog(element,msg,ok,cancel) {
	//this is the general-purpose replacement for javascript alerts
	
	
	if($(element)&&element!='') {
		//this dialog points to an element
		myPos = findPos($(element))
		$('dialog').style.top = myPos[1]-25+'px'
		//check to see if it's off the screen
		screenPos = findPos($('root'))
		
		if(myPos[0]+element.getWidth()+2+$('dialog').getWidth()>screenPos[0]+$('root').getWidth()) {
			$('dialog').style.left = myPos[0]+2+'px'	
		}
		else {
			$('dialog').style.left = myPos[0]+element.getWidth()+2+'px'
		}
		$('dialogLeft').show()
		$(element).observe('click',stopDialog)
	}
	else {
		//this dialog is in the middle of the screen
		dOffsets = document.viewport.getScrollOffsets()
		$('overlay').style.height=$('root').getHeight()+'px'
		$('overlay').style.width=document.viewport.getWidth()+'px'
		$('dialog').style.top = dOffsets.top+250+'px'
		$('dialog').style.left = parseInt(document.viewport.getWidth()/2)-100+'px'
		$('overlay').show()
		$('dialogLeft').hide()
	}
	
	
	
	//hide both buttons
	$('dialogBtn1').hide()
	$('dialogBtn2').hide()
	if(ok!="") {
		$('dialogBtn1').observe('click',function(){eval("$('overlay').hide();$('dialog').hide();"+ok)})
		$('dialogBtn1').show()		
	}
	if(cancel!="") {
		$('dialogBtn2').observe('click',function(){eval("$('overlay').hide();$('dialog').hide()"+cancel)})
		$('dialogBtn2').show()		
	}
	$('dialogMsg').update(msg)
			
	new Effect.Appear('dialog',{duration:.5})
}

function closeDialog() {
	$('dialog').hide()
}

function stopDialog(evt) {
	//kill the click event and close the dialog
	var element = Event.element(evt);	
	$(element).stopObserving('click',stopDialog)
	closeDialog()
}
			


function quickBillCopy(){
	document.addressForm.sameAsBilling.checked = true;
	matchBilling()
}

function matchBilling(){
	var af = document.addressForm
	af.sAddList.selectedIndex = 0;

	if(af.sameAsBilling.checked){

			af.scompany.value = af.bcompany.value;
			af.sadd1.value = af.badd1.value;
			af.sadd2.value = af.badd2.value;
			af.scity.value = af.bcity.value;
			af.szip.value = af.bzip.value;
			af.stel.value = af.btel.value;
			af.stele.value = af.btele.value;
			af.sfax.value = af.bfax.value;
			af.sfname.value = af.bfname.value;
			af.slname.value = af.blname.value;
			af.semail.value = af.bemail.value;
			//af.sstateId.selectedIndex = af.bstateId.selectedIndex;
			af.sCountryId.value = af.bCountryId.value;
			Checkout_PopulateStatesList(af.sCountryId.value,af.bstateId.value,'Shipping');
			
			/*if(document.addressForm.bAPO.checked == true){
				document.addressForm.sAPO.checked = true;
			}
			else{
				document.addressForm.sAPO.checked = false;		
			}*/

	}
	else{
		af.scompany.value = '';
		af.sadd1.value = '';
		af.sadd2.value = '';
		af.scity.value = '';
		af.szip.value = '';
		af.stel.value = '';
		af.stele.value = '';
		af.sfax.value = '';
		af.sfname.value = '';
		af.slname.value = '';
		af.semail.value = '';
		af.sCountryId.value = '';
		Checkout_PopulateStatesList('','','Shipping');
		//document.addressForm.sAPO.checked = false;
	}	
}

function validateemail(email) {
   var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
   var address = email;
   if(reg.test(address) == false) {
      //alert('Invalid Email Address');
      return false;
   }
   else
	  return true;
}

function validateName(name) {
   var reg = /^([^-<>'"\?])+$/;
   var theName = name;
   if(reg.test(theName) == false) {
      //alert('Invalid Email Address');
      return false;
   }
   else
	  return true;
}

var _isAddFormSubmited= false;
function valAddForm(){ 
	if(_isAddFormSubmited) return;
	var stop = 0;
	var focusObj ='';
	var tel = 0;
	var reff = 0;
	var af = document.addressForm
	var msg = ""
	var firstElement=''
	
	var formOK=1
	$('root').select('.req').each(function(element) {
		if(element.selectedIndex) {
			//this is a select statement
			if(element.selectedIndex<1) {
				element.addClassName('formError')
				formOK = 0
				if(firstElement=='') {
					firstElement = element
				}
			}
			else {
				element.removeClassName('formError')
			}
		}
		else {
			//this is a text box
			if(element.value=="") {
				element.addClassName('formError')
				formOK = 0
				if(firstElement=='') {
					firstElement = element
				}
			}
			else {
				element.removeClassName('formError')
			}
		}
	})
	

	if(isZipFix(af.bzip,af.bCountryId.value)==false){
	   msg = msg + ('<br />Invalid Billing Zip Code');
	   formOK = 0
	   if(firstElement=='') {
			firstElement = element
		}
	}

	if(isZipFix(af.szip,af.sCountryId.value)==false){
		msg = msg + ('<br />Invalid Shipping  Zip Code');
		formOK = 0
		if(firstElement=='') {
			firstElement = element
		}
	}

	if(validateemail(af.bemail.value)==false){
		 msg = msg + ('<br />Invalid Billing Email Address');
		 formOK = 0
		 if(firstElement=='') {
			firstElement = element
		}
	}
	
	if(af.semail.value != '' && validateemail(af.semail.value)==false){
		 msg = msg + ('<br />Invalid Shipping Email Address');
		 formOK = 0
		 if(firstElement=='') {
			firstElement = element
		}
	}

	

	
	if((af.bsave.checked == true) && (af.ssave.checked == true)){
			if((af.scompany.value == af.bcompany.value) &&
				(af.sadd1.value == af.badd1.value) &&
				(af.sadd2.value == af.badd2.value) &&
				(af.scity.value == af.bcity.value) &&
				(af.szip.value == af.bzip.value) &&
				(af.stel.value == af.btel.value) &&
				(af.stele.value == af.btele.value) &&
				(af.sfax.value == af.bfax.value) &&
				(af.sfname.value == af.bfname.value) &&
				(af.slname.value == af.blname.value) &&
				(af.semail.value == af.bemail.value) &&
				(af.sstateId.selectedIndex == af.bstateId.selectedIndex)){
				af.ssave.checked == false;
			}
	}

	if(formOK) {
		EnableDisableAddressFileds('billing',true);
		EnableDisableAddressFileds('shipping',true);
		$("button").disabled = true;
		_isAddFormSubmited = true;
		af.submit();	
	}
	else {
		new Effect.ScrollTo(firstElement,{duration:.6})
		showDialog(firstElement,'Please complete all required fields'+msg,"closeDialog()","")
	}

	
}





var slidePos = 1
var slidetimer

/*function flipSlide() {
	clearTimeout(slidetimer)
	$('slideshow').style.backgroundImage = "url(" + $('slideshow').down('img').src + ")"
	var nextPos = slidePos + 1
	if(nextPos>homeSlides.slides.length-1) {
		nextPos = 0	
	}
	$('slideshow').down('img').hide()
	//$('slideshow').down('img').src = $('slideshow').down('img').src.replace("HomeSlide"+slidePos,"HomeSlide"+nextPos)
	$('slideshow').down('img').src = assetPath + homeSlides.slides[nextPos].img
	$('slideshow').down('a').href = homeSlides.slides[nextPos].url
	new Effect.Appear($('slideshow').down('img'),{duration:.5})
	slidePos = nextPos
	slidetimer = window.setTimeout(function() {flipSlide()},6000)
}

function jumpToSlide(n) {
	clearTimeout(slidetimer)
	$('slideshow').style.backgroundImage = "url(" + $('slideshow').down('img').src + ")"
	$('slideshow').down('img').hide()
	$('slideshow').down('img').src = $('slideshow').down('img').src = assetPath + homeSlides.slides[n].img
	$('slideshow').down('a').href = homeSlides.slides[n].url
	new Effect.Appear($('slideshow').down('img'),{duration:.5})
	slidePos = n
	slidetimer = window.setTimeout(function() {flipSlide()},6000)

}*/

//initilization
function init() {
	$('navPanel').select('.panelList').each(function(element) {
		element.hide()
	})
	
	$('root').select('.contentPageRight').each(function(element) {
		element.insert(new Element('div',{className:'clear'}),{position:'after'})
	})
	
	$('root').select('.contentPageTwoColumn').each(function(element) {
		element.insert(new Element('div',{className:'clear'}),{position:'after'})
	})
	
	//insert mini cart
	$(document.body).insert(new Element('div',{className:'miniCart',id:'miniCart',style:'display:none'}))
	
	//$(document.body).insert(new Element('a',{onclick:'printPage()'}).update("PRINT"))
	

	
	// Event hooks
	
	//select all on click for code boxes
	$('root').select('.codeInput').each(function(element){
		$(element).observe('click',function(){this.select()})
	})
	
	//initialize drop-down controls
	$('root').select('.ddControl').each(function(element){
		$(element).observe('click',ddControl)
		//adjust width of myParent	

	})
	
	
	
	//initialize ellipsis elements, such as product name
	if($('prodPreviewHolder')||$('prodInfoRight')) {
		var prodNameMaxHeight = 40
		var myTipShadow = new Element('div',{id:'prodTipShadow',style:'display:none',className:'prodTipShadow'})
		$(document.body).insert(myTipShadow)
		$(document.body).select('.ellipsis').each(function(element) {
			var limit = 50
			var attempts = 0
			var origName = element.innerHTML
	
			while (element.getHeight()>prodNameMaxHeight&&attempts<limit)  {
				var prodName = element.innerHTML.replace("&hellip;","")
				var prodNameArr = prodName.split(" ")
				var newName = ""
				for(var x=0;x<prodNameArr.length-2;x++) {
					newName = newName + prodNameArr[x]+" "
				}
				element.innerHTML = newName + prodNameArr[x]+"&hellip;"	
				attempts++
			}
			if(attempts>0) {
				var myTip = new Element('div',{style:'display:none',className:'prodTip'}).update(origName)			
				$(document.body).insert(myTip)			
				$(element).observe('mouseover',prodShowTip.curry(myTip))
				myTip.observe('mouseout',function(){this.hide();$('prodTipShadow').hide()})
			}		
		})
	}
	
	
	//manage left menu
	if($('leftNav')) {
		if(!$('leftPanel')) {
			$(document.body).insert(new Element('div',{id:'leftPanel',className:'leftPanel',style:'display:none'}))	
		}	
		var maxLeftList = 5
		var thisItem = 1
		var thisList
		$('leftNav').select('ul').each(function(element) {
			thisItem = 1
			thisList = element.select('li').toArray()
			//$('searchField').value=thisList.length+", "+(maxLeftList+1)
			// id there are one more than the max, just show the extra item
			element.select('li').each(function(element) {
				if(thisItem>maxLeftList&&thisList.length!=maxLeftList+1) {
					element.addClassName('hidden')
				}
				thisItem++
			})
			if(thisItem>5&&(thisItem-maxLeftList-1)>0&&thisList.length!=maxLeftList+1) {
				element.insert("<a href='javascript:;//' onclick='leftMore(this)'><span class='red'>"+(thisItem-maxLeftList-1)+" more...</span></a>",{position:'after'})
			}
		})
		
	}

	/*if($('slideshow')) {
			var n = 0

			$('slideshow').select('li a').each(function(element) {
				element.href="javascript:jumpToSlide("+(n)+")"
				n++
				//element.observe('click',function(){jumpToSlide})									 
			})
			$('slideshow').down('a').href=homeSlides.slides[0].url
			
			slidetimer = window.setTimeout(function(){flipSlide()},5000)	
	}*/
	

	//fix multi-level similar items phrases.
	if($('prodInfoRight')&&4==5) {	
		var gt = ""
		if($('prodInfoRight').innerHTML.indexOf('Similar')>1) {
			var x = 0
			var phrase = ''
			var newPhrase = ''
			myList = $('prodInfoRight').select('li').toArray()
			$('prodInfoRight').select('li').each(function(element) {
				if(element.down().innerHTML.indexOf('&gt;')>1) {
					if(phrase=='') {
						phrase = myList[x-1].down().innerHTML
					}
					newPhrase = element.down().innerHTML 
					element.down().innerHTML = gt + myList[x].down().innerHTML.replace(phrase,"&nbsp;")
					if(newPhrase != myList[x].down().innerHTML.replace(phrase,"&nbsp;")) {
						phrase = newPhrase
						gt = gt +"&nbsp;&nbsp;&nbsp;"
					}
					else {
						phrase = ''
						gt = ''
					}
				}
				x++
			})
		}
	}





}

document.observe("dom:loaded", function() {
  init()
});






/// Please put all script additions ABOVE the init() function ///

/// Don't put anything down below. Bad, bad. ////
