// GENERIC 'AJAX' FUNCTIONS

function loadHTML(url, params, target, callback, mode)
{
	if(mode == undefined)mode = 'POST';
	
	//$('#' + target).html('Carregando...');
	var onComplete = function(data){
		$('#' + target).html(data);
		if(callback != undefined)callback();
 	}; 
	
	if(mode == 'POST')$.post(url, params,  onComplete);
		else $.get(url, params,  onComplete);
}//loadHTML

function loadAction(url, params, target, callback, mode)
{
	setAjaxLoading(true);
	
	if(params == null)params = {ajaxAction:true};
	
	loadHTML(url, params, target, function(){onActionLoaded();if(callback != undefined)callback();}, (mode == undefined)?('GET'):('POST'));
}//loadAction

function onActionLoaded()
{
	setAjaxLoading(false);
}//onActionLoaded

function loadJSON(url, params, callback, error_callback, mode)
{	
	$.ajax({
		url:url,
		data:params,
		type:(mode == undefined)?('GET'):('POST'),		
		dataType:"json",
		success:callback,
		error:error_callback
	});
}//loadJSON

// FORM FUNCTIONS

function ajaxFormSubmit(form, form_validation_opt, success_cbk, error_cbk, reset, type)
{
	if(error_cbk == undefined)error_cbk = onAjaxFormError;
	if(reset == undefined)reset = true;
	if(type == undefined)type = 'json';
	
	var options = {success:function(obj){success_cbk(obj); setAjaxLoading(false);}, dataType:type, error:error_cbk};
	
	if(form_validation_opt != null)
	{	
		$(form).validate(form_validation_opt);
		
		if($(form).valid())
		{		
			setAjaxLoading(true);
			$(form).ajaxSubmit(options);
			$(form).resetForm();
		}//if valid
		else setAjaxLoading(false);	
	}//if validation
	else
	{
		setAjaxLoading(true);
		$(form).ajaxSubmit(options);
		$(form).resetForm();		
	}//else
}//ajaxFormSubmit

function onAjaxFormError(XMLHttpRequest, textStatus, errorThrown)
{
	alert('ERRO: ' + textStatus + "\n TENTE NOVAMENTE OU REPORTE O PROBLEMA PARA O DESENVOLVEDOR DO SITE.");
	setAjaxLoading(false);
}//onManageFormError

// NEED TO ORGANIZE THIS CAOS

function mostraAba(atual,anterior)
{
	abatual = document.getElementById(atual);
	abatual.style.display = "none";
	abaterior = document.getElementById(anterior);
	abaterior.style.display = "block";
}

function mostra(target){
	if(target == 'y'){
		document.getElementById("sub").style.display="block";
		document.getElementById("pais").style.background="#c7c8c8";
		document.getElementById("pais").style.color="#c70752";
	}
	else{
		document.getElementById("sub").style.display="none";
		document.getElementById("pais").style.background="none";
		document.getElementById("pais").style.color="#FFFFFF";
	}
}
function subMenuEnter(number,status)
{
	switch(status)
	{
		case 1:
			document.getElementById("linkMais0"+number).style.display="block";
			document.getElementById("linkMenos0"+number).style.display="none";
			document.getElementById("subMenu0"+number).style.display="none";
		  break;    
		case 0:
			document.getElementById("linkMais0"+number).style.display="none";
			document.getElementById("linkMenos0"+number).style.display="block";
			document.getElementById("subMenu0"+number).style.display="block";

		  break;
	}
}

// DÃ
/*
function abaProdutos(atual, anterior, abaatual, abaanterior)
{
	abatual = document.getElementById(atual);
	abatual.style.display = "none";
	abaterior = document.getElementById(anterior);
	abaterior.style.display = "block";
	abamenuatual = document.getElementById(abaatual);
	abamenuatual.style.display = "none";
	abamenuaterior = document.getElementById(abaanterior);
	abamenuaterior.style.display = "block";
} 
*/

