//Ajax
function AJAX()	{
	var object;
	try	{
		object = new XMLHttpRequest();
	}
	catch(e)	{
		try	{
			object = new ActiveXObject("Microsoft.XMLHTTP");
		}
		catch(e)	{
			try	{
				object = new ActiveXObject("Msxml2.XMLHTTP");
			}
			catch(e)	{}
		}
	}
	return object;
}
//Specifications Tab Display
function SpecificationsDisplay()	{
	var specifications = document.getElementById( 'specification' ).getElementsByTagName( 'li' );
	var hiddenCount = 0;
	for( var i = 0; i < specifications.length; i++ )	{
		if( specifications[i].getElementsByTagName( 'span' )[0].innerHTML == 'noinfofound' || specifications[i].getElementsByTagName( 'span' )[0].innerHTML.indexOf( 'Error processing' ) != -1 )	{
			specifications[i].style.display = 'none';
			hiddenCount++;
		}
	}
	if( hiddenCount == specifications.length ) document.getElementById( 'btn_spec' ).style.display = 'none';
}
//Multi Images
function MultiImages()	{
	var thumbArray = [];
	var midImageArray = [];
	var bigImageArray = [];
	
	this.addImages = function ( thumbURL, mediumURL, bigURL, alt )	{
		if ( thumbURL != '' && mediumURL != '' && bigURL != '' )	{
			var thumbnail = new SmallImage ( thumbURL );
			thumbArray.push ( thumbnail );
			
			var midImage = new MediumImage ( mediumURL, alt );
			midImageArray.push ( midImage );
			
			var bigImage = new LargeImage ( bigURL );
			bigImageArray.push ( bigImage )
			
			if ( midImageArray.length == 1 )	{
				midImage.show();
				bigImage.show();
			}
			else	{
				midImage.hide();
				bigImage.hide();
			}
			
			thumbnail.onclick = showVeil;
			thumbnail.onmouseover = selectThumbnail;
			midImage.onclick = showVeil;
		}
	};
	
	this.addVeil = function()	{
		var createVeil = new Veil();
		document.body.appendChild( createVeil );
	};
	
	this.start = function()	{
		var thumbnailsContainer = document.getElementById( 'thumbnails' );
		var mainimageContainer = document.getElementById( 'mainimage' );
		var largeImageContainer = document.getElementById( 'bigimagecontainer' );
		
		for ( i = 0; i < thumbArray.length; i++ )	{
			thumbnailsContainer.appendChild ( thumbArray[i] );
			mainimageContainer.appendChild ( midImageArray[i] );
			largeImageContainer.appendChild( bigImageArray[i] );
		}
		
		document.getElementById( 'enlarge' ).onclick = showVeil;
	};
	
	this.restart = function()	{
		var thumbnailsContainer = document.getElementById ( 'thumbnails' );
		var mainimageContainer = document.getElementById ( 'mainimage' );
		var largeImageContainer = document.getElementById( 'bigimagecontainer' );
		
		for ( i = 0; i < thumbArray.length; i++ )	{
			thumbnailsContainer.removeChild ( thumbArray[i] );
			mainimageContainer.removeChild ( midImageArray[i] );
			largeImageContainer.removeChild( bigImageArray[i] );
		}
		
		thumbArray.length = 0;
		midImageArray.length = 0;
		bigImageArray.length = 0;
	};
	
	function selectThumbnail()	{
		for ( i = 0; i < thumbArray.length; i++ )	{
			if( thumbArray[i] == this )	{
				midImageArray[i].show();
				bigImageArray[i].show();
			}
			else	{
				midImageArray[i].hide();
				bigImageArray[i].hide();
			}
		}
	}
	
	function showVeil()	{
		var largeImageContainer = document.getElementById( 'bigimagecontainer' );
		var veilContainer = document.getElementById( 'veilcontainer' );
		var exitVeil = veilContainer.getElementsByTagName( 'a' )[0];
		veilContainer.style.display = 'block';
		var newLeftDistance = ( document.body.scrollWidth - largeImageContainer.scrollWidth  ) / 2;
		largeImageContainer.style.left = newLeftDistance + 'px';
		exitVeil.style.left = newLeftDistance + 'px';
		var newTopDistance = document.body.scrollTop + 40;
		largeImageContainer.style.top = newTopDistance + 'px';
		exitVeil.style.top = newTopDistance + 'px';
	}
}
function SmallImage( imageURL )	{
	var bgTop = document.createElement( 'div' );
	bgTop.className = 'bg_top_thumb';
	var bgBottom = document.createElement( 'div' );
	bgBottom.className = 'bg_bottom_thumb';
	var thumbContainer = document.createElement ( 'div' );
	thumbContainer.id = 'thumb';
	
	var image = document.createElement ( 'img' );
	image.src = imageURL;
	
	thumbContainer.appendChild ( image );
	bgBottom.appendChild( thumbContainer );
	bgTop.appendChild( bgBottom );
	return bgTop;
}

