// Variável que define a posição do scroll
$D.global.POSICAO = 0;
var swfu;
var comboArea = null;

// Cria o Drag n' Drop do Scroll
$D.listener.push(window,'onload',function(){
	$D.global.ddBarra = $D.dragdrop.push('scrollSite','scrollSite',{
		type: 'normal',
		block: true,
		left: -6,
		top: -11,
		width: 1000,
		height: 41,
		ondragmove: function() {
			$D.global.POSICAO = ((parseInt($S('scrollSite').left)+6)*100)/($D.global.SIZE_BARRA-$D.global.SIZE_SCROLL);
		}
	});
	$('total').onmousewheel = wheel;
});

// Inicia os drags dos scrolls das colunas
$D.global.INIT_DRAGS_COLLS = function() {
	$D.global.DRAGS_COLLS = new Array();
	for (var i = 1; i <= $D.global.NUM_COLLS; i++) {
		$D.global.DRAGS_COLLS[i] = $D.dragdrop.push('scrollColl_'+i,'scrollColl_'+i,{
			type: 'normal',
			block: true,
			left: 193,
			top: 230,
			width: 6,
			height: 300,
			ondragmove: function() {
				
			}
		});
	}
};
$D.listener.push(window,'onload',$D.global.INIT_DRAGS_COLLS);

// Atualiza a altura das colunas
$D.global.REFRESH_COLLS = function() {
	$S('startColl').height = $D.page.visibleSize['y']+'px';
	$S('endColl').height = $D.page.visibleSize['y']+'px';
	for (var i = 1; i <= $D.global.NUM_COLLS; i++) {
		$S('itenColl_'+i).height = $D.page.visibleSize['y']+'px';
		$S('collText_'+i).height = ($D.page.visibleSize['y']-290)+'px';
		$D.global.DRAGS_COLLS[i].height = $D.page.visibleSize['y']-280;
		$S('scrollColl_'+i).top = '230px';
		var sizeTotal = $D.basic.getSize('spanCollText_'+i).y;
		var sizeDiv = $D.basic.getSize('collText_'+i).y;
		$S('scrollColl_'+i).display = (sizeTotal<sizeDiv)?'none':'';
	}
	$S('imgEndColl').marginTop = (($D.page.visibleSize['y']-$D.basic.getSize('imgEndColl').y)/2)+"px";
};
$D.listener.push(window,'onresize',$D.global.REFRESH_COLLS);
$D.listener.push(window,'onload',$D.global.REFRESH_COLLS);

// Timer para o easing da rolagem
$D.global.TIMER_COLLS = new $D.timer();
$D.global.TIMER_COLLS.interval = 20;
$D.global.TIMER_COLLS.ontime = function() {
	
	var ease = 0.3;
	
	for (var i = 1; i <= $D.global.NUM_COLLS; i++) {
		var sizeTotal = $D.basic.getSize('spanCollText_'+i).y + 20;
		var sizeDiv = $D.basic.getSize('collText_'+i).y;
		var scrollTotal = $D.global.DRAGS_COLLS[i].height - $D.basic.getSize('scrollColl_'+i).y;
		var scrollAtual = parseInt($S('scrollColl_'+i).top);
		var scrollDivNow = $('collText_'+i).scrollTop;
		var scrollDivNew = $D.findTweenValue(0, sizeTotal-sizeDiv, 230, scrollAtual, scrollTotal+230, 'linear');
		$('collText_'+i).scrollTop += (scrollDivNew-scrollDivNow)*ease;
	}
	
};
$D.listener.push(window,'onload',function(){
	$D.global.TIMER_COLLS.play();
});

// Atualiza o tamanho e posição da barra de scroll quando necessário
$D.global.POSICIONA_BARRA = function() {
	var ST = $D.global.TOTAL_SIZE;
	var SV = $D.page.visibleSize['x'];
	var dif = ST - SV;
	
	if (dif < 0) {
		$D.global.POSICAO = 0;
		$S('setaEsq').top = '-100px';
		$S('setaDir').top = '-100px';
		$S('areaScroll').top = '-100px';
	}else{
		$D.global.SIZE_SCROLL = $D.basic.getSize('scrollSite').x;
		$D.global.SIZE_BARRA = Math.max(400,$D.page.visibleSize['x']/2);
		$D.global.CENTER_BARRA = Math.ceil($D.global.SIZE_BARRA/2);
		$D.global.INIT_BARRA = Math.ceil($D.page.visibleSize['x']/2)-$D.global.CENTER_BARRA;
		
		$S('areaScroll').width = $D.global.SIZE_BARRA+'px';
		$S('areaScroll').top = ($D.page.visibleSize['y']-26)+'px';
		$S('areaScroll').left = $D.global.INIT_BARRA+'px';
		
		$S('setaEsq').top = ($D.page.visibleSize['y']-26)+'px';
		$S('setaEsq').left = ($D.global.INIT_BARRA-5)+'px';
		
		$S('setaDir').top = ($D.page.visibleSize['y']-26)+'px';
		$S('setaDir').left = ($D.global.INIT_BARRA+$D.global.SIZE_BARRA-5)+'px';
		
		$D.global.SIZE_BARRA = $D.global.SIZE_BARRA+12;
		
		$D.global.ddBarra.width = $D.global.SIZE_BARRA;
		
		$S('scrollSite').left = ((($D.global.SIZE_BARRA-$D.global.SIZE_SCROLL)*($D.global.POSICAO)/100)-6)+"px";
	}
};
$D.listener.push(window,'onresize',$D.global.POSICIONA_BARRA);
$D.listener.push(window,'onload',$D.global.POSICIONA_BARRA);

