function hasClass( ele, cls ) {
	return ele.className.match( '\\b' + cls + '\\b' );
}
    
function addClass( ele, cls ) {
    if (!this.hasClass(ele, cls)) ele.className += " " + cls;
}

function removeClass( ele, cls ) {
    if( hasClass( ele, cls ) ) {    
        var reg = new RegExp( '\\b' + cls + '\\b' );
        ele.className = ele.className.replace( reg, ' ' );
    }
}

function removeClassFromChildren( ele, cls ) {
	var kids = ele.childNodes;
	for( var i = 0; i < kids.length; ++i ) {
		if( kids[ i ].className )
			removeClass( kids[ i ], cls );	
			
		if( kids[ i ].childNodes.length )
			removeClassFromChildren( kids[ i ], cls );
	}
			
}

function doAlert( text ) {
	alert( text );
	return false;
}

function jumpToContent( src, target, image_target, image_src, image_title_src, image_title, image_caption_src, image_caption ) {
	// get the event
	/*
var event = window.event;
	if( !event )
		return doAlert( "couldn't get event" );
	
	// get the element that caused the jump event
	var element = event.target || event.srcElement;
	if( !element )
		return doAlert( "couldn't get element" );
		
*/
	// de-select the parent elements
	removeClassFromChildren( src.parentNode.parentNode, 'selected' );
	
	// select the element that caused the jump event
	addClass( src, 'selected' );

	// get the content target
	var t = RDJ.$( target );
	if( target )
		t.scrollIntoView( true );
	else
		return doAlert( "couldn't get target" );
		
	// get the image target
	var it = RDJ.$( image_target );
	if( it )
		it.src = image_src;
	else
		return doAlert( "couldn't get image" );
		
	// get the image title source
	var ti = RDJ.$( image_title_src );
	if( ti ) {
		it.alt = image_title;
		ti.innerHTML = image_title;
	} else
		return doAlert( "couldn't get image title" );
	
	// get the image caption source
	var ic = RDJ.$( image_caption_src );
	if( ic )
		ic.innerHTML = image_caption;
	else
		return doAlert( "couldn't get image caption" );
		
	return true;
}

function setTab( tab ) {
	if( typeof tab == "undefined" ) return false;
	
	var node1;
	var node2;
	var li1 = RDJ.$( tab );
	var li2;
	
	switch( tab ) {
		case 'pd-dims-li':
			node1 = RDJ.$( 'product-dimensions' );
			node2 = RDJ.$( 'product-prices' );
			li2 = RDJ.$( 'pd-prices-li' );
			break;
		case 'pd-prices-li':
			node1 = RDJ.$( 'product-prices' );
			node2 = RDJ.$( 'product-dimensions' );
			li2 = RDJ.$( 'pd-dims-li' );
			break;
		default:
			return false;
			break;
	}
	
	var tmp = li1.className;
	li1.className = li2.className;
	li2.className = tmp;
	node1.style.display = 'inline';
	node2.style.display = 'none';
}

function setProductImage( src, title, caption ) {
	var image = RDJ.$( 'product-image-main' );
	if( !image )
		return false;
	image.src = src;
	
	RDJ.$( 'product-image-title' ).innerHTML = title;
	RDJ.$( 'product-image-caption' ).innerHTML = caption;
	
	return true;
}

function setMenuImage( src, title ) {
	var image = RDJ.$( 'menu-image' );
	if( !image )
		return false;
	image.src = src;
	image.alt = title;
}
