try{
    jQuery.noConflict();
    $j = jQuery;
}catch(e){
    Log("Erro: jQuery não está disponível\n" + e);
}

// provides cross-browser focusin and focusout events
// IE has native support, in other browsers, use event caputuring (neither bubbles)

// provides delegate(type: String, delegate: Selector, handler: Callback) plugin for easier event delegation
// handler is only called when $(event.target).is(delegate), in the scope of the jQuery-object for event.target 

// provides triggerEvent(type: String, target: Element) to trigger delegated events
;(function($) {
	jQuery.each({
		focus: 'focusin',
		blur: 'focusout'	
	}, function( original, fix ){
		jQuery.event.special[fix] = {
			setup:function() {
				if ( jQuery.browser.msie ) return false;
				this.addEventListener( original, jQuery.event.special[fix].handler, true );
			},
			teardown:function() {
				if ( jQuery.browser.msie ) return false;
				this.removeEventListener( original,
				jQuery.event.special[fix].handler, true );
			},
			handler: function(e) {
				arguments[0] = jQuery.event.fix(e);
				arguments[0].type = fix;
				return jQuery.event.handle.apply(this, arguments);
			}
		};
	});
	jQuery.extend(jQuery.fn, {
		delegate: function(type, delegate, handler) {
			return this.bind(type, function(event) {
				var target = $(event.target);
				if (target.is(delegate)) {
					return handler.apply(target, arguments);
				}
			});
		},
		triggerEvent: function(type, target) {
			return this.triggerHandler(type, [jQuery.event.fix({ type: type, target: target })]);
		}
	})
})(jQuery);


function getNewRndNumber(){
	return Math.round(Math.random()*99999999999);
}

function isArray(obj) {
   if (obj.constructor.toString().indexOf("Array") == -1)
      return false;
   else
      return true;
}

$j(document).ready(function(){
    InitMain();
});

var logentries = 0;

var Log = function(text){
	
	if(document.location.href.indexOf("log=true")<=-1) return false;
	
	if($j("div#log").length <=0)
		$j("body").append("<div id='log' style='background-color: #666; width:100%; height: 100px; overflow: auto'><div style='background-color: #FFF; margin: 5px; padding: 5px; height: 100%'></div></div>");
		
	var prev = $j("div#log div").html();
	$j("div#log div").html(prev + "\n<br/>" + (logentries +1) + " - " + text);
	$j("div#log")[0].scrollTop = $j("div#log")[0].scrollHeight;
	
	logentries ++; 
}

function BuscarInfoProduto(controle) {
    var idProduto = $j(controle).val();

    if (idProduto <= 0) return;

    $j.post(
		siteroot + "/Utils/ObterInfoProduto.aspx?pIdProduto=" + idProduto.replace(/[^\d]/gi, ""),
		"",
		function(data) {
		    if (data != null) {
		        PROPOSAL_MAINREVENUE = data.MainRevenue.toString();

		        //Idade minima
		        PROPOSAL_MIN_AGE = data.MinAge.toString();

		        //Idade maxima
		        PROPOSAL_MAX_AGE = data.MaxAge.toString();
		    }
		},
		"json"
	);
        
}

function BuscarCEP(value, tipo){
	
	$j.post(
		siteroot + "/proposal/getCep.aspx?cep=" + value.replace(/[^\d]/gi, ""),
		"",
		function(data){
			
			var rua;
			var bairro;
			var cidade;
			var estado;
				
			if(tipo=="residencial"){
				rua = $j(".enderecoResidencia");
				bairro = $j(".bairroResidencia");
				cidade = $j(".cidadeResidencia");
				estado = $j(".estadoResidencia");
			}else{
				rua = $j(".enderecoEmpresa");
				bairro = $j(".bairroEmpresa");
				cidade = $j(".cidadeEmpresa");
				estado = $j(".estadoEmpresa");
			}

			if (data == "vazio" || data.length <= 0) {

				rua.val("");
				bairro.val("");
				cidade.val("");
				estado.val("0");

				rua.removeClass("view-only");
				rua.removeAttr("disabled");
				bairro.removeClass("view-only");
				bairro.removeAttr("disabled");
				cidade.removeClass("view-only");
				cidade.removeAttr("disabled");
				estado.removeClass("view-only");
				estado.removeAttr("disabled");
				return;
			}
			else {
				rua.addClass("view-only");
				rua.attr("disabled", "disabled");
				bairro.addClass("view-only");
				bairro.attr("disabled", "disabled");
				cidade.addClass("view-only");
				cidade.attr("disabled", "disabled");
				estado.addClass("view-only");
				estado.attr("disabled", "disabled");
			}
			var end = data.split("|");
			
			rua.val(end[1]);
			bairro.val(end[5]);
			cidade.val(end[3]);
			for(i=0; i<estado.find("option").length; i++){
				if($j(estado.find("option")[i]).text()==end[4]){
					$j(estado.find("option")[i])[0].selected=true;
					break;
				}
			}

		},
		"text"
	);
}

function BuscarCEPRepublicaVirtual(value, tipo){
	
	$j.post(
		siteroot + "/proposal/getCep.aspx?cep=" + value.replace(/[^\d]/gi, ""),
		"",
		function(data){
			
			
			var resultado = $j("resultado",$j("webservicecep",data)).text();
			var end_rua =  $j("tipo_logradouro",$j("webservicecep",data)).text() + " " + $j("logradouro",$j("webservicecep",data)).text();
			var end_bairro =  $j("bairro",$j("webservicecep",data)).text();
			var end_cidade =  $j("cidade",$j("webservicecep",data)).text();
			var end_uf =  $j("uf",$j("webservicecep",data)).text();
			
			var rua;
			var bairro;
			var cidade;
			var estado;
				
			if(tipo=="residencial"){
				rua = $j(".enderecoResidencia");
				bairro = $j(".bairroResidencia");
				cidade = $j(".cidadeResidencia");
				estado = $j(".estadoResidencia");
			}else{
				rua = $j(".enderecoEmpresa");
				bairro = $j(".bairroEmpresa");
				cidade = $j(".cidadeEmpresa");
				estado = $j(".estadoEmpresa");
			}
			
			if(!resultado || resultado < 1) {
			    rua.val("");
			    bairro.val("");
			    cidade.val("");
			    estado.val("0");
			    
			    return;
			}
			   
			rua.val(end_rua);
			bairro.val(end_bairro);
			cidade.val(end_cidade);
			for(i=0; i<estado.find("option").length; i++){
				if($j(estado.find("option")[i]).text()==end_uf){
					$j(estado.find("option")[i])[0].selected=true;
					break;
				}
			}
		},
		"xml"
	);
	
}

var InitMain = function(){
    try{
        InitDomain();
    }catch(e){
        Log(e.message);
    }
}