
(function(){ //no cache on request
    var setNoCache = function(cls) {
        return Class.refactor(cls, {options: {
            noCache: true
        }});
    };
    Request = setNoCache(Request);
    Request.HTML = setNoCache(Request.HTML);
})();

function wrap_value(n,b)
{
	return ((n%b)+b)%b;
}

function inlineIE7(el)
{
	if (Browser.Engine.trident5)
	{
		el.setStyles({
			'display':'inline',
			'zoom':1
		});
		
	}
}

iq_truncate=function(el) {
	var txt=el.get('html');
	el.set('html','.');
	el.setStyle('display','block');
	var maxw=el.getSize().x;
	var width=el.getStyle('width');
	el.setStyle('width','auto');
	el.setStyle('display','none');
	el.setStyle('white-space','nowrap');
	el.set('html',txt);
	el.measure(function() {
		var w=this.getDimensions().x;
		var t=this.get('html');
		var top=t.length;
		var bot=0;
		var mid;
		var i=0;
		if (w >= maxw) {
			this.set('title',t);
		} else {
			return;
		}
		while ((i<10) && ((top-bot) > 1)) {
			i++;
			mid=Math.floor(bot + (top - bot) / 2);
			this.set('html',t.substr(0,mid) + "...");
			w=this.getDimensions().x;
			//console.log("t: "+top+ " m: "+mid+" b: "+bot );
			if(w > maxw) {
				top=mid;
			} else {
				bot=mid;
			}	
		}
		if (w > maxw) {
			this.set('html',t.substr(0,mid - 1) + "...");
		}
	});
	el.setStyle('display','block');
	el.setStyle('width',width);
}

function paradist(x1,x2,tick,ticks)
{
	if (ticks==0) {
		return x2;
	}
	if (tick>=ticks) {
		return x2;
	}
	if (tick<=0) {
		return x1;
	}
	var a=-2.0/3.0;
	var b=2.0*(tick/ticks)-1.0;
	b=-(b*b*b/3.0)+b;
	return ((b-a)/(4.0/3.0))*(x2-x1)+x1;
}

function arrow(color,mouse_color,direction,width,height,box_width,box_height)
{
	var dirswitch={'left':'right','right':'left','up':'bottom','down':'top'}
	direction=dirswitch[direction];
	var el=new Element('div');
	var out=new Element('div');
	var vert=(direction=='top')||(direction=='bottom');
	var n=vert?height:width;
	var t=vert?width/2:height/2;
	var running=false;
	el.setStyles({
		'width': 0,
		'height': 0,
		'border': t+'px solid transparent',
		'position':'absolute',
		'top':0,
		'margin':0
	});
	el.setStyle('border-'+direction,n+'px solid '+color);

	el.inject(out);
	out.addEvents({
		'mouseenter': function(){
			el.setStyle('border-'+direction,n+'px solid '+mouse_color);
		},
		'mouseleave': function(){
			el.setStyle('border-'+direction,n+'px solid '+color);
		}
	
	});
	out.setStyles({
	//	'position':'absolute',
		'overflow':'hidden',
	//	'width':vert?t*2:n,
	//	'height':vert?n:t*2,
		'width':box_width,
		'height':box_height
	});
	//el.setStyle('left',direction=='right'?-t:0);
	//el.setStyle('top',direction=='bottom'?-t:0);
	el.setStyle('left',(direction=='right'?-t:0)-(width-box_width)/2);
	el.setStyle('top',(direction=='bottom'?-t:0)-(height-box_height)/2);
	return out;
}

function arrays_intersect(a1,a2)
{
	var out=false;
	a1.each(function(a){
		if (a2.contains(a)) {
			out=true;
		}
	});
	return out;
}

function my_shake(el,n,ms,r,deg,roff)
{
	var time = (new Date()).getTime();
	var looping=false;
	var c_timer;
	var frac;
	var radius;
	var theta;
	var x_off;
	var y_off;
	var x_stop=0;
	var y_stop=0;
	
	el.shake=function()
	{
		if (!looping)
		{	
			time = (new Date()).getTime();
			c_timer=looper.periodical(20);
			looping=true;
		}
	}
	
	var loop_stop=function()
	{
		el.setStyles({
			top: y_stop,
			left: x_stop
		});
		$clear(c_timer);
		looping=false;
	}
	
	var looper=function()
	{
		frac = (((new Date()).getTime()-time)/ms).limit(0,1);
		radius = Math.sin(n * frac * Math.PI) * r;
		theta = ((deg+roff)/180.0)*Math.PI*frac;
		x_off = Math.cos(theta)*radius;
		y_off = Math.sin(theta)*radius;
		if (frac<1)
		{
			el.setStyles({
				top: y_off,
				left: x_off
			});
		}
		else
		{
			loop_stop();
		}
	}
}

function FlashCB_refreshScores(quizId, forceRefresh)
{
	$(document.body).fireEvent('scores_refreshed');
//	alert('start');
}
 
function FlashCB_quizPlayerEnded()
{
	$(document.body).fireEvent('quiz_ended');
}

function FlashCB_quizRumble()
{
	$(document.body).fireEvent('rumble');
}

function FlashCB_quizFlash()
{
	$(document.body).fireEvent('flash');
}
/*
window.addEvent('domready',function(){
	shake=$('main_content');
	my_shake (shake,11,500,3,0,45);
	shake.addEvent('click',shake.shake);
});
*/
/* Make nice menus */
window.addEvent('domready', function() {
	var first_input=document.getElement('form input[type=text], form input[type=password]');
	if(first_input && !first_input.hasClass('dont_focus'))
	{	
		first_input.focus();
	}
	if (document.user_menu_pos&&(document.user_menu_pos=='score'))
	{
		$('menu_scores').set('class','active');
	}
	if (document.user_menu_pos&&(document.user_menu_pos=='quiz_browser'))
	{
		$('quiz_browse').set('class','active');
	}
	
	// Setup the main menu tabs
	var elem_main_menu=document.getElement('ul[class=menu_main]');
	if (elem_main_menu)
	{
		elem_main_menu.getChildren().each(function(menu_elem){
			setup_rounded_corner_menu_tab(menu_elem,'#fff','#00cade');
		});
		// Show menu now we've finished constructing it
		elem_main_menu.setStyle('visibility', 'visible');
	}

	// Setup the sub menu tabs
	var elem_sub_menu=document.getElement('ul[class=menu_sub]');
	if (elem_sub_menu)
	{
		elem_sub_menu.getChildren().each(function(menu_elem){
			setup_rounded_corner_menu_tab(menu_elem,'#fff','#a3d42a');
		});
		// Show menu now we've finished constructing it
		elem_sub_menu.setStyle('visibility', 'visible');
	}

	_xxxxxx();
	_yyyyyy(); //
	_zzzzzz();
//	_footer_offset();
});

function _footer_offset()
{
	//alert(document.getElement('body').getScrollSize().y);
	document.getHeight();
	var dimy=530-$('main_content').getSize().y;
	dimy=dimy<0?30:dimy;
	$('bottom_pad').setStyle('height',dimy);
}

function _xxxxxx()
{
	$$('.xxxxxx').each(function(el){
		var xxx=['@','have','question','a','inquizitor','.com','i'];
		var yyy=xxx[6]+xxx[1]+xxx[3]+xxx[2]+xxx[0]+xxx[4]+xxx[5];
		el.set('href','mailto:'+yyy);
		el.set('html',yyy);
	});
};

function _yyyyyy()
{
	$$('.yyyyyy').each(function(el){
		var xxx=['@','l','s','e','inquizitor','.com','sa'];
		var yyy=xxx[6]+xxx[1]+xxx[3]+xxx[2]+xxx[0]+xxx[4]+xxx[5];
		el.set('href','mailto:'+yyy);
		el.set('html',yyy);
	});
};

function _zzzzzz()
{
	$$('.zzzzzz').each(function(el){
		var xxx=['@','tom','service','er','inquizitor','.com','cus'];
		var yyy=xxx[6]+xxx[1]+xxx[3]+xxx[2]+xxx[0]+xxx[4]+xxx[5];
		el.set('href','mailto:'+yyy);
		el.set('html',yyy);
	});
};

function addToolTips()
{
	$$('.tooltip, .score_icon, .graphinfo').each(function(element,index) {
		var content = element.get('title').split('::');
		element.store('tip:title', content[0]);
		element.store('tip:text', content[1]);
	});
	var tipgroup = $$('.tooltip, .score_icon, .graphinfo');
	var tooltips = new Tips(tipgroup, {
		onAttach:function(el){
			//this.tip.fade('hide');
		},
		onShow: function(el) {
			el.fade('show');
		},
		onHide: function(el) {
			el.fade('out');
		},
		showDelay: 500
	});
}
/*
 * el           -- The list element to be configured
 * sel_color    -- text colour that should be used when this menu item is active
 * sel_color_bg -- bg colour that should be used when this menu item is active
 */
function setup_rounded_corner_menu_tab(el,sel_color,sel_bg_color)
{
	var width = 3;
	var item_wrap = new Element('div');
	var padding = el.getStyle('padding');
	var ele = [new Element('div'),
		new Element('a'),
		new Element('div')];
		
	ele[0].inject(item_wrap);
	ele[1].inject(item_wrap);
	ele[2].inject(item_wrap);
	
	var txt = el.getElement('a').get('html');
	var id = el.getElement('a').get('id');
	if (id) {
		item_wrap.set('id',id);
	}
	var url = el.getElement('a').getAttribute('href');
	var active = el.getElement('a[class=active]')!=null;
	var height = parseInt(el.getStyle('height'));
	var color = (active)? sel_bg_color : el.getStyle('background-color');
	var txt_color = (active)? sel_color : el.getStyle('color');
	el.set('html','');
	ele[1].set('html',txt);
	ele[1].set('href',url);
	
	item_wrap.set_default_color = function(fg_color,bg_color)
	{
		color = bg_color;
		txt_color = fg_color;
	}
	
	item_wrap.set_color = function(fg_color,bg_color)
	{		
		ele[1].setStyles({
			'color':fg_color,
			'background':bg_color
		});
		ele[0].setStyles({
			'border-right': width+'px solid '+bg_color
		});
		ele[2].setStyles({
			'border-left': width+'px solid '+bg_color	
		});
	};
	
	ele.each(function(elem){
		elem.setStyles({
			'display':'inline-block',
			'height':height,
			'background':color,
			'vertical-align': 'middle',
			'line-height':height,
			'width':10
		});
		inlineIE7(elem);
	});
	if (!active)
	{
		el.addEvents({
			'click':function(e)
			{
				window.location = url;
				e.stop();
			},
			'mouseenter':function()
			{
				item_wrap.set_color(sel_color,sel_bg_color);
			},
			'mouseleave':function()
			{
				item_wrap.set_color(txt_color,color);
			}
		});
	}
	ele[1].setStyle('width','auto');
	ele[0].setStyles({
		'width':0,
		'height': height-width,
		'border': width+'px solid transparent',
		'border-right': width+'px solid '+color,
		'border-left': '0px solid '+color,
		'border-bottom': '0px solid '+color,
		'background':'transparent'

		
	});
	ele[2].setStyles({
		'width':0,
		'height': height-width,
		'border': width+'px solid transparent',
		'border-left': width+'px solid '+color,
		'border-right': '0px solid '+color,
		'border-bottom': '0px solid '+color,
		'background':'transparent'	
	});
	ele[1].setStyles({
		'width':'auto',
		'padding':padding,
		'color':txt_color,
		'text-decoration': 'none'
	});
	item_wrap.inject(el);

	el.setStyles({
		'height':'auto',
		'line-height':1,
		'cursor':active?'default':'pointer',
		'background':'transparent',
		'padding':0
	});

}

/* Make nice menus end*/




 
 


