
function get_li_elements( element ){
	if( element.getElementsByTagName( "ul" ).length ){
		var children = element.getElementsByTagName( "ul" )[0].childNodes ;
		var element_children = new Array() ;

		for( var i = 0 ; i < children.length ; i++ ){
			if( children[i].nodeName.toLowerCase() == "li" ){
				element_children.push( i ) ;
			}
		}
		return element_children ;
	}
}

function define_size( element ){
	var element_children = get_li_elements( element ) ;
	var element_size = 0 ;
	for( var i = 0 ; i < element_children.length ; i++ ){
		element_size += element.getElementsByTagName( "ul" )[0].childNodes[element_children[i]].offsetHeight ;
	}
	element_size += 10 ;
	return element_size ;
}

function define_space_left( element , from ){
	var space_left = 0 ;
	var element_size = define_size( element ) ;
	var parent_children = get_li_elements( element.parentNode.parentNode ) ;
	for( var i = 0 ; i < parent_children.length ; i++ ){
		if( element.parentNode.childNodes[parent_children[i]] == element ){
			if( from == "bottom" ){
				for( var j = i + 1 ; j < parent_children.length ; j++ ){
					space_left += element.parentNode.childNodes[parent_children[j]].offsetHeight ;
				}
			}
			if( element.parentNode.parentNode.id != "sideMenu" && element.parentNode.parentNode.className != "showMenuContainer" ){
//				space_left += 13 ;
				space_left += define_space_left( element.parentNode.parentNode.parentNode , from ) ;
			}
			else {
				if( ( element_size / 2 ) > space_left ){
					space_left = 13 ;
				}
				else {
					space_left -= ( element_size / 2 ) ;
				}
			}
			break ;
		}
		else{
			if( from == "top" ){
				space_left += element.parentNode.childNodes[parent_children[i]].offsetHeight ;
			}
		}
	}
	return space_left ;
}

function define_top( element ){
	var element_size = define_size( element ) ;

	if( element.parentNode.parentNode.id != "sideMenu" && element.parentNode.parentNode.className != "showMenuContainer" ){
		var space_left_top = define_space_left( element , "top" ) ;
		var space_left_bottom = define_space_left( element , "bottom" ) ;
	}
	else {
		var space_left_top = 0 ;
		var space_left_bottom = 0 ;
		var parent_children = get_li_elements( element.parentNode.parentNode ) ;
		for( var i = 0 ; i < parent_children.length ; i++ ){
			if( i == 0 ){
				space_left_top += 3 ;
			}
			if( i == parent_children.length - 1 ){
				space_left_bottom += 13 ;
			}
			if( element.parentNode.childNodes[parent_children[i]] == element ){
				for( var j = i + 1 ; j < parent_children.length ; j++ ){
					space_left_bottom += element.parentNode.childNodes[parent_children[j]].offsetHeight ;
				}
				break ;
			}
			else{
				space_left_top += element.parentNode.childNodes[parent_children[i]].offsetHeight ;
			}
		}
	}

	if( ( element_size / 2 ) > space_left_top ){
		return - ( space_left_top + element.offsetHeight - 18 ) ; ;
	}

	if( ( element_size / 2 ) > space_left_bottom ){
		space_left_bottom = element_size + 2 - space_left_bottom ;
		return - space_left_bottom ;
	}

	return - ( element_size / 2 ) ;
}