var last_aba = 'Apresenta';
function abaProdutos(aba)
{
	document.getElementById('prod' + aba).style.display = "block";
	document.getElementById('aba' + aba).style.display = "block";
	document.getElementById('prod' + last_aba).style.display = "none";
	document.getElementById('aba' + last_aba).style.display = "none";
	last_aba = aba;
}//abaProdutos

function mudaClassListas(id){
	if(document.getElementById("listaProdutos_"+id).className == "closed"){
		document.getElementById("listaProdutos_"+id).className = "open";
		document.getElementById("lista_"+id).style.display="block";
	}else{
		document.getElementById("listaProdutos_"+id).className = "closed";
		document.getElementById("lista_"+id).style.display="none";
	}
}
function mostraRevenda(id){
	if(document.getElementById("revenda_"+id).className == "listaOff"){
		document.getElementById("revenda_"+id).className = "listaOn";
		document.getElementById("revendaOnTexto_"+id).style.display="block";
	}else{
		document.getElementById("revenda_"+id).className = "listaOff";
		document.getElementById("revendaOnTexto_"+id).style.display="none";
	}
}
function abreTodos(numero){
	for(i=1; i<=numero; i++){
		document.getElementById("revenda_"+i).className = "listaOn";
		document.getElementById("revendaOnTexto_"+i).style.display="block";
	}
}

function abreTodosIds(idList){
	var idArray = idList.split(",");
	for(i = 0; i < idArray.length; i++){
		document.getElementById("revenda_"+idArray[i]).className = "listaOn";
		document.getElementById("revendaOnTexto_"+idArray[i]).style.display="block";
	}
}

function MudarEstilo(id,newClass) {
	document.getElementById(id).className = newClass;
}



function multiSelect(select, target_field)
{
	
}//multiSelect

function delRelProd(id)
{
	var field = document.getElementById(id + '_div');
	document.getElementById('pro_sels').removeChild(field);
}//delProd

function onProdSelect(data, textStatus)
{	
	//alert(textStatus);
	$("#pro_sels").innerHTML += data;
}//onProdSelect

function changeSRC(id, src)
{
	document.getElementById(id).src = src;
}//changeSRC

function dateToMySQL(date_str)
{
	if(date_str == '')return '';
	var date_arr = date_str.split('/');
	return date_arr[2] + '-' + date_arr[1] + '-' + date_arr[0]; 
}//dateTopMySQL

function dateFromMySQL(date_str)
{
	if(date_str == '')return '';
	var date_arr = date_str.split('-');
	return date_arr[2] + '/' + date_arr[1] + '/' + date_arr[0]; 
}//dateTopMySQL

function getFlashMovieObject(movieName)
{
	if(window.document[movieName]) 
	{
	    return window.document[movieName];
	}
	if(navigator.appName.indexOf("Microsoft Internet")==-1)
	{
	  	if(document.embeds && document.embeds[movieName])return document.embeds[movieName]; 
	}
	else
	{
	  	return document.getElementById(movieName);
	}//navigator.appName.indexOf("Microsoft Internet") != -1
}//getFlashMovieObject

var cur_sel_id = 'movie_item_0';
function loadMovie(src, sel_id)
{
	document.getElementById(cur_sel_id).className = 'videoRed';
	document.getElementById(sel_id).className = 'videoGray underline';
	
	cur_sel_id = sel_id;
	
	getFlashMovieObject('player').loadFLV(src);
}//loadMovie

var blank_city_sel_html;
function getCityList(uf, url)
{
	if(uf != '')
	{
		blank_city_sel_html = document.getElementById('div_city').innerHTML;
		document.getElementById('div_city').innerHTML = 'carregando...';
		$.post(url, {uf:uf},  function(data){
			document.getElementById('div_city').innerHTML = data;
	 	 });
	}//if uf
	else document.getElementById('div_city').innerHTML = blank_city_sel_html;
}//getCityList

function getCityList_2(uf, url)
{
	if(uf != '')
	{
		blank_city_sel_html = document.getElementById('div_city_2').innerHTML;
		document.getElementById('div_city_2').innerHTML = 'carregando...';
		$.post(url, {uf:uf},  function(data){
			document.getElementById('div_city_2').innerHTML = data;
	 	 });
	}//if uf
	else document.getElementById('div_city_2').innerHTML = blank_city_sel_html;
}//getCityList

function getRevendedorList(uf,city,url)
{
	document.getElementById('dv_Revendas').innerHTML = 'carregando...';
	$.post(url, {uf:uf,city:city},  function(data){		
		document.getElementById('dv_Revendas').innerHTML = data;
		switchBlackLayer(true, false);
 	 });
}

function sendMinhaSolucao(id, f_nome, f_email, f_fone_ddd, f_fone, url)
{
	//document.getElementById('dv_enviar_solucao_' + id).innerHTML = 'enviando...';
	setAjaxLoading(true);
	$.post(url, {id:id, f_nome:f_nome, f_email:f_email, f_fone_dd:f_fone_ddd, f_fone:f_fone},  function(data){
		$('#orcamentoBox_3').hide();$('#orcamentoBox_2').hide();$('#orcamentoBox_1').hide();
		$('#dv_continuar').hide();
		setAjaxLoading(false);
		$('#dv_sucesso').show();

	 });
}//sendMinhaSolucao

var blank_sc_sel_html;
function getProdSubCatList(cat_id, url)
{
	if(cat_id != '')
	{
		blank_sc_sel_html = document.getElementById('div_subcat').innerHTML;
		document.getElementById('div_subcat').innerHTML = 'carregando...';
		$.post(url, {cat_id:cat_id},  function(data){
			document.getElementById('div_subcat').innerHTML = data;
	 	});
	}//if uf
	else document.getElementById('div_subcat').innerHTML = blank_sc_sel_html;
}//getProdSubCatList

var blank_pr_sel_html;
function getProdList(cat_id, url)
{
	if(cat_id != '')
	{
		blank_pr_sel_html = document.getElementById('div_prod').innerHTML;
		document.getElementById('div_prod').innerHTML = 'carregando...';
		$.post(url, {cat_id:cat_id},  function(data){
			document.getElementById('div_prod').innerHTML = data;
	 	});
	}//if uf
	else document.getElementById('div_prod').innerHTML = blank_pr_sel_html;
}//getProdList

// QUIZ e MINHAS SOLUÇÕES
function multiplyTag(number, loc)
{
	var myLayers = new Array();
	document.getElementById("loadHere").innerHTML = "";
	
	if(loc == "minhasolucao")
	{	
		for(var i = 1; i <= number; i++)
		{
			var result = myLayers[i] = i;
			
			document.getElementById("loadHere").innerHTML += "<li class='bltNormal' id='id_"+ result +"'>" + result + "</li>";
		}
		document.getElementById("loadHere").innerHTML += "<li class='bltSolucao' id='id_solucao'>Solu&ccedil;&atilde;o</li>";		
	}
	else if (loc == "quiz")
	{
		document.getElementById("loadHere").innerHTML += "<li id='id_intro' class='bltQuizamarelo'>Introdu&ccedil;&atilde;o</li>";	
		for(var i = 1; i < (number-1); i++)
		{
			var result = myLayers[i] = i;
			document.getElementById("loadHere").innerHTML += "<li class='bltNormal' id='id_"+ result +"'>" + result + "</li>";
		}		
		document.getElementById("loadHere").innerHTML += "<li class='bltSolucao' id='id_solucao'>Resultado</li>";	
	} 
}

var cur_img_i = 0;
function swapImage(img, full_img, index)
{
	$('img#main_pic').attr('src', img);
	$('#main_pic_zoom').attr('href', full_img);
}//swapImage

function ondeFormSubmit()
{
	//return (document.getElementById('filter_uf').value != '' && document.getElementById('filter_city') != undefined && document.getElementById('filter_city').value != '')
	//return (document.getElementById('filter_uf').value != '')
	return true;
}//ondeFormSubmit

function changeStatus(tag, status)
{
	document.getElementById(tag).className = status;
}

function onUserTypeChange(type)
{
	for(var c = 1; c <= 10; c++)
	{
		var cb = document.getElementById('adm_areas-' + c)
		if(cb == undefined)continue;
		
		if(type == 1)
		{
			cb.disabled = true;
		}//if adm
		else
		{
			cb.disabled = false;
		}//else lg
	}//for c	

}//onUserTypeChange

function loadSupportCatsSelect(id, target, url)
{
	populateSelect(url, target, {id:id}, 'support_category_id', 'label');
}//loadSupportCatsSelect

function loadProductSubCatsSelect(id, target, url)
{
	populateSelect(url, target, {id:id}, 'prod_subcategory_id', 'label');
}//loadSupportCatsSelect

function loadProductByDownloadCatSelect(id, target, url)
{
	populateSelect(url, target, {id:id}, 'product_id', 'name');
}//loadSupportCatsSelect

function loadCitySelect(uf, target, url)
{
	populateSelect(url, target, {uf:uf}, 'label', 'label');
}//loadCitySelect

function populateSelect(url, target, params, value_field, label_field)
{
	$("select#" + target).html('<option value="">Carregando...</option>');
    $.getJSON(url, params, function(j)
	{
		var options = '';		
		for(var i = 0; i < j.length; i++)
		{			
			options += '<option value="' + j[i][value_field] + '">' + j[i][label_field] + '</option>';
		}//for i		
		$("select#" + target).html(options);
    })
}//populateSelect

function openListItem(id)
{
	if(document.getElementById('iheader_' + id).className == 'listaOn')document.getElementById('iheader_' + id).className = 'listaOff';
		else document.getElementById('iheader_' + id).className = 'listaOn';
	switchBox('item_' + id);
}//openListItem

function switchBox(id, black_bg)
{
	var $box = $('#' + id);
	var css;
	
	if($box.css('display') == 'none')
	{
		css = {display:'block'};		
		if(black_bg == true)
		{
			switchBlackLayer(true);
		}//if black_bg
	}//if !box
	else
	{
		css = {display:'none'};
		switchBlackLayer(false);
	}//else	
	$box.css(css);	
}//switchBox

function switchBlackLayer(on, hide_select)
{
	if(on != false)
	{
		$('#blackLayer').css({display:'block', height:$('html')[0].scrollHeight});
		if(hide_select != false)$('select').hide();
	}//if on
	else
	{
		$('#blackLayer').css({display:'none'});
		if(hide_select != false)$('select').show();		
	}//else
}//switchBlackLayer

function swapBoxes(id1, id2, black_bg)
{
	switchBox(id1, black_bg);
	switchBox(id2, black_bg);
}//switchBox

function getFormFields(form)
{
	var fields = $(form).serializeArray();
	var tot = fields.length;
	
	var values = new Object();
	for(var f = 0; f < tot; f++)values[fields[f]['name']] = fields[f]['value'];
	
	return values;
}//getFormFields

function centerLayerBox(id, offset_h)
{
	var pos_v = $(document).scrollTop() + (($(window).height() - $('#' + id).height()) / 2);	
	if(offset_h != undefined)pos_v += offset_h;		
	$('#' + id).css('top', pos_v);
}//centerLayerBox

function setAjaxLoading(on)
{
	if(on)
	{
		centerLayerBox('ajax_loading');
		$('#ajax_loading').show();
	}//if on
	else
	{
		$('#ajax_loading').hide();
	}//else off
}//setAjaxLoading