function MediumImage( imageURL, alt )	{
	var imageContainer = document.createElement( 'div' );
	imageContainer.className = 'medium_image_container';
	var imageLink = document.createElement( 'a' );
	var image = document.createElement ( 'img' );
	image.src = imageURL;
	if(alt != "")
		image.alt = alt;
	imageLink.appendChild( image );
	imageContainer.appendChild( imageLink );
	
	var opacityInterval = null;
	var opacityIndex = 0;
	
	imageContainer.show = function ()	{
		imageContainer.style.display = 'block';
	};
	
	imageContainer.hide = function ()	{
		imageContainer.style.display = 'none';
	};
	
	return imageContainer;
}

function LargeImage( imageURL )	{
	var img = document.createElement( 'img' )
	img.src = imageURL;	
	img.show = function()	{
		img.style.display = 'block'
	};	
	img.hide = function()	{
		img.style.display = 'none'
	};
	return img;
}

function Veil()	{
	var container = document.createElement( 'div' );
	container.id = 'veilcontainer';
	container.style.width = document.body.scrollWidth + 'px';
	container.style.height = document.body.scrollHeight + 'px';
	
	var veil = document.createElement( 'div' );
	veil.id = 'veil';
	veil.style.width = document.body.scrollWidth + 'px';
	veil.style.height = document.body.scrollHeight + 'px';
	veil.onclick = function()	{
		container.style.display = 'none';
	};
	
	var imageContainer = document.createElement( 'div' );
	imageContainer.id = 'bigimagecontainer';
	
	var veilOff = document.createElement( 'a' );
	veilOff.className = 'exitveil';
	veilOff.innerHTML = '';
	veilOff.onclick = function ()	{
		container.style.display = 'none';
	};
	veilOff.onmouseover = function ()	{
		veilOff.style.backgroundPosition = '0px -19px';
	};
	veilOff.onmouseout = function ()	{
		veilOff.style.backgroundPosition = '0px 0px';
	};
	
	container.appendChild( veil );
	container.appendChild( imageContainer );
	container.appendChild( veilOff );
	return container;
}
//Tab Navegation JS
function TabNavegation()	{
	var buttons = [];
	this.newButton = function( ButtonId, ContentId )	{
		var container = document.getElementById( ContentId );
		if( container.getElementsByTagName( 'div' )[0] )	{
			container = container.getElementsByTagName( 'div' )[0];
		}
		if( container.innerHTML != 'noinfofound' && container.innerHTML != '' )	{
			document.getElementById( ButtonId ).style.display = 'block';
			var button = new Button( document.getElementById( ButtonId ), document.getElementById( ContentId ) );
			button.onclick = selectButton;
			buttons.push( button );
			if( buttons.length == 1 )	{
				button.activate();
			}
			else	{
				button.deactivate();
			}
		}
		else	{
			document.getElementById( ContentId ).style.display = 'none';
			document.getElementById( ButtonId ).style.display = 'none';
		}
	};
	function selectButton()	{
		for( var i = 0; i < buttons.length; i++ )	{
			if( buttons[i] == this )	{
				buttons[i].activate();
			}
			else	{
				buttons[i].deactivate();
			}
		}
	}
	return this;
}
function Button( DOMElementButton, DOMElementContent )	{
	var content = new Content( DOMElementContent );
	DOMElementButton.activate = function()	{
		if( DOMElementButton.getElementsByTagName( 'a' )[0].className.indexOf( 'inactive' ) != -1 )	{
			DOMElementButton.getElementsByTagName( 'a' )[0].className = DOMElementButton.getElementsByTagName( 'a' )[0].className.replace( 'inactive', 'selected' );
		}
		else if( DOMElementButton.getElementsByTagName( 'a' )[0].className.indexOf( 'selected' ) == -1 )	{
			DOMElementButton.getElementsByTagName( 'a' )[0].className = DOMElementButton.getElementsByTagName( 'a' )[0].className + ' selected';
		}
		content.show();
	};
	DOMElementButton.deactivate = function()	{
		if( DOMElementButton.getElementsByTagName( 'a' )[0].className.indexOf( 'selected' ) != -1 )	{
			DOMElementButton.getElementsByTagName( 'a' )[0].className = DOMElementButton.getElementsByTagName( 'a' )[0].className.replace( 'selected', 'inactive' );
		}
		else if( DOMElementButton.getElementsByTagName( 'a' )[0].className.indexOf( 'inactive' ) == -1 )	{
			DOMElementButton.getElementsByTagName( 'a' )[0].className = DOMElementButton.getElementsByTagName( 'a' )[0].className + ' inactive';
		}
		content.hide();
	};
	DOMElementButton.onmouseover = function ()	{
		DOMElementButton.getElementsByTagName( 'a' )[0].className = DOMElementButton.getElementsByTagName( 'a' )[0].className + ' buttonover';
	};
	DOMElementButton.onmouseout = function ()	{
		DOMElementButton.getElementsByTagName( 'a' )[0].className = DOMElementButton.getElementsByTagName( 'a' )[0].className.replace( ' buttonover', '' );
	};
	return DOMElementButton;
}
function Content( DOMElementContent )	{
	this.show = function()	{
		DOMElementContent.style.display = 'block';
	};
	this.hide = function()	{
		DOMElementContent.style.display = 'none';
	};
	return this;
}
function reviewsFormDisplay( itemInternalId, onlineFormExternalUrl )	{	
	var loadCount = 0;
	//Review form display
	function formOnload()	{
		var reviewForm = document.getElementById( 'review_form_container' ).getElementsByTagName( 'iframe' )[0];
		reviewForm.style.display = 'block';
		loadCount++;
		reviewForm.parentNode.style.background = 'none';
		/*if( loadCount > 1 )	{
			reviewForm.parentNode.style.height = '20px';
		}*/
	}
	//Show Review Form
	function showReviewForm()	{
		var writeReviewLink = document.getElementById( 'write_review' );
		var formContainer = document.getElementById( 'review_form_container' )
		var reviewFormIframe = formContainer.getElementsByTagName( 'iframe' )[0];
		if( reviewFormIframe == null )	{
			var iframe = document.createElement( 'iframe' );
			iframe.frameborder = "0";
			iframe.id = "newreviewiframe";
			iframe.src = onlineFormExternalUrl + "&redirect_count=1&did_javascript_redirect=T&custrecordreviewnsitemid=" + itemInternalId;
			
			if( iframe.attachEvent )	{
				iframe.attachEvent( 'onload', formOnload );
			}
			else if( iframe.addEventListener )	{
				iframe.addEventListener( 'load', formOnload, true );
			}
			formContainer.appendChild( iframe );
			formContainer.style.display = 'none';
		}
		
		if( formContainer.style.display == 'none' )	{
			formContainer.style.display = 'block';
		}
		
		else if( formContainer.style.display == 'block' )	{
			formContainer.style.display = 'none';
		}
	}
	var writeReviewLink = document.getElementById( 'write_review' );
	var writeReviewLink2 = document.getElementById( 'write_review_2' );
	if( writeReviewLink.attachEvent )	{
		writeReviewLink.attachEvent( 'onclick', showReviewForm );
		writeReviewLink2.attachEvent( 'onclick', showReviewForm );
	}
	else if( writeReviewLink.addEventListener )	{
		writeReviewLink.addEventListener( 'click', showReviewForm, true );
		writeReviewLink2.addEventListener( 'click', showReviewForm, true );
	}
}

//Fire Event Function
function fireEvent( element, event )	{
	if( document.createEventObject )	{
		// dispatch for IE
		var evt = document.createEventObject();
		return element.fireEvent( 'on' + event, evt )
	}
	else	{
		// dispatch for firefox + others
		var evt = document.createEvent( "HTMLEvents" );
		evt.initEvent( event, true, true );
		return !element.dispatchEvent( evt );
	}
}

//Display Finishes
function displayFinish ( thumb, price, name, url )	{
	var itemLink 	= document.createElement( 'a' );
	var wrongDomain	= 'shopping.netsuite.com/';
	var rightDomain	= 'www.sonomawineaccessories.com/'
	itemLink.href 	= url;
	
	var thumbnail = document.createElement( 'img' );
	thumbnail.src = thumb.indexOf(wrongDomain) != -1 ? thumb.replace(wrongDomain, rightDomain) : thumb;
	thumbnail.style.width = '125px';
	itemLink.appendChild ( thumbnail );
	
	var itemName = document.createElement( 'p' );
	itemName.innerHTML = name;
	itemName.className = 'itemid';
	
	var itemPrice = document.createElement('p' );
	itemPrice.innerHTML = '$'+price;
	itemPrice.className = 'itemprice';
	
	var finishCell = document.createElement( 'div' );
	finishCell.appendChild ( itemLink );
	finishCell.appendChild ( itemName );
	finishCell.appendChild ( itemPrice );
	finishCell.className = 'finish_cell';
	
	var container = document.getElementById ( 'a_finishes_table' );
	var lastRow = container.rows[container.rows.length -1];
	
	if ( lastRow.cells.length == 3 )	{
		lastRow = container.insertRow ( container.rows.length );
	}
	
	var lastTd = lastRow.insertCell ( lastRow.cells.length );
	lastTd.appendChild ( finishCell );						
}
/* Coded By AD, SuiteCommerce */