function populate( element ){
	if( element.getElementsByTagName( "a" ).length ){
		if( element.getElementsByTagName( "a" )[0].className == "no_sign" ){
			return false ;
		}
	}
	var request = livraria_ajax_request() ;
	if( request === false ){
		return false ;
	}
	else{
		var category = element.getElementsByTagName( "a" )[0].href.split( "/categoria/" )[1] ;
		category = decodeURIComponent( category ) ;

		var parameters = 'category=' + category ;
		var url = "/ajax_handle_sidebar" ;
		var method = "post" ;
		livraria_ajax_open_send( request , method , url , parameters ) ;

		request.onreadystatechange = function(){
			if( request.readyState == 4 ){ // state of request = complete
				if( request.status == 200 ){ // server response = ok
					eval ( request.responseText ) ;
					var html = element.innerHTML ;
					if( results.length > 0 ){
						html += "<div class=\"container\">" ;
						html += "<p>&nbsp;<\/p>" ;
						html += "<ul>" ;
						for( var i = 0 , j = results.length ; i < j ; i++ ){
							html += "<li" ;
							if( i > 0 ){
								if( results[i][3] != results[i - 1][3] ){
									html += " class=\"new_section\"" ;
								}
							}
							else{
								html += " class=\"first\"" ;
							}
							html += " onMouseOver=\"javas" + "cript: mark( this , true ) ;\" onMouseOut=\"javas" + "cript: mark( this , false ) ;\"><a" ;
							if( results[i][4] == '0' ){
								html += " class=\"no_sign\"" ;
							}
							html += " href=\"" + decodeURIComponent( results[i][1] ) + "\">" + results[i][2] + "<\/a><\/li>" ;
						}
						html += "<\/ul>" ;
						html += "<\/div>" ;
						element.innerHTML = html ;
					}
					else{
						if( element.getElementsByTagName( "div" ).length == 0 ){
							html += "<div class=\"spacer\">&nbsp;<\/div>" ;
							element.innerHTML = html ;
						}
					}
				}
			}
		}
	}
}

var is_gone = new Array() ;
var show_list = new Array() ;

function check_if_is_gone( element ){
	var limit = is_gone.length ;
	for( var i = 0 ; i < limit ; i++ ){
		if( is_gone[i] == element ){
			return true ;
		}
	}
	return false ;
}

function check_if_is_listed( element ){
	var limit = show_list.length ;
	for( var i = 0 ; i < limit ; i++ ){
		if( show_list[i][0] == element ){
			return i ;
		}
	}
	return false ;
}

function make_it_happen( element ){
	var element = null ;
	for( var i = 0 , limit = show_list.length ; i < limit ; i++ ){
		if( show_list[i][2] == false ){
			show_list[i][2] = true ;
			if( show_list[i][1] == true ){
				element = show_list[i][0] ;
				if( element.className == "" ){
					element.className = "marked" ;
				}
				else if( element.className == "first" ){
					element.className = "first marked" ;
				}
				else if( element.className == "new_section" ){
					element.className = "new_section marked" ;
				}
				else if( element.className == "new_section first" ){
					element.className = "new_section first marked" ;
				}
				if( element.getElementsByTagName( "div" ).length > 0 ){
					is_gone.push( element ) ;
					if( element.getElementsByTagName( "div" )[0].className != "spacer" ){
						element.getElementsByTagName( "div" )[0].style.visibility = "visible" ;
						var new_top = define_top( element ) ;
						element.getElementsByTagName( "div" )[0].style.top = new_top + "px" ;
						element.getElementsByTagName( "p" )[0].style.top = - new_top - element.offsetHeight + "px" ;
						element.getElementsByTagName( "p" )[0].style.height = element.offsetHeight + "px" ;
					}
				}
				else{
					if( !check_if_is_gone( element ) ){
						is_gone.push( element ) ;
						populate( element );
						mark( element , status ) ;
					}
				}
			}
			else if( show_list[i][1] == false ){
				element = show_list[i][0] ;
				if( element.className == "marked" ){
					element.className = "" ;
				}
				else if( element.className == "first marked" ){
					element.className = "first" ;
				}
				else if( element.className == "new_section marked" ){
					element.className = "new_section" ;
				}
				else if( element.className == "new_section first marked" ){
					element.className = "new_section first" ;
				}
				for( var i = 0 ; i < element.getElementsByTagName( "div" ).length ; i++ ){
					if( element.getElementsByTagName( "div" )[i].className == "container" ){
						element.getElementsByTagName( "div" )[i].style.visibility = "hidden" ;
					}
				}
			}
		}
	}
}

var timer_to_expand = setInterval( "make_it_happen() ;" , 200 ) ;
var timer_to_close = false ;
var time_to_close = 15000 ;

function mark( element , status ){
	position = check_if_is_listed( element ) ;
	if( position === false ){
		show_list[show_list.length] = new Array( element , status , false ) ;
	}
	else{
		show_list[position][1] = status ;
		show_list[position][2] = false ;
	}
	time_to_close = 15000 ;
}

