/* class for individual slides */
function StarrySliderItem( url , prodtitle , imgUrl, prodname, proddesc, storebtn, current_store){
	this.url = url;
	this.prodtitle = prodtitle;
	this.imgUrl = imgUrl;
	this.prodname = prodname;
	this.proddesc = proddesc;
	this.storebtn = storebtn;
	this.current_store = current_store;
	if(current_store == "orion") {
		this.storeUrl = "http://www.telescope.com";
	}else{
		this.storeUrl = "http://www.starrynight.com/";
	}
	this.parentBrowser = null;
}						
							
/* class for the slide player */
function StarrySliderBrowser( elementId, leftArrowId, rightArrowId, displayItemsCount , scrollItemsCount, imgSrc ){
	this.elementId = elementId;
	this.leftArrowId = leftArrowId;
	this.rightArrowId = rightArrowId;
	this.displayItemsCount = displayItemsCount;		// total number of items to be displayed at one time
	this.scrollItemsCount = scrollItemsCount;		// how many items to scroll by when clicking next or previous
	this.itemArray = new Array();
	this.itemIndex = 0;
	this.imgSrc = imgSrc;
	this.leftImgOff = this.imgSrc + "spc_srch_shopbutntop_174x24.gif";
	this.leftImgOn = this.imgSrc + "spc_srch_shopbutntop_174x24.gif";
	this.rightImgOff = this.imgSrc + "spc_srch_shopbutnbtm_174x30.gif";
	this.rightImgOn = this.imgSrc + "spc_srch_shopbutnbtm_174x30.gif";
	this.current_store = null;
	
}


StarrySliderBrowser.prototype.showButtons = function(){
	if (document.createElement){
	
		//begin left arrow
		MOTHleftArrow = document.getElementById(this.leftArrowId);
		//create image
		isOff = (this.itemIndex == 0);
		MOTHleftArrowImg = document.createElement("IMG");
		state = (isOff) ? this.leftImgOff : this.leftImgOn;
		MOTHleftArrowImg.setAttribute("src", state );
		MOTHleftArrowImg.setAttribute("name", "moth_reverse"); 
				
		//create anchor
		if (!isOff){
			MOTHleftArrowAnchor = document.createElement( "A" );
			MOTHleftArrowAnchor.setAttribute("href", "javascript:browser2.update(0)");
			MOTHleftArrowAnchor.appendChild(MOTHleftArrowImg);
			MOTHleftArrow.appendChild(MOTHleftArrowAnchor);
		} else {
			MOTHleftArrow.appendChild(MOTHleftArrowImg);
		}
		//end left arrow

		//begin right arrow
		MOTHrightArrow = document.getElementById(this.rightArrowId);
		//create image
		isOff = ((this.itemIndex + this.displayItemsCount) >= this.itemArray.length);
		MOTHrightArrowImg = document.createElement("IMG");
		state = (isOff) ? this.rightImgOff : this.rightImgOn;
		MOTHrightArrowImg.setAttribute("src", state );
		MOTHrightArrowImg.setAttribute("name", "moth_forward"); 
		//create anchor
		if (!isOff){	
			MOTHrightArrowAnchor = document.createElement("A");
			MOTHrightArrowAnchor.setAttribute("href" , "javascript:browser2.update(1)");
			MOTHrightArrowAnchor.appendChild(MOTHrightArrowImg);
			MOTHrightArrow.appendChild(MOTHrightArrowAnchor);
		} else {
			MOTHrightArrow.appendChild(MOTHrightArrowImg);
		}	
		//end right arrow
	}
}


