﻿/*
Ex. var params = {};
params.destination = "#div"; //Elemento que recebe o conteúdo
params.loadElement = '#carregando'; //Elemento apresentado enquanto o conteúdo é baixado
params.attribute = 'navigate';

$('a[rel="' + attribute + '"]').each(function() {
$(this).navigation(params);
});
*/

jQuery.fn.navigation = function(options) {

    var settings = {
        url: '',
        queryString: '',
        urlSource: 'html',
        destination: 'body',
        loadElement: null,
        autoOpen: false,
        attribute: 'navigate',
        selectedClass: 'selected',
        preservContent: false,
        OnStar: null,
        OnStop: null
    };
    options = jQuery.extend(settings, options);

    function startNavigation() {

        var fullUrl = (options.url != '') ? options.url.toLowerCase() : $(this).attr('href').toLowerCase();
        fullUrl = fullUrl.replace('./', '').replace('../', '');
		
		var anchor = '';

		if(fullUrl.indexOf('#') > 0){
			anchor = fullUrl.substr(fullUrl.indexOf('#')+1);
			fullUrl = fullUrl.split('#')[0];
		}

        if ($(options.loadElement).length > 0) {
            $(options.loadElement).show();
        }

        $('a[rel="' + options.attribute + '"]').each(function() {
            if (options.autoOpen == false) {
                $(this).removeClass(options.selectedClass);
                $(this).parent().removeClass(options.selectedClass);
            }

            var href = $(this).attr('href').toLowerCase().replace('./', '').replace('../', '');

            var aux1 = fullUrl;
            var aux2 = href.substr(0, href.lastIndexOf('.'));

            if (aux1.search(aux2) >= 0) {
                $(this).addClass(options.selectedClass);
                $(this).parent().addClass(options.selectedClass);
            }
        });
        $(this).addClass(options.selectedClass);
        $(this).parent().addClass(options.selectedClass);

        if (options.queryString != '') {
            fullUrl += (fullUrl.indexOf('?', 0) < 0) ? '?' : '&';
            fullUrl += options.queryString;
        }

        $.ajax({
            async: true,
            type: "GET",
            url: fullUrl,
            contentType: "text/html; charset=utf-8",
            dataType: "text",
            cache: false,
            success: function(html) {
                if (options.preservContent) {
					$(options.destination).append(html);
                }
				else
				{
					$(options.destination).html(html);
				}
                
				
				//Se tem ancora, navega até ela.
				if(anchor != ''){
					var destination = $('a[name=' + anchor + ']').offset().top;
					$("html:not(:animated),body:not(:animated)").animate({ scrollTop: destination}, 1000); 
				}
				
				if ($(options.loadElement).length > 0) {
                    $(options.loadElement).remove();
                }
            },
            error: function(XMLHttpRequest, textStatus, errorThrown) {
                alert('Não foi possível obter o conteúdo solicitado:\n\nErro: ' + XMLHttpRequest.status + ' - ' + XMLHttpRequest.statusText + '\n');
				
                if ($(options.loadElement).length > 0) {
                    $(options.loadElement).remove();
                }
            }
        });

        return false;
    }

    if (options.autoOpen == false) {
        if ($(this).attr('navigateStarted') != 'true') {
            $(this).attr('navigateStarted', 'true')
            this.click(startNavigation);
        }

    } else {
        startNavigation();
    }

}

function openUrlFlash(url) {

    var container = '#conteudoMioloFilho';
    var destino = '#conteudoMiolo';
    var attribute = 'navigate';

    var params = {};
    params.destination = destino;
    params.attribute = attribute;
    params.loadElement = '#icobuscando';
    params.url = url;
    params.urlSource = container;
    params.autoOpen = true;
    params.queryString = 'pageMode=Basic';
    params.selectedClass = 'clicado';

    flashBuscando(params.loadElement, destino);

	if ($(container).length > 0) {
		$(container).remove();
	}

	$(document).navigation(params);

}

function openUrlCombo(url, container, destino, attribute) {
    


    if (!attribute) attribute = 'navigate';
    var params = {};
    params.destination = destino;
    params.attribute = attribute;
    params.loadElement = '#icobuscando';
    params.url = url;
    params.urlSource = container;
    params.autoOpen = true;
    params.queryString = 'pageMode=Basic';
    params.selectedClass = 'clicado';

    flashBuscando(params.loadElement, destino);
	
	$(document).navigation(params);

		var urlLocation = trataUrl(url);
        $('a[rel="' + attribute + '"]').each(function() {
			var urlDestination = trataUrl($(this).attr('href'));
            if (urlLocation.search(urlDestination) >= 0 || urlDestination.search(urlLocation) >= 0) {
                $(this).addClass(params.selectedClass);
                $(this).parent().addClass(params.selectedClass);
            }
            else {
                $(this).removeClass(params.selectedClass);
                $(this).parent().removeClass(params.selectedClass);
            }
        });
}

