var cepSearching = false;

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 += 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));
}

function input_mask( o , f ){
	v_obj = o ;
	v_fun = f ;
	//setTimeout( "execmask()" , 1 ) ;
	execmask() ;
}

function execmask(){
	v_obj.value = v_fun( v_obj.value ) ;
}

function mask_cpf_cnpj( v ){
	if ( v.length > 14 ){
		v = v.replace( /\D/g , "" ) ;
		v = v.replace( /^(\d{2})(\d)/ , "$1.$2" ) ;
		v = v.replace( /^(\d{2})\.(\d{3})(\d)/ , "$1.$2.$3" ) ;
		v = v.replace( /\.(\d{3})(\d)/ , ".$1/$2" ) ;
		v = v.replace( /(\d{4})(\d)/ , "$1-$2" ) ;
		return v ;
	}
	else{
		v=v.replace( /\D/g,"" ) ;
		v=v.replace( /(\d{3})(\d)/ , "$1.$2" ) ;
		v=v.replace( /(\d{3})(\d)/ , "$1.$2" ) ;
		v=v.replace( /(\d{3})(\d{1,2})$/ , "$1-$2" ) ;
		return v ;
	}
}

function mask_cep( v ){
	v=v.replace(/D/g,"");             
	v=v.replace(/^(\d{5})(\d)/,"$1-$2");
	return v ;
}

function load_identification_masks(){
	input_mask( document.getElementById( "cpf_cnpjInput" ) , mask_cpf_cnpj ) ;
	input_mask( document.getElementById( "cepInput" ) , mask_cep ) ;
}

var onload_replaced = window.onload ;
var onload_functions_stack = new Array () ;

function onload_manager( stacked , priority ) {
	var default_priority = 0 ;
	var size = onload_functions_stack.length ;
	if ( priority ) {
		onload_functions_stack[size] = new Array ( stacked , priority ) ;
	}
	else {
		onload_functions_stack[size] = new Array ( stacked , default_priority ) ;
	}
}

function onload_call() {
	onload_functions_stack.sort ( onload_sort ) ;
	for ( var i = 0 ;  i < onload_functions_stack.length ; i++ ) {
		if ( onload_functions_stack[i][0] ) {
			onload_functions_stack[i][0] () ;
		}
	}
}

function onload_sort( a , b ) {
    if ( a[1] == b[1] ) return 0 ;
    if ( a[1] > b[1] ) return -1 ;
    return 1 ;
}

window.onload = onload_call ;
onload_manager( onload_replaced ) ;
onload_manager( folhaonline_render_player ) ;
onload_manager( folhaonline_define_external_urls ) ;

/* /onload manager */

/* Trecho referente ao controle do player */
function folhaonline_define_external_urls(){
	if ( ! document.getElementById || ! document.getElementsByTagName ) {
		return false ;
	}

	var urls = new Array(
		new RegExp( '\.folha\.com\.br' ) ,
		new RegExp( '\.folha\.blog\.uol\.com\.br' ) ,
		new RegExp( '\.folha\.uol\.com\.br' ) ,
		new RegExp( '^mailto:' ) ,
		new RegExp( '^\#.*' )
	) ;

	var content_id = "articleNew" ;
	var element = "a" ;
	var list = false ;
	var objs = document.getElementById(content_id) ;
	if ( objs ){
		objs = objs.getElementsByTagName(element) ;
		for ( var i = 0 , limit = objs.length ; i < limit ; i++ ) {
			if ( objs[i].href.indexOf("javascript") == -1 ){
				var quit = false ;
				for ( var j = 0 , j_limit = urls.length ; j < j_limit ; j++ ){
					if ( urls[j].test( objs[i].href ) ){
						quit = true ;
					}
				}
				if ( quit || ( objs[i] && objs[i].className != null && objs[i].className == 'play' && objs[i].className == 'audioPlayer' && objs[i].className == 'videoPlayer' && objs[i].className == 'artFlash' ) ){
					continue ;
				}
				if ( objs[i].getAttribute( "target" ) == "" || objs[i].getAttribute("target") == null ){
					objs[i].setAttribute( "target" , "_blank" ) ;
				}
			}
		}
	}
}

function folhaonline_render_player(){
	// deprecated: procura play nas tags "a" diretamente.
	var elements_list = document.getElementsByTagName( "a" ) ;
	var objs = new Array() ;
	for ( var index = 0 , limit = elements_list.length ; index < limit ; index++ ){
		if ( elements_list[index].className == "play" ){
			objs[objs.length] = elements_list[index] ;
		}
	}
	for ( var index = 0 , limit = objs.length ; index < limit ; index++ ){
		folhaonline_use_player( objs[index] , "audioPlayer" ) ;
	}
	// end of deprecated

	var elements_list = document.getElementsByTagName( "p" ) ;
	for ( var index = 0 , limit = elements_list.length ; index < limit ; index++ ){
		var obj = elements_list[index] ;
		if ( obj.className == "play" ){
			folhaonline_parse_player_anchor( obj , "audioPlayer" ) ;
		}
		if ( obj.className == "miniAudioPlayer" ){
			folhaonline_parse_player_anchor( obj , obj.className ) ;
		}
		if ( obj.className == "audioPlayer" ){
			folhaonline_parse_player_anchor( obj , obj.className ) ;
		}
		if ( obj.className == "videoPlayer" ){
			folhaonline_parse_player_anchor( obj , obj.className ) ;
		}
		if ( obj.className == "artFlash" ){
			folhaonline_parse_player_anchor( obj , obj.className ) ;
		}
		if ( obj.className == "uolVideoPlayer" ){
			folhaonline_parse_player_anchor( obj , obj.className ) ;
		}
	}
}

function folhaonline_parse_player_anchor( obj , label ){
	if ( obj.childNodes.length ){
		for ( var j_index = 0 ; j_index < obj.childNodes.length ; j_index++ ){
			if ( obj.childNodes[j_index] && obj.childNodes[j_index].tagName && obj.childNodes[j_index].tagName.toUpperCase() == 'A' ){
				folhaonline_use_player( obj.childNodes[j_index] , label ) ;
			}
		}
	}
}

function folhaonline_use_player( a , label ){
	//11/10/2007 20:19 - amelo - Adicionada a função que verifica a editoria
	var selfloc = self.location.toString() ;
	var editoria = null ;
	if( selfloc.indexOf( '/mundo/' ) >= 0 ) editoria = 'mundo' ;
	if( selfloc.indexOf( '/brasil/' ) >= 0 ) editoria = 'brasil' ;
	if( selfloc.indexOf( '/dinheiro/' ) >= 0 ) editoria = 'dinheiro' ;
	if( selfloc.indexOf( '/cotidiano/' ) >= 0 ) editoria = 'cotidiano' ;
	if( selfloc.indexOf( '/esporte/' ) >= 0 ) editoria = 'esporte' ;
	if( selfloc.indexOf( '/ilustrada/' ) >= 0 ) editoria = 'ilustrada' ;
	if( selfloc.indexOf( '/informatica/' ) >= 0 ) editoria = 'informatica' ;
	if( selfloc.indexOf( '/ciencia/' ) >= 0 ) editoria = 'ciencia' ;
	if( selfloc.indexOf( '/educacao/' ) >= 0 ) editoria = 'educacao' ;
	//11/10/2007 20:20 - amelo - Alterados os caminhos para os arquivos
	var player_path  = '' ;
	if ( label == 'miniAudioPlayer' ){
		player_path = "http://media.folha.uol.com.br/furniture/players/audioplayer.swf" ;
	}
	if ( label == 'audioPlayer' ){
		player_path = "http://media.folha.uol.com.br/furniture/players/audioplayer.swf" ;
	}
	//18/9/2007 18:10 - amelo - Alterado o caminho do player para modelo novo
	if ( label == 'videoPlayer' ){
		player_path = "http://media.folha.uol.com.br/furniture/players/videoplayer.swf" ;
	}

	var url = a.getAttribute( "href" ) ;
	var text = "" ;
	if ( a.childNodes.length ){
		if ( a.childNodes[0].data ){
			text = a.childNodes[0].data ;
		}
		else if ( a.childNodes[0].innerHTML ){
			text = a.childNodes[0].innerHTML ;
		}
	}
	if ( url != null ){
		var w = 0 , h = 0 , v = 7 ;
		if ( label == 'artFlash' ){
			/* decompor query_string */
			w = folhaonline_parse_query_param( 'w' , url ) ;
			h = folhaonline_parse_query_param( 'h' , url ) ;
			v = folhaonline_parse_query_param( 'v' , url ) ;
			player_path = url ;
			info = text ;
		}
		//17/10/2007 15:18 - abarros - Modificada a regra para dimensionar automaticamente o player de vídeo
		else if ( label == 'videoPlayer' ) {
			w = 320 ;
			h = 260 ;
			v = 7 ;
			info = '' ;
		}
		//11/10/2007 20:23 - amelo - Inseridas novas regras para os diferentes tamanhos de player de áudio
		else if ( label == 'miniAudioPlayer' ) {
			w = 330 ;
			h = 33 ;
			v = 7 ;
			info = '' ;
		}
		else if ( label == 'audioPlayer' ) {
			w = 330 ;
			h = 33 ;
			v = 7 ;
			info = '' ;
		}

		var tag = "" ;
		if ( label != 'uolVideoPlayer' ){
			if ( info.length ){
				tag += "<div style=\"width:" + w + "px; font: bold 10px arial; text-align:right;\">" + info + "<\/div>" ;
			}

			//30/8/2007 14:39 - amelo - Inserida a regra para passar o parâmetro correto para o player de vídeo
			if ( label == 'videoPlayer') {
				var flashvars = "file=" + escape( url ) + "&description=" + folhaonline_decompose( text ) ;
			} else {
				var flashvars = "url=" + escape( url ) + "&description=" + folhaonline_decompose( text ) + "&editoria=" + editoria ;
			}
			if ( navigator.appName.indexOf( "Internet Explorer" ) > -1 ){
				tag += "<object class=\"xpto\" classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" codebase=\"http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=" + v + ",0,0,0\" width=\"" + w + "\" height=\"" + h + "\" id=\"player\" align=\"middle\">" ;
				tag += "<param name=\"movie\" value=\"" + player_path + "\">" ;
				tag += "<param name=\"allowScriptAccess\" value=\"always\">" ;
				tag += "<param name=\"quality\" value=\"high\">" ;
				tag += "<param name=\"flashvars\" value=\"" + flashvars + "\">" ;
				// IE em mac possui bugs na renderização de tags object; deve-se usar embed nesse caso
				if ( folhaonline_is_ie_mac() ){
					tag += "<embed type=\"application/x-shockwave-flash\" allowScriptAccess=\"always\" width=\"" + w + "\" height=\"" + h + "\" id=\"player\" src=\"" + player_path + "\" flashvars=\"" + flashvars + "\"></embed>" ;
				}
			}
			else {
				tag += "<object type=\"application/x-shockwave-flash\" allowScriptAccess=\"always\" width=\"" + w + "\" height=\"" + h + "\" data=\"" + player_path + "\" flashvars=\"" + flashvars + "\" id=\"player\">" ;
			}
			tag += "<\/object>" ;
		} else {
			tag += "<object class=\"xpto\" classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" codebase=\"http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab\" width=\"457\" height=\"368\" id=\"player\" align=\"middle\">" ;
			tag += "<param name=\"movie\" value=\"" + url + "\">";
			tag += "<param name=\"allowscriptaccess\" value=\"always\">";
			tag += "<param name=\"allowfullscreen\" value=\"true\">";
			tag += "<param name=\"wmode\" value=\"transparent\">";
			tag += "<embed width=\"457\" height=\"368\" allowfullscreen=\"true\" wmode=\"transparent\" src=\"" + url + "\" allowscriptaccess=\"always\" type=\"application/x-shockwave-flash\"><\/embed>";
			tag += "<\/object>";
		}
		var parent_node = a.parentNode ;
		var my_element = document.createElement( "div" ) ;
		if ( label != 'videoPlayer' && label != 'uolVideoPlayer' ){
			my_element.style.paddingBottom = '15px' ;
		}
		my_element.className = "player" ;
		my_element.innerHTML = tag ;
		parent_node.replaceChild( my_element , a ) ;
	}
}

//function livraria_change_schedule_delivery( obj , bill , normal_delivery , delivery_dates_quantity ){
function livraria_change_schedule_delivery(){
	var el = document.getElementById("delivery") ;
	var message = "" ;
	var s = delivery_dates_quantity > 2 ? "s" : "" ;

	if( obj.value == "no" ){ /* entrega normal */
		el.innerHTML = livraria_standard_scheduling_delivery() ;
	}
	else if( obj.value == "yes" && bill == "true" ){ /* entrega agendada */
		livraria_scheduling_delivery( el ) ;
	}
	else if( obj.value == "yes" && bill == "false" ){
		if( delivery_dates_quantity > 1 && normal_delivery == "true" ){
			/* existe mais de uma data de entrega, porém um deles é entrega comum, permitindo assim o agendamento da entrega */
			livraria_scheduling_delivery( el ) ;
			message = "Para o agendamento da" + s + " sua" + s + " outra" + s + " entrega" + s + ", você receberá junto com o e-mail de confirmação de pagamento um link para escolher a melhor data e hora do dia para entrega.<br><b>Obs:</b> Se após 24h da confirmação do pagamento não houver seleção de data/hora de entrega, daremos prosseguimento à entrega." ;
			livraria_email_scheduling_delivery( el , message ) ;
		}
		else if( delivery_dates_quantity > 1 || normal_delivery == "false" ){
			/* existe mais de uma data de entrega, sem que um deles seja entrega normal, agendamento so no e-mail */
			livraria_email_scheduling_delivery( el , message ) ;
		}
		else{
			/* existe apenas uma data de entrega e é uma entrega normal */
			livraria_scheduling_delivery( el ) ;
		}
	}
}

function livraria_email_scheduling_delivery( element , message ){
	var p = document.createElement( "p" ) ;
	p.innerHTML = message.length ? message : "Junto com o e-mail de confirmação de pagamento, você receberá um link para escolher a melhor data e hora do dia para entrega.<br><b>Obs:</b> Se após 24h da confirmação do pagamento não houver seleção de data/hora de entrega, daremos prosseguimento à entrega." ;
	element.appendChild( p ) ;
}

function livraria_scheduling_delivery( element ){
	var div = document.createElement( "div" );
	div.setAttribute( "id" , "fields" );
	div.style.clear = "both";

	var html = "<div class=\"formElementContainer\"><label for=\"schedule_delivery_date\">Data de entrega</label><br>\n";
	html += "<input type=\"text\" class=\"inputText\" name=\"schedule_delivery_date\"  id=\"schedule_delivery_dateInput\" value=\"\">\n";
	html += "</div>\n";
	html += "<div class=\"formElementContainer\"><label for=\"schedule_delivery_time\">Período de entrega</label><br>\n";
	html += "<select name=\"schedule_delivery_time\" class=\"inputText\">\n";
	html += "<option value=\"\">&nbsp;</option>\n";
	html += "<option value=\"m\">Manhã</option>\n";
	html += "<option value=\"t\">Tarde</option>\n";
	html += "<option value=\"n\">Noite</option>\n";
	html += "</select>\n";
	html += "</div>\n\n";
	div.innerHTML = html ;
	element.appendChild( div ) ;
}

function submit_button_on_enter( e , button ){
	var id = e.keyCode ? e.keyCode : e.which ? e.which : e.charCode;

	if ( id == 13 ){
		button.click();
		return false;
	}
}