function run_timer_to_close(){
	if( time_to_close <= 0 ){
		showMenu( false ) ;
		time_to_close = 15000 ;
		if( timer_to_close ){
			clearInterval( timer_to_close ) ;
			timer_to_close = false ;
		}
	}
	else{
		time_to_close -= 500 ;
	}
}

var retracted = "" ;
function showMenu( status ){
	if( document.getElementById( "sideMenu" ) ){
		var container = document.getElementById( "sideMenu" ) ;
		var div_children = new Array() ;
		for( var i = 0 , limit = container.childNodes.length ; i < limit ; i++ ){
			if( container.childNodes[i].nodeName.toLowerCase() == 'div' ){
				div_children.push( i ) ;
			}
		}
		if( status == true ){
			if( timer_to_close === false ){
				timer_to_close = setInterval( "run_timer_to_close(); " , 500 ) ;
			}
			document.getElementById( "sideMenu" ).className = "expanded" ;
			retracted = container.childNodes[div_children[div_children.length - 1]].innerHTML ;
			var retract_img = /^https/.test( location.href ) ? 'https://livraria.folha.com.br/images/btn-retract_menu.gif' : 'http://f.i.uol.com.br/livraria/furniture/1/common/images/btn-retract_menu.gif' ;
			container.childNodes[div_children[div_children.length - 1]].innerHTML = "<a href=\"javas" + "cript: void(0) \;\" onClick=\"javas" + "cript: showMenu( false ) \;\"><img src=\"" + retract_img + "\" width=\"16\" height=\"16\" border=\"0\" alt=\"\"><\/a>" ;		}
		else if( status == false ){
			if( timer_to_close ){
				clearInterval( timer_to_close ) ;
				timer_to_close = false ;
			}
			document.getElementById( "sideMenu" ).className = "retracted" ;
			container.childNodes[div_children[div_children.length - 1]].innerHTML = retracted ;
		}
	}
}

var left = 0 ;
var direction = "" ;
var roll = false ;
var new_element ;

function turn_rotate(){
	switch( direction ){
		case "right":
			left-- ;
			if( left < -120 ){
				new_element = document.createElement( "div" ) ;
				new_element.innerHTML = document.getElementById( "rotate" ).getElementsByTagName( "div" )[0].innerHTML ;
				document.getElementById( "rotate" ).appendChild( new_element ) ;
				left += 120 ;
				document.getElementById( "rotate" ).removeChild( document.getElementById( "rotate" ).getElementsByTagName( "div" )[0] ) ;
			}
			break ;
		case "left":
			left++ ;
			if( left > 120 ){
				new_element = document.createElement( "div" ) ;
				new_element.innerHTML = document.getElementById( "rotate" ).getElementsByTagName( "div" )[document.getElementById( "rotate" ).getElementsByTagName( "div" ).length - 1].innerHTML ;
				document.getElementById( "rotate" ).insertBefore( new_element , document.getElementById( "rotate" ).getElementsByTagName( "div" )[0] ) ;
				left -= 120 ;
				document.getElementById( "rotate" ).removeChild( document.getElementById( "rotate" ).getElementsByTagName( "div" )[document.getElementById( "rotate" ).getElementsByTagName( "div" ).length - 1] ) ;
			}
			break ;
	}
	document.getElementById( "rotate" ).style.left = left + "px" ;
}

function rotate_start( new_direction , element ){
	if( element.className == "spacer" ){
		if( element.id == "to_right_button" ){
			document.getElementById( "to_left_button" ).innerHTML = "<a href=\"javas" + "cript: void(0);\" onClick=\"javas" + "cript: rotate_start( 'right' , this.parentNode ) ;\"><img src=\"http://f.i.uol.com.br/livraria/furniture/1/common/images/btn-prev.gif\" width=\"40\" height=\"40\" border=\"0\" alt=\"&lt;\"><\/a>" ;
			element.innerHTML = "<a href=\"javas" + "cript: void(0);\" onClick=\"javas" + "cript: rotate_stop( this.parentNode ) ;\"><img src=\"http://f.i.uol.com.br/livraria/furniture/1/common/images/btn-pause.gif\" width=\"40\" height=\"40\" border=\"0\" alt=\"PAUSE\"><\/a>" ;
		}
		if( element.id == "to_left_button" ){
			document.getElementById( "to_right_button" ).innerHTML = "<a href=\"javas" + "cript: void(0);\" onClick=\"javas" + "cript: rotate_start( 'left' , this.parentNode ) ;\"><img src=\"http://f.i.uol.com.br/livraria/furniture/1/common/images/btn-next.gif\" width=\"40\" height=\"40\" border=\"0\" alt=\"&gt;\"><\/a>" ;
			element.innerHTML = "<a href=\"javas" + "cript: void(0);\" onClick=\"javas" + "cript: rotate_stop( this.parentNode ) ;\"><img src=\"http://f.i.uol.com.br/livraria/furniture/1/common/images/btn-pause.gif\" width=\"40\" height=\"40\" border=\"0\" alt=\"PAUSE\"><\/a>" ;
		}
		direction = new_direction ;
	}
	if( roll == false && direction != "" ){
		roll = setInterval( "turn_rotate() ;" , 25 ) ;
	}
}