StarrySliderItem.prototype.write = function(which){
	if( document.createElement ){
		 parentElement = document.getElementById( this.parentBrowser.elementId );
		 if( parentElement.tagName == "TABLE" && this.parentBrowser.getBodyRow ){
			


			
			// create body
			storyObj = document.createElement( "DIV" );
			storyObj.className = "product";
			
			prodtitleObj = document.createElement( "DIV" );
			prodtitleObj.className = "prodtitle";
			prodtitleObj.appendChild( document.createTextNode( this.prodtitle ) );

			prodimgObj = document.createElement( "DIV" );
			prodimgObj.className = "prodimg";
			
			prodimgLinkObj = document.createElement( "A" );
			prodimgLinkObj.setAttribute( "href" , this.url );
			prodimgLinkObj.setAttribute( "alt" , this.prodname );
			
			prodimgLinkImgObj = document.createElement( "IMG" );
			prodimgLinkImgObj.setAttribute( "src" , this.imgUrl );
			prodimgLinkImgObj.width=100;	
			prodimgLinkImgObj.height=100;	
			prodimgLinkObj.appendChild( prodimgLinkImgObj );
			prodimgObj.appendChild( prodimgLinkObj );

			prodnameObj = document.createElement( "DIV" );
			prodnameObj.className = "prodname";
			prodnameLinkObj = document.createElement( "A" );
			prodnameLinkObj.setAttribute( "href" , this.url );
			prodnameLinkObj.setAttribute( "alt" , this.prodname );
			prodnameLinkObj.appendChild( document.createTextNode( this.prodname ) );			
			prodnameObj.appendChild( prodnameLinkObj );

			proddescObj = document.createElement( "DIV" );
			proddescObj.className = "proddesc";
			proddescLinkObj = document.createElement( "A" );
			proddescLinkObj.setAttribute( "href" , this.url );
			proddescLinkObj.setAttribute( "alt" , this.prodname );
			proddescLinkObj.appendChild( document.createTextNode( this.proddesc ) );
			proddescObj.appendChild( proddescLinkObj );
			
			learnmoreObj = document.createElement( "DIV" );
			learnmoreObj.className = "prodarrw";
			learnmoreObj.appendChild( document.createTextNode( ">" ) );
			learnmoreLinkObj = document.createElement( "A" );
			learnmoreLinkObj.setAttribute( "href" , this.url );
			learnmoreLinkObj.setAttribute( "alt" , this.prodname );
			learnmoreLinkObj.appendChild( document.createTextNode( "Learn More" ) );
			learnmoreObj.appendChild( learnmoreLinkObj );			


			storyObj.appendChild( prodtitleObj );
			storyObj.appendChild( prodimgObj );
			storyObj.appendChild( prodnameObj );
			storyObj.appendChild( proddescObj );
			storyObj.appendChild( learnmoreObj );
			


			// JLB 08/28/06 in order to make a vertical scroll, I've added 
			// .getElementsByTagName( "TD" )[0] to getBodyRow
			// and commented out the following line
			// tdObj.appendChild( storyObj );


			if(this.storebtn != "" && this.parentBrowser.current_store != this.current_store) {
				this.parentBrowser.current_store = this.current_store;
				storebtnObj = document.createElement( "DIV" );
				storebtnObj = document.className="storebtn";
				
				storebtnImgObj = document.createElement( "IMG" );
				storebtnImgObj.setAttribute( "src" , this.storebtn );
				
				storebtnLinkObj = document.createElement( "A" );
				storebtnLinkObj.setAttribute( "href" , this.storeUrl );
				storebtnLinkObj.appendChild( storebtnImgObj );
				
				this.parentBrowser.getBodyRow().appendChild( storebtnLinkObj );
			} else {
				if(which != 1) {
					spacerObj = document.createElement( "DIV" );
					spacerObj.className = "spacer";		
					this.parentBrowser.getBodyRow().appendChild( spacerObj );
					
				}
			}
			
			this.parentBrowser.getBodyRow().appendChild( storyObj );			

		 }
	}
}							
							
StarrySliderBrowser.prototype.addItem = function( item ){
	if( item instanceof StarrySliderItem ){
		item.parentBrowser = this;
		this.itemArray.push( item );
	}
}			
							
StarrySliderBrowser.prototype.update = function( doMoveRight ){

	var d=document.getElementById("btc");
	if(d.childNodes.length>0) d.removeChild(d.firstChild);


	tableObj = document.getElementById( this.elementId );
	
	//increment index count
	var origIndex = this.itemIndex;
	this.itemIndex = (doMoveRight) ? this.itemIndex + this.scrollItemsCount : this.itemIndex - this.scrollItemsCount;
	
	//set upper and lower bounds
	this.upperBound = this.itemArray.length - this.displayItemsCount;
	this.itemIndex = ((this.itemIndex + this.displayItemsCount) > this.itemArray.length) ? this.itemArray.length-this.displayItemsCount : this.itemIndex;
	this.itemIndex = (this.itemIndex < 0) ? 0 : this.itemIndex;
	
	//update button images
	this.deleteAllChildrenOf(document.getElementById(this.leftArrowId));
	this.deleteAllChildrenOf(document.getElementById(this.rightArrowId));
	this.showButtons();
	
	if (origIndex != this.itemIndex){
		//clear 
		//this.deleteAllChildrenOf( this.getHeaderRow() );
		this.deleteAllChildrenOf( this.getBodyRow() );
		
		// re-populate
		
		i=0;
		this.current_store = null;
		for( iUpdate=this.itemIndex ; iUpdate < (this.itemIndex + this.displayItemsCount) ; iUpdate++ ){
			this.itemArray[iUpdate].write(++i);
			enableTooltips('minis');
		}
	}
}

StarrySliderBrowser.prototype.getHeaderRow = function(){
	return document.getElementById( this.elementId ).getElementsByTagName( "THEAD" )[0].getElementsByTagName( "TR" )[0];
}

StarrySliderBrowser.prototype.getBodyRow = function(){
	return document.getElementById( this.elementId ).getElementsByTagName( "TBODY" )[0].getElementsByTagName( "TR" )[0].getElementsByTagName( "TD" )[0];
}

StarrySliderBrowser.prototype.deleteAllChildrenOf = function( elementObj ){
	while (elementObj.hasChildNodes()) elementObj.removeChild(elementObj.firstChild);
}