function openUrl2(url, container, destino, attribute) {

}

function openUrl(url, container, destino, attribute) {

    if (!attribute) attribute = 'navigate';
    var params = {};
    params.destination = destino;
    params.attribute = attribute;
    params.loadElement = '#icobuscando';
    params.url = url;
    params.urlSource = container;
    params.autoOpen = true;
    params.queryString = 'pageMode=Basic';
    params.selectedClass = 'clicado';

    flashBuscando(params.loadElement, destino);
	
	var $parent = $(container).parent();

	
    if ($parent.attr('originalContent') == 'true') {
		$parent.html($parent.html().replace('openUrl', 'openUrl2'));
        $(destino).append($parent);
		
		var urlLocation = trataUrl(document.location.toString());
        $('a[rel="' + attribute + '"]').each(function() {
			var urlDestination = trataUrl($(this).attr('href'));
            if (urlLocation.search(urlDestination) >= 0 || urlDestination.search(urlLocation) >= 0) {
                $(this).addClass(params.selectedClass);
                $(this).parent().addClass(params.selectedClass);
            }
            else {
                $(this).removeClass(params.selectedClass);
                $(this).parent().removeClass(params.selectedClass);
            }
        });
		
		
		var $select = $('div.sexy select:first');
		var $input = $('input[name=' + $select.attr('id') + '__sexyCombo]');
		
		for(var i=0; i<$('option', $select).length; i++)
		{
			var val = $('option:nth(' + i + ')', 'div.sexy').attr('value');
			if(urlLocation.search(trataUrl(val)) >= 0){
				$('li', 'div.sexy div.list-wrapper ul').removeClass('active');
				$('li:nth(' + i + ')', 'div.sexy div.list-wrapper ul').addClass('active');
				val = $('li:nth(' + i + ')', 'div.sexy div.list-wrapper ul').text();
				$input.val(val);
				$input.removeClass('empty');
				$input.focus(); 
				
			}
		}
    }
    else {
		$(document).navigation(params);
    }
	$parent.attr('originalContent', 'false');
	$(params.loadElement).remove();
}
function trataUrl(url)
{
	url = url.toLowerCase();
	if(url.search('.aspx') >= 0) 	url = url.replace('.aspx', '');
	if(url.search('../') >= 0)   	url = url.replace('../', '');
	if(url.search('./') >= 0)    	url = url.replace('./', '');

	if(url.search('http://') >= 0 || url.search('https://') >= 0) {  
		if(url.search('http://') >= 0)   url = url.replace('http://', '');
		if(url.search('https://') >= 0)  url = url.replace('https://', '');
		
		url = url.substring(url.indexOf('/'));
	}
	return url;
}
function initNavigation(container, destino, attribute) {
    if (!attribute) attribute = 'navigate';
    var params = {};
    params.destination = destino;
    params.loadElement = '#icobuscando';
    params.attribute = attribute;
    params.urlSource = container;
    params.queryString = 'pageMode=Basic';
    params.selectedClass = 'clicado';

    $('a[rel="' + attribute + '"]').each(function() {
        $(this).navigation(params);
    });

    flashBuscando(params.loadElement, destino);
}
function flashBuscando(element, container) {

    if ($(element, $(container)).length == 0) {

        var newdiv = $(document.createElement('div'));
        newdiv.attr('id', element.replace('#', ''));
        newdiv.addClass('segurabuscando');
        var idIco = 'ico_' + newdiv.attr('id');
        newdiv.html('<div class="buscando"><span class="icobuscando" id="' + idIco + '"></span><p class="buscando">Buscando, aguarde</p></div>');

		$(container).append(newdiv);
        newdiv.hide();

        var params = {};
        params.menu = 'false';
        params.quality = 'high';
        params.scale = 'noscale';
        params.wmode = 'transparent';
        params.allowscriptaccess = 'always';
        swfobject.embedSWF('/site/images/swf/buscando.swf', idIco, '18', '18', '8.0.0', false, null, params, null);
    }
}
function removeConteudo(nivel) {    
	return;
	//if($('#hidJqueryNavigate').length > 0) return;
	var obj;        
	while (true) {            
		obj = $('#subnivel' + nivel++);            
		if (obj.length > 0) 
			obj.remove(); 
		else 
			break;        
	}    
}