/* ======================================================================

RGH JS Control

=======================================================================*/
/*		Globals		*/
var globalRoot = ''
var traceOut = false
/* ======================================================================

Dom

=======================================================================*/
window.addEvent('domready', function(){
	trace('domReady')
	
	/* if(!Browser.Engine.trident){glitter()} */
	glitter()
	
	
});

/* ======================================================================

MAIN FUNCTIONS

=======================================================================*/

function glitter(){
	var obj = $('header').getFirst('.c_16')
	obj.setStyle('position', 'relative')
	obj.stars = []
	obj.max = 15
	makeStars.delay(50, obj)
}
function makeStars(){
	for(i=0;i<this.max;i++){
		this.stars[i] = new Element('div').injectInside(this).addClass('ccStar')
		if(!Browser.Engine.trident){this.stars[i].fade('hide')}
		this.stars[i].p = this
		this.stars[i].iid = i
		resetStar.delay(250+(200*i), this.stars[i])
	}
}

function resetStar(){
	var cns = new Array('sp1', 'sp2')
	this.removeClass('sp1')
	this.removeClass('sp2')
	if($random(0, 100)>99){ this.addClass(cns[1])}
	else{ this.addClass(cns[0])}
	this.ix = $random(75, 700)
	this.iy = 0
	this.vx = $random(-100, 100) * .001
	this.vy = $random(10, 100) * .0001
	this.ty = 600
	this.tx = $random(75, 700)
	this.fr = 40
	this.switched = false
	this.init = true
	this.setPosition = function(){ 
		setPos(this) 
		getPos(this)
	}
	this.setPosition.delay(this.fr+(this.fr*this.iid*50), this)
}

function getPos(obj){
	if(obj.init==true){if(!Browser.Engine.trident){obj.fade($random(1, 40)*0.01)}; obj.init = false}
	dx = obj.tx - obj.ix
	dy = obj.ty - obj.iy
	ax = scaler(dx);
	ay = scaler(dy);
	obj.vx+=ax
	obj.vy+=ay
	obj.ix+=obj.vx;
	obj.iy+=obj.vy;
	if(obj.switched == false ){ 
		if($random(0, 100)>99){ 
			obj.vy += (obj.vy*-.5) ; 
			obj.vx*=-1; 
			obj.tx = $random(75, 700)
			obj.switched = true 
		} 
	}
	if(!Browser.Engine.trident){
		if(obj.iy>250){obj.fade(0)}
		else{if($random(0, 50)>49){ obj.fade($random(20, 80)*0.01)}}
	
		if(obj.iy>580){ resetStar.delay(10, obj) }
		else{obj.setPosition.delay(obj.fr, obj)}

	}
	else{
		if(obj.iy>550){ resetStar.delay(10, obj) }
		else{obj.setPosition.delay(obj.fr, obj)}
	}
}

function setPos(obj){
	obj.setStyles({
		top: obj.iy,
		left: obj.ix
	})
}

/* ======================================================================

Util Functions

=======================================================================*/
function scaler(n) { 
	return(n*0.000051*0.9999); 
}
function trace(msg){
	if(traceOut==true){
		if(!document.body.TracerStack){document.body.TracerStack=[]} document.body.TracerStack.push(msg)
		if(document.body.tracerEnabled){document.body.TraceOut.show(msg)}
		else if(!document.body.tracerLoad)
		{ document.body.tracerLoad = true; var TracerScript = new Asset.javascript(globalRoot+'js/tracer/Trace.js', {id: 'Tracer' }) }
	}
}

function whois(obj){ trace('Whois :: '+obj+' :: id: '+obj.get('id')+' :: class: '+obj.className) }

function isEven(value){
	if (value%2 == 0)
		return true;
	else
		return false;
}
function exists(chk){ 
	if($$(chk).length>0)
		return true;
	else
		return false; 
}

/*
Balance Heights
------------------------------------*/
function balanceHeights(arr){
	var heights = []
	arr.each(function(el,i){ heights.push(el.getPosition().y.toInt()+el.getSize().y.toInt()) });
	arr.each(function(el,i){ 
		if(heights.max()-heights[i]>0){	el.spacer = new Element('div').injectInside(el).setStyles({ height: heights.max()-heights[i], clear: 'both' }) }
	});
}