// Timer para o easing da rolagem
$D.global.TIMER_BARRA = new $D.timer();
$D.global.TIMER_BARRA.interval = 20;
$D.global.TIMER_BARRA.ontime = function() {
	
	var ease = 0.3;
	
	var ST = $D.global.TOTAL_SIZE;
	var SV = $D.page.visibleSize['x'];
	var PA = parseInt($S('total').left);
	var dif = ST - SV;
	
	if (dif < 0) {
		$D.global.POSICAO = 0;
		$S('setaEsq').top = '-100px';
		$S('setaDir').top = '-100px';
		$S('areaScroll').top = '-100px';
	}
	
	var newPos = dif * $D.global.POSICAO/-100;
	
	$S('total').left = PA + ((newPos-PA)*ease)+'px';
	
};
$D.listener.push(window,'onload',function(){
	$D.global.TIMER_BARRA.play();
});

function handle(delta) {

	if (delta < 0) $D.global.POSICAO += 5; else $D.global.POSICAO -= 5;
	
	$D.global.POSICAO = Math.min(Math.max(0,$D.global.POSICAO),100);
	
	$S('scrollSite').left = ((($D.global.SIZE_BARRA-$D.global.SIZE_SCROLL)*$D.global.POSICAO/100)-6)+'px';

}

/** Event handler for mouse wheel event.
 */
function wheel(event){
        var delta = 0;
        if (!event) /* For IE. */
                event = window.event;
        if (event.wheelDelta) { /* IE/Opera. */
                delta = event.wheelDelta/120;
                /** In Opera 9, delta differs in sign as compared to IE.
                 */
                if (window.opera)
                        delta = -delta;
        } else if (event.detail) { /** Mozilla case. */
                /** In Mozilla, sign of delta is different than in IE.
                 * Also, delta is multiple of 3.
                 */
                delta = -event.detail/3;
        }
        /** If delta is nonzero, handle it.
         * Basically, delta is now positive if wheel was scrolled up,
         * and negative, if wheel was scrolled down.
         */
        if (delta)
                handle(delta);
        /** Prevent default actions caused by mouse wheel.
         * That might be ugly, but we handle scrolls somehow
         * anyway, so don't bother here..
         */
        if (event.preventDefault)
                event.preventDefault();
	event.returnValue = false;
}

if (window.addEventListener) window.addEventListener('DOMMouseScroll', wheel, false);
window.onmousewheel = document.onmousewheel = wheel;


function blurCampo(obj,padrao){
	if(obj.value==''){
		obj.value=padrao;
	}
}
function focusCampo(obj,padrao){
	CONTATO.limparRetorno();
	if(obj.value==padrao){
		obj.value='';
	}
}

$D.combos = [];
$D.combo = function(pt){
	for (var k in pt) this[k] = pt[k];	
	
	this.newIdCombo = $D.combos.length;
	
	
	document.write('<ul id="combo_'+this.id+'_'+this.newIdCombo+'" class="'+this.className+'" style="display:none;" onmouseover="$D.combos['+this.newIdCombo+'].open();" onmouseout="$D.combos['+this.newIdCombo+'].close();">');
	
	for(var i=0; i<$(this.id).options.length; i++){
		document.write('<li onclick="$D.combos['+this.newIdCombo+'].doOnClick(this, \''+$(this.id).options[i].text+'\');" value="'+$(this.id).options[i].value+'">'+$(this.id).options[i].text+'</li>');
	}
	
	document.write('</ul>');
	
	
	this.doOnClick = function(obj, text){
		this.value = obj.value;
		this.close();
		this.onClick(obj, text);
		this.toString=function(){return"[class Combo:Event->onClick]"};
	};
	
	this.open = function(){
		$("combo_"+this.id+"_"+this.newIdCombo).style.display = 'block';
		this.onOpen();
		this.toString=function(){return"[class Combo:Event->onOpen]"};		
	}
	
	this.close = function(){
		$("combo_"+this.id+"_"+this.newIdCombo).style.display = 'none';
		this.onClose();
		this.toString=function(){return"[class Combo:Event->onClose]"};
	}
	
	this.toString=function(){return"[class Combo]"};
	$D.combos.push(this);
	return this;
}



$D.combo.prototype = {
	'id': '',
	'value': null,
	'className': '',
	'onClick': function(){},
	'onOpen': function(){},
	'onClose': function(){}
}