function rotate_stop( element ){
	clearInterval( roll );
	roll = false ;
	if( element.className == "spacer" ){
		if( element.id == "to_right_button" ){
			element.innerHTML = "<a href=\"javas" + "cript: void(0);\" onClick=\"javas" + "cript: rotate_start( 'left' , this.parentNode ) ;\"><img src=\"http://f.i.uol.com.br/livraria/furniture/1/common/images/btn-next.gif\" width=\"40\" height=\"40\" border=\"0\" alt=\"&gt;\"><\/a>" ;
		}
		if( element.id == "to_left_button" ){
			element.innerHTML = "<a href=\"javas" + "cript: void(0);\" onClick=\"javas" + "cript: rotate_start( 'right' , this.parentNode ) ;\"><img src=\"http://f.i.uol.com.br/livraria/furniture/1/common/images/btn-prev.gif\" width=\"40\" height=\"40\" border=\"0\" alt=\"&lt;\"><\/a>" ;
		}
		direction = "" ;
	}
}

function removeElement( element ){
	element.parentNode.removeChild( element ) ;
	refreshTotal() ;
}

function getPrice( element ){
	if( document.getElementById( element ) ){
		var price = new Number( document.getElementById( element ).innerHTML.substr( 2 ).replace( /,/ , "." ) ) ;
		return  price;
	}
}

function refreshProductTotal( element ){
	var name = element.name ;
	name = name.substr( 8 ) ;
	if( document.getElementById( "total" + name ) && document.getElementById( "price" + name ) ){
		var price = getPrice( "price" + name ) ;
		newTotal = element.value * price ;
		if( newTotal >= 0 ){
			document.getElementById( "total" + name ).innerHTML = "R$ " + newTotal.toFixed(2).toString().replace( /\./ , "," ) ;
		} else {
			document.getElementById( "total" + name ).innerHTML = "R$ 0,00" ;
		}
	}
	refreshTotal() ;
}

function refreshTotal(){
	if( document.getElementById( "subtotal" ) && document.getElementById( "total" ) ){
		var total = new Number( 0 ) ;
		var tableRows = document.getElementById( "cartContainer" ).getElementsByTagName( "table" )[0].rows ;
		for( var i = 0 , j = 0 ; i < tableRows.length - 5 ; i ++ , j++ ){
			if( tableRows.className != 'product' ){
				i++ ;
			}
			if( document.getElementById( "total" + j ) ){
				total = total + getPrice( "total" + j ) ;
			} else {
				i-- ;
			}
		}
		var tableBodies = document.getElementById( "cartContainer" ).getElementsByTagName( "table" )[0].rows ;
		for( var l = 0 ; l < tableBodies.length ; l++ ){
			if( tableBodies[l].parentNode.className == 'label' ){
				if( tableBodies[l + 1].className != 'product' ){
					tableBodies[l].parentNode.parentNode.removeChild( tableBodies[l].parentNode ) ;
				}
			}
		}
		document.getElementById( "subtotal" ).innerHTML = "R$ " + total.toFixed(2).toString().replace( /\./ , "," ) ;
		var discount = getPrice( "discount" ) ;
		var shipping = getPrice( "shipping" ) ;
		total = total - discount + shipping ;
		document.getElementById( "total" ).innerHTML = "R$ " + total.toFixed(2).toString().replace( /\./ , "," ) ; ;
	}
}

function cleanForm( element , defaultString ){
	if( element.value == defaultString ){
		element.value = "" ;
	}
	else if( element.value == "" ){
		element.value = defaultString ;
	}
}

function submit_validation( el ){
	var default_values = new Array(
		"Digite o nome do autor " ,
		"Digite uma palavra "
	) ;
	j_length = default_values.length ;
	var inputs = el.getElementsByTagName('input') ;
	var input ;
	for( var i = 0 , i_length = inputs.length ; i < i_length ; i++ ){
		input = inputs[i] ;
		if( input.type == "text" ){
			for( var j = 0 ; j < j_length ; j++ ){
				if( input.value == default_values[j] ){
					input.value = "" ;
				}
			}
		}
	}
}

function inscriptionValidation(){
	if( document.getElementById( "inscriptionForm" ) ){
		var formElements = document.getElementById( "inscriptionForm" ).elements ;

	}
	return true ;
}

function paymentValidation(){
	if( document.getElementById( "paymentForm" ) ){
		var formElements = document.getElementById( "paymentForm" ).elements ;

	}
	return true ;
}

// AJAX
function livraria_ajax_request(){
	var request ;
	try{
// All
		request = new XMLHttpRequest() ;
	}
	catch ( e ){
// IE
  		try{
			request = new ActiveXObject("Msxml2.XMLHTTP") ;
		}
		catch( e ){
		    try{
      			request = new ActiveXObject("Microsoft.XMLHTTP") ;
      		}
    		catch ( e ){
				alert("Seu navegador não suporta AJAX!") ;
				return false ;
			}
		}
	}

	return request ;
}

function livraria_ajax_open_send( request , method , url , parameters ){
	request.open( method , url , true ) ;
	request.setRequestHeader( "Content-type" , "application/x-www-form-urlencoded; text/html; iso-8859-1" ) ;
	request.setRequestHeader( "Content-length" , parameters.length ) ;
	request.setRequestHeader( "Encoding" , "ISO-8859-1") ;
	request.setRequestHeader( "Connection", "close" ) ;
	request.send( parameters ) ;
}

function livraria_ajax_show_results( request , type ){
	request.onreadystatechange = function(){
		if( request.readyState == 4 ){ // state of request = complete
			if( request.status == 200 ){ // server response = ok
				var results = request.responseText ;
				if( type == 'cart' ){
//alert( results ) ;
				}
			}
		}
	}
}

function brazilian_number_format( num ){
	num = "" + Math.floor( num * 100.0 + 0.5 ) / 100.0 ;
	var i = num.indexOf(".") ;

	if( i < 0 ){
		num += ",00" ;
	}
	else{
		num = num.substring( 0,i ) + "," + num.substring( i + 1 ) ;
		var nDec = ( num.length - i ) - 1 ;
		if ( nDec == 0 ){
			num += "00" ;
		}
		else if( nDec == 1 ){
			num += "0" ;
		}
		else if( nDec>2 ){
			num = num.substring( 0 , i + 3 ) ;
		}
	}

	return num ;
}

function livraria_handle_cart( url , obj , method , i ){
	var quantity = obj.value ;
	var product = document.getElementById( obj.id.replace( "quantity" , "product" ) ).value ;

	var request = livraria_ajax_request() ;

	if( request == false ){
		return false ;
	}
	else{
	    var parameters = [
	        'product=' + product ,
	        'quantity=' + quantity
	    ].join('&') ;

		if( quantity > 0 && product != 0 ){
			livraria_ajax_open_send( request , method , url , parameters ) ;
		}

		request.onreadystatechange = function(){
			if( request.readyState == 4 ){ // state of request = complete
				if( request.status == 200 ){ // server response = ok
					var results = request.responseText ;
				}
			}
		}
	}
}

function test_form_submit(){
	var cart_form = document.getElementById( 'cartForm' ) ;
	cart_form.submit() ;
}

function livraria_postal_code_pop_up(url){
	var new_w = window.open( url , '_blank' , 'height = 170 , width = 280 , scrollbars = 0' ) ;
	if( window.focus ){
		new_w.focus()
	}
	return false ;
}

function show_element( img , el_id ){
	var element = document.getElementById( el_id ) ;
	if( element.style.display == "none" ){
		element.style.display = "block" ;
		img.getElementsByTagName( "img" )[0].src = "http://f.i.uol.com.br/livraria/furniture/1/common/images/btn-retract_menu.png" ;
	}
	else {
		element.style.display = "none" ;
		img.getElementsByTagName( "img" )[0].src = "http://f.i.uol.com.br/livraria/furniture/1/common/images/btn-expand_menu.png" ;
	}
}

/* clippings */
function all_clips() {
	var result = [] ;
	var container = document.getElementById( "clipping" ) ;
	var clips = container.getElementsByTagName( "div" ) ;

	for( var i = 0 ; i < clips.length ; i++ ){
		if( clips[i].className == "clipping-content" ){
			result[result.length] = clips[i] ;
		}
	}

	return result ;
}

function close_clipping(){
	var clips = all_clips() ;

	for( var i = 0 ; i < clips.length ; i++ ){
		var a = clips[i].getElementsByTagName( "a" ) ;
		if( a.length < 1 ){
			clips[i].innerHTML = '<a href="javascript:void(0);" onClick="javascript:open_clipping(\''+clips[i].id+'\');">Leia mais</a>' + clips[i].innerHTML;
		}

		clips[i].style.height = "33px" ;
	}
}

function open_clipping( idx ){
	close_clipping() ;

	var clip = document.getElementById( idx ) ;
	var a = clip.getElementsByTagName( "a" ) ;
	if( a.length > 0 ){
		clip.removeChild( a[0] ) ;
	}
	clip.style.height = "auto" ;
}

var standard_field_list = new Array(
	"add" , "remove"
) ;

var requests_field_list = new Array(
	"product_info"
) ;

function livraria_modify_table( obj , el ){
	var index , new_index , cells , cells_length , added , lists , count_field , action ;
	var name = obj.name ;
	var type = name.substring( 0 , name.indexOf('(') ) ;
	var c = 0 ;

	var table = document.getElementById( 'content_' + type ) ;
	table.style.visibility = 'hidden' ;

	index = parseInt( name.substring( name.indexOf('(') + 1 , name.indexOf(')') ) ) + 1 ;
	action = name.split('.')[1] ;

	lists = eval( type + '_field_list' ) ;

	if( el ){
		switch( type ){
			case "multimedia":
				lists = category_multimedia_field_list ;
				break ;
			case "editorial":
				lists = category_editorial_field_list ;
				break ;
		}
	}

	if( name.indexOf('.add') != -1 && name.indexOf( type ) != -1 ){
		// define o novo index para adicionar a linha
		new_index = parseInt( index ) + 1 ;

		// insere uma nova tr na tabela
		table.insertRow( new_index ) ;

		// preenche as tds da nova tr
		cells = table.rows[index].cells ;
		cells_length = cells.length ;
		for( i = 0 ; i < cells_length ; i++ ){
			table.rows[new_index].insertCell(i).innerHTML = cells[i].innerHTML ;
		}
	}
	else if( name.indexOf('.remove') != -1 && name.indexOf( type ) != -1 ){
		if( table.rows.length > 2 ){
			// deleta a linha na posicao index
			table.deleteRow( index ) ;
		}
	}

	// redefine todos os inputs ajustando o name e id
	var o = document.getElementsByTagName('input') ;
	var o_length = o.length ;
	var list_length = lists.length ;
	var list_as_str = lists.toString() ;
	added = 0 ;
	count = 0 ;
	for( i = 0 ; i < o_length ; i++ ){
		if( o[i].name.indexOf('.add') != -1 && o[i].name.indexOf( type ) != -1 ){
			o[i].name = type + "(" + c + ").add" ;
			added++ ;
			count++ ;
		}
		else if( o[i].name.indexOf('.remove') != -1 && o[i].name.indexOf( type ) != -1 ){
			o[i].name = type + "(" + c + ").remove" ;
			if( added == 1 ){
				o[i].disabled = false ;
				added-- ;
			}
			if( table.rows.length <= 2 ){
				o[i].disabled = true ;
			}
			c++ ;
		}
		count_field = document.getElementById( type + '.count' ) ;
		count_field.value = count ;

		if( o[i].name.indexOf( type ) != -1 ){
			if( o[i].name.indexOf('.') != -1 && list_as_str.search( o[i].name.split('.')[1] ) != -1 ){
				for( j = 0 ; j < list_length ; j++ ){

					if( o[i].name.indexOf(lists[j]) != -1 && o[i].name.lastIndexOf(lists[j]) != 0 ){
						o[i].name = type + "(" + c + ")." + lists[j] ;
						o[i].id = type + "(" + c + ")." + lists[j] ;
						if( lists[j] == "counter" ){
							o[i].id = type + "." + c + ".counter" ;
//							o[i].value = 85 ;
						}
						if( c == index && action == 'add' && o[i].type != "button" && o[i].type != "submit" && lists[j] != "counter" ){
							o[i].value = "" ;
						}
					}
				}
			}
		}
	}

	// redefine todos os selects ajustando o name
	var o = document.getElementsByTagName('select') ;
	var o_length = o.length ;
	c = 0 ;
	for( i = 0 ; i < o_length ; i++ ){
		if( o[i].name.indexOf('.') != -1 && list_as_str.search( o[i].name.split('.')[1] ) != -1 ){
			for( j = 0 ; j < list_length ; j++ ){
				if( o[i].name.indexOf(lists[j]) != -1 && o[i].name.lastIndexOf(lists[j]) != 0 ){
					o[i].name = type + "(" + c + ")." + lists[j] ;
					if( c == index && action == 'add' ){
						o[i].selectedIndex = 0 ;
					}
					c++ ;
					if( o[i].name.indexOf('.field') != -1 ){
						c-- ;
					}
				}
			}
		}
	}

	// redefine todos os textarea ajustando o name
	var o = document.getElementsByTagName('textarea') ;
	var o_length = o.length ;
	c = 0 ;
	for( i = 0 ; i < o_length ; i++ ){
		if( o[i].name.indexOf('.') != -1 && list_as_str.search( o[i].name.split('.')[1] ) != -1 ){
			for( j = 0 ; j < list_length ; j++ ){
				if( o[i].name.indexOf(lists[j]) != -1 && o[i].name.lastIndexOf(lists[j]) != 0 ){
					o[i].name = type + "(" + c + ")." + lists[j] ;
					if( c == index && action == 'add' ){
						o[i].innerHTML = '' ;
					}
					c++ ;
				}
			}
		}
	}

	// redefine os divs ajustando o id
	var o = document.getElementsByTagName('div') ;
	var o_length = o.length ;
	c = 0 ;
	for( i = 0 ; i < o_length ; i++ ){
		if( o[i].id.indexOf('.') != -1 && list_as_str.search( o[i].id.split('.')[1] ) != -1 ){
			for( j = 0 ; j < list_length ; j++ ){
				if( o[i].id.indexOf( lists[j] ) != -1 && o[i].id.lastIndexOf( lists[j] ) != 0 ){
					o[i].id = type + "(" + c + ")." + lists[j] ;
					if( c == index && action == 'add' ){
						o[i].innerHTML = "" ;
					}
					c++ ;
				}
			}
		}
	}

	// redefine todos os tr ajustando a classe
	var trs = table.getElementsByTagName('tr') ;
	var tr_length = trs.length ;
	for( j = 1 ; j < tr_length ; j++ ){
		if( j % 2 != 0 ){
			trs[j].className = 'a' ;
		}
		else{
			trs[j].className = 'b' ;
		}
	}

	table.style.visibility = 'visible' ;

	return false ;
}

var addresses = new Array() ;
var show = new Array() ;
var show_timer ;
var movement_interval = 2 /* in milisseconds */

function prepare_most_sold_links(){
	if( document.getElementById( "most_sold" ) ){
		var element = document.getElementById( "most_sold" ) ;
		var children = element.getElementsByTagName( "h2" ) ;
		var children_limit = children.length ;
		for( var i = 0 ; i < children_limit ; i++ ){
			addresses.push( new Array( children[i].getElementsByTagName( "a" )[0].href , children[i].parentNode.id ) ) ;
			if( children[i].parentNode.offsetHeight <= 25 ){
				children[i].getElementsByTagName( "a" )[0].href = "javascr" + "ipt: change_most_sold( \"" + children[i].parentNode.id + "\" ) ;" ;
			}
			else{
				show.push( children[i].parentNode.id ) ;
			}
		}
	}
}

function change_most_sold( name ){
	if( name ){
		if( document.getElementById( name ) ){
			var element = document.getElementById( name ) ;
			var divs = element.parentNode.getElementsByTagName( "div" ) ;
			var divs_limit = divs.length ;
//		alert( show ) ;
			check_most_sold( name ) ;
		}
	}
}

function check_most_sold( name ){
	if( show.length > 0 ){
		show_timer = setInterval( "hide_most_sold( \"" + show[0] + "\" , \"" + name + "\" ) ;" , movement_interval ) ;
	}
	else{
		show.push( name ) ;
		show_timer = setInterval( "show_most_sold( \"" + name + "\" ) ;" , movement_interval ) ;
	}
}

function hide_most_sold( hide_name , show_name ){
	if( hide_name ){
		if( document.getElementById( hide_name ) ){
			var element = document.getElementById( hide_name ) ;
			var element_height = element.offsetHeight ;
			if( element_height > 25 ){
				element.style.height = ( element_height - 7 ) + "px" ;
			}
			else{
				element.getElementsByTagName( "h2" )[0].getElementsByTagName( "a" )[0].href = "javascr" + "ipt: change_most_sold( \"" + hide_name + "\" ) ;" ;
				clearTimeout( show_timer ) ;
				show.shift() ;
				check_most_sold( show_name ) ;
			}
		}
	}
}

function show_most_sold( show_name ){
	if( document.getElementById( show_name ) ){
		var element = document.getElementById( show_name ) ;
		var element_height = element.offsetHeight ;
		var child_height = element.getElementsByTagName( "ol" )[0].offsetHeight ;
		if( element_height < ( child_height + 35 ) ){
			element.style.height = ( element_height - 3 ) + "px" ;
		}
		else{
			var addresses_limit = addresses.length ;
			for( var i = 0 ; i < addresses_limit ; i++ ){
				if( addresses[i][1] == show_name ){
					element.getElementsByTagName( "h2" )[0].getElementsByTagName( "a" )[0].href = addresses[i][0] ;
					break ;
				}
			}
			clearTimeout( show_timer ) ;
		}
	}
}

/* Corrige encavalemento do conteúdo */
function fix_content_height() {
	var min_height = document.getElementById('sideMenu').getElementsByTagName('ul')[ 0 ].offsetHeight ;
	var container = document.getElementById( 'mainContainer' ) ;
	container.style.height = ( min_height / 1 ) + "px" ;
}

/* Auto-iniciar correção */
var index_url = /^http:\/\/(dev\.)?livraria\.folha\.com\.br\/(index)?$/;
if( index_url.test( location.href ) ){
	if( window.addEventListener ){
		/* Para Firefox, Safari e outros */
		window.addEventListener( 'load' , fix_content_height , false ) ;
	}else if( window.attachEvent ){
		/* Para IE */
		window.attachEvent( 'onload' , fix_content_height ) ;
	}
}

// Abri/feixa caixa de capítulos
function toggle_chapters( eid ){
	var box = document.getElementById( eid ) ;

	if ( box.className.indexOf( "hidden" ) < 0 ){
		box.className = "hidden" ;
	} else {
		box.className = "" ;
	}
}

function save_scroll_position(){
	var i ;
	if ( document.all ){
		i = document.documentElement.scrollTop ;
	}
	else{
		i = window.pageYOffset ;
	} ;
	set_cookie( 'form.position' , i ) ;
}

function get_scroll_position(){
	var x = get_cookie( 'form.position' ) ;
	set_cookie( 'form.position' , 0 ) ;
	if ( x > 0 ){
		scrollTo( 0 , x ) ;
	}
}

function set_cookie(name, value, expires, path, domain, secure) {
  var curCookie = name + "=" + escape(value) +
      ((expires) ? "; expires=" + expires.toGMTString() : "") +
      ((path) ? "; path=" + path : "") +
      ((domain) ? "; domain=" + domain : "") +
      ((secure) ? "; secure" : "");
  document.cookie = curCookie;
}

function get_cookie(name){
  var dc = document.cookie;
  var prefix = name + "=";
  var begin = dc.indexOf("; " + prefix);
  if (begin == -1) {
    begin = dc.indexOf(prefix);
    if (begin != 0) return null;
  } else
    begin += 2;
  var end = document.cookie.indexOf(";", begin);
  if (end == -1)
    end = dc.length;
  return unescape(dc.substring(begin + prefix.length, end));
}
