
function _random(from,to){
	return Math.floor((Math.random()*to)+from);
};

function quickHelp(obj){
	var url = obj.href;
	$('#frame').html('');
	$('#frame').css('display','block');
	$('#frame').load(url, {}, function(ret){ popupFade(1) });
}

function popupFade(bool){		
	var pct = 90/100;
	var szx = $(document).width();
	var szy = $(document).height();
	
	var sy = $(document).scrollTop();
	var ww = 940;
	var xx = Math.floor((szx -ww)/2);	
	$('#frame').css({left:xx+'px',width:ww+'px',display:'block',top: sy });	
	var yy = szy;	
	$('#fade').css({width:szx, height:yy,top:0,left:0});
	var cf = '#fade';
	if (bool){	
		$(cf).fadeTo(1,pct).show();	
	} else {
		$(cf).fadeTo(1,0).hide();
	}
}

function togglePopup(id, url){
	var vis =  ($('#'+id).css('display') == 'block') ? 1 : 0;

	var sy = $(window).scrollTop();
	var pad = 50;
		
	if (vis){
		$('#'+id).hide();
		$('#fade').fadeTo(1,0).hide();
		$('#'+id+'_html').html('');
	} else {
		var ww = $(window).width();
		var wh = $(window).height();
		var hh = $('#rb_container').height()+90;
		if (wh > hh) hh = wh;

		if (url){
			if (url.img){
				$('#'+id+'_html').html('<div align="center"><img src="'+url.img+'" /></div>');
			} else if(url.video){
				if (! url.fvars) url.fvars = {};
				var title = (url.title) ? '<h2>'+url.title+'</h2><img class="closebtn" src="btn/popup_close.png" align="right" onclick="togglePopup(\''+id+'\')" />' : '';
				var params = {};
				params.menu = "false";
				params.salign = "t";
				params.scale = 'default';
				params.bgcolor = '#ffffff';
				params.wmode = "opaque";
				var attributes = {};
				$('#'+id+'_html').html('<div id="videopopup_bb" class="popupbox">'+title+'<div id="videopopup"></div></div>');
				swfobject.embedSWF('flash/player_autosize.swf', "videopopup", url.w, url.h, "9.0.0", "expressInstall.swf", url.fvars, params, attributes);
				$('#videopopup_bb').css({width:url.w});
			} else if (url.swf) {
				var title = (url.title) ? '<h2>'+url.title+'</h2><img class="closebtn" src="btn/popup_close.png" align="right" onclick="togglePopup(\''+id+'\')" />' : '';
				var params = {};
				params.menu = "false";
				params.salign = "t";
				params.scale = 'default';
				params.bgcolor = '#ffffff';
				params.wmode = "opaque";
				var attributes = {};
				$('#'+id+'_html').html('<div id="videopopup_bb" class="popupbox">'+title+'<div id="videopopup"></div></div>');
				swfobject.embedSWF('http://edgecastcdn.net/000093/'+url.swf+'.swf', "videopopup", url.w, url.h, "9.0.0", "expressInstall.swf", false, params, attributes);
				$('#videopopup_bb').css({width:url.w});
			} else {
				$('#'+id+'_html').load(url);
			}
		}

		//$('#'+id+'_fade').css({width:ww, height:hh,top:0,left:0});
		$('#fade').css({width:ww, height:hh,top:0,left:0});
		$('#'+id).show();
		$('#'+id).css('top', sy); 
		$('#fade').fadeTo(1,0.9).show();
	}
}	



function showFeedback(){
	var url = ROOT_URL+'feedback';
	js_toggleMovie();
	//$('#frame').style.display = 'block';
	var el = 'frame';
	//$('#iframe').src = url;
	//window.frames['iframe'].src = url;
	var ajx = new Ajax(url, {update:el, evalScripts:true}).request();	
}

function closeFrame(){
	$('#frame').style.display = 'none';
	$('#fade').style.display = 'none';
	_opacity($('#fade'),100);
	js_toggleMovie();
}

// exammap
function _centerDrag(el, dofade){
	var obj = $(el);
	obj.style.display = 'block';	
	var esz = obj.getSize();
	var wsz = window.getSize();
	var offset = 2;
	if (isIE) offset = 21;
	var szx = wsz.scrollSize.x - offset;
	var szy = wsz.scrollSize.y - offset;
	var xx = (szx - esz.size.x)/2;
	var yy = (szy - esz.size.y)/2;
	//alert(yy);
	if (yy < 20) yy = 20;
	obj.style.top = yy;
	obj.style.left = xx;
	obj.style.visibility = 'visible';
	if (dofade){
		$('#fade').style.display = 'block';
		$('#fade').style.width = szx+'px';		
		$('#fade').style.height = szy+'px';	
		//alert(wsz.scrollSize.y+'px');
		_opacity($('#fade'),20);
	}
	//new Drag.Base(el);
	

	
}

function _opacity(obj, n){
	n = 100 - n;
	var d = n/100;	
	if (DBG) alert($(obj).attr('id')+' '+d);
	if (d == 0){
		$(obj).fadeTo(1,0);
	} else {
		$(obj).fadeTo(1,d);
	}
}

function showUpgrade(url){  	
	$('#frame').html('');
	$('#frame').css('display','block');
	$('#frame').load(url, function(){ innerPopup(true); });
  }
  

  
function hideUpgrade(){
  	fadeMain(false);
	$('#frame').css('display','none');
}

function showHelp(obj){
	var url = obj.href;
	//alert(url);
	$('#frame').html('');
	$('#frame').css('display','block');
	var el = '#frame';
	$(el).load(url, {}, function(ret){ innerPopup(); });
	//var ajx = new Ajax(url, {update:el, evalScripts:true, onComplete:function(){ innerPopup(); }}).request();		
}

function hideSplash(){
	if ($('#cb_hide_splash')){
		var cb = $('#cb_hide_splash');
		if ($(cb).attr('checked')){
			$.post(ROOT_URL + 'student/hidepopup', {id: $(cb).val()} );						
		}
	}
	fadePage(false);
	$('#frame').css('display','none');
}

function innerPopup(main){	
	var offset = -2;
	//if (isIE) offset = 21;
	var ww = 940;
	var szx = $(window).width() - offset;
	var szy = $(window).height() - offset;
	
	var xx = Math.floor((szx -ww)/2);	
	var obj = $('#frame');
	$(obj).css({left:xx+'px',width:ww+'px',display:'block'});
	if (main) fadeMain(true);
	else fadePage(true);	
}

function fadePage(bool, pct){
	if (!pct) pct = 80/100;
	var szx = $(document).width();
	var szy = $(document).height();
	var yy = szy;		

	$('#fade').css({width:szx, height:yy,top:0,left:0});

	var cf = '#fade';
	if (bool){	
		$(cf).fadeTo(1,pct).show();	
	} else {
		$(cf).fadeTo(1,0).hide();
	}	
}

function fadeMain(bool){
	fadePage(bool);
}

function dimScreen(cfg){
	var szx = $(window).width();
	var szy = $(window).height();	
	$('#fade').css({width:szx, height:szy,top:0,left:0});
}

function fadeContent(bool){
	var pct = 75;
	var clr = '0xffffff';	
	// movies
	var exam = thisMovie("exam");
	var flv = thisMovie("flvplayer");	
	var sh = thisMovie("studyhall");
	var uleft = $('#user_left');
	var exm = $('#homeroom');
	
	if (bool){		
		if (exam) exam.fl_fade(pct, clr);
		if (sh) sh.fl_fade(pct, clr);
		if (flv) flv.fl_fade(pct, clr);		
		if (uleft) _opacity($('#user_left'), pct);
		if (exm) _opacity(exm, pct);
	} else {
		if (uleft) _opacity($('#user_left'),100);
		if (exm) _opacity(exm, 100);
		if (exam) thisMovie("exam").fl_fade(0,0,1);
		if (flv) flv.fl_fade(0,0,0,1);
		if (sh) thisMovie("studyhall").fl_fade(0,0,1);
		
	}
}

function toggleExamMap(force){
	var bool = $('#em').css('display') == 'block'? true : false;
	if (force) bool = force;
	if (bool){
		$('#em').hide();
		$('#hmenu1').removeClass('toggled');
		if ($('#em_show')){
			$('#em_show').show();			
		}
		
		fadeMain(false);	
	} else {
		$('#em').style.display = 'block';
		toggle_cchange(true);
		$('#hmenu1').addClass('toggled');
		if ($('#em_show')){
			$('#em_show').hide();				
		}	
		fadeMain(true);	
	}	
}

function toggle_cchange(force){
	var bool = $('#cchange').css('display') == 'block' ? true : false;
	if (force) bool = force;
	if (bool){
		$('#cchange').css('display','none');		
		fadeMain(false);	
	} else {
		$('#cchange').css({display:'block', top:145});
		toggleExamMap(true);
		fadeMain(true);	
	}	
}



function thisMovie(movieName) {
    if (navigator.appName.indexOf("Microsoft") != -1) {
        return window[movieName]
    }
    else {
        return document[movieName]
    }
}

function js_sort(el,srt){
	var sct = sh_section;
	
	if (sh.sorts[srt]){
		var sorto = sh.sorts[srt];
		var dir = (sorto.dir == 'asc') ? 'desc' : 'asc';
		sh.sorts[srt].dir = dir;
		var srtvar = srt+':'+dir;
	} else {
		var sorto = new Object();
		sorto.field = srt;
		sorto.dir = 'desc';
		sh.sorts[srt] = sorto;
		var srtvar = srt+':'+sorto.dir;
	}
	//alert(el);
	
	//var url = ROOT_URL+'jscom/sortStudyHall/'+sct+'/'+srtvar;	
	var url = ROOT_URL+'student/studyhall/sort'+sct+'/'+srtvar;	
	var ajx = new Ajax(url, {update:el});
	ajx.request();
}

var sh = new Object();
sh.sorts = new Array();


function shLesson(id,iid){
		js_clearMovie();
		thisMovie("studyhall").js_loadQuestionData(id);
		var obj = $(iid);
		rw = obj.parentNode.parentNode;
		rw.style.backgroundImage = 'url(images/bg-table_row_hl.gif)';
		rw.className = 'hl';
		if (sh_active_row){
			sh_active_row.style.backgroundImage = '';
			sh_active_row.className = '';
			$('#videoframe').style.display = 'none';
			
		}
		sh_active_row = rw;
}

//flash video related
var sh_active_sort = null;
var sh_active_row = null;
var flvdata = new Object();

function js_clearMovie(id){
	if ($('#videoframe')) $('#videoframe').innerHTML = '';	
}

function js_toggleMovie(){
	if (thisMovie('flvplayer')){
		if (flvdata.loaded < 100){
			flv_sendEvent('flvplayer', 'stop');
		} else {
			flv_sendEvent('flvplayer', 'playpause');
		}
	}	
}

function flv_sendEvent(flv,typ,prm) { 
	if (thisMovie(flv)){
		thisMovie(flv).sendEvent(typ,prm);
	}
};

function getUpdate(typ,pr1,pr2,pid) {
	if (typ == 'load'){
		flvdata.loaded = pr1;		
	}	
};

// These functions are caught by the feeder object of the player.

function getItemData(idx) {
	var obj = thisMovie("flvplayer").itemData(idx);
	var nodes = "";
	for(var i in obj) { 
		nodes += "<li>"+i+": "+obj[i]+"</li>"; 
	}
	document.getElementById("data").innerHTML = nodes;
};


function js_showScore(hash,id,sc){
	//id = 'actual';
	var url = ROOT_URL+'/com/getScore/'+hash+'/'+sc;
	var el = id+'_score';	
	new Ajax(url, {update:el}).request();
	$('#tests').style.display = 'none';
}

function js_showWordInfo(word){
	var url = ROOT_URL+'/com/wordInfo/'+word;
	var el = 'videoframe';	
	new Ajax(url, {update:el}).request();
}


function js_showRemedial(hash){
	var url = ROOT_URL+'/com/getRemedial/'+hash+'/';
	var el = 'remedial_video';	
	new Ajax(url, {update:el}).request();
}

function js_loadFile(file,title,link,id,image,author,captions,category,start,type) {
	thisMovie("mediaplayer").loadFile(file,title,link,id,image,author,captions,category,start,type);
};

function js_loadMovie(url){
	var w = '400';
	var h = '325';
	var txt = "";
	var file = url; 
	flvdata.loaded = 0;
	
	//alert(url);
	
	var s1 = new SWFObject("flash/flvplayer.swf","flvplayer",w,h,"8", "#ffffff");
	//s1.addParam("allowfullscreen","true");
	s1.addParam("wmode","opaque");
	/*
	s1.addVariable("streamscript",'eprep');
	s1.addVariable("file",VIDEO_URL+url);
	s1.addVariable("autostart","true");	
	*/
	
	s1.addVariable("file",file);
	//s1.addVariable("image","http://demo.eprep.com/img/"+id+'_'+url+".gif");
	s1.addVariable("autostart","buffer");
	
	s1.addVariable("name","flvplayer");
	s1.addVariable("id","flvplayer");
	s1.addVariable("bufferlength","10");	
	s1.addVariable("type",'flv');	
	s1.addVariable("backcolor","0xffffff");
	s1.addVariable("enablejs","true");
	s1.addVariable("javascriptid", 'flvplayer');
	s1.addVariable("displayheight","300");
	//s1.addVariable("logo","http://demo.eprep.com/flash/watermark.png");
	//s1.addVariable("logoalpha", "25");
	s1.write("videoframe");	
	$('#videoframe').style.display = 'block';	
}

var OptionPanel = {
	//defaults
	row_bg: '#FFCC7F',
	row_bg_hover : '#CCC',
	
	start: function(set_chks, set_radios,multi_tr) {
		OptionPanel.trs = $$('#tr.option');
		OptionPanel.chks = $$('#div.checkbox');
		OptionPanel.radios = $$('#div.radiobox');
		OptionPanel.parse(multi_tr);
		
		[].extend(OptionPanel.chks).extend(OptionPanel.radios).each(function(chk) {
		 chk.inputElement = chk.getElement('input');
		 chk.inputElement.setStyle('display', 'none')});
		
		if (set_chks){
			for(c = 0;c < set_chks.length;c++) {
		 		var i = set_chks[c];
				OptionPanel.select(OptionPanel.chks[i]);
			}
		}
		
		if (set_radios){
			for(c = 0;c < set_radios.length;c++) {
				var i = set_radios[c];
		 		OptionPanel.select(OptionPanel.radios[i]);
			}
		}
		
		vb.panelInit = true;
	}, 
	
	setOptions: function(groups, sorts, bypass) {
		OptionPanel.chks.each(function(chk) {
			if(chk.inputElement.value)OptionPanel.select(chk);
		});
	},
	
	select: function(chk, bypass) {
		//alert(chk);
		var typ;
		
		if (chk.inputElement) {
			chk.inputElement.checked = 'checked';
			typ = chk.inputElement.type;
			if(!bypass) vb.updateOptions(chk.inputElement.name, chk.inputElement.value, true);
		}
		chk.addClass('selected');
		
		//alert(chk);
		var tr = chk.parentNode.parentNode;	
		if (tr.className == 'options') tr = chk;
		
		if (tr){
			tr.setStyles({'background': this.row_bg });
			tr.setProperty('active', 't');	
		}
	
		
	
		
		if(typ == 'radio' && !bypass) {
			OptionPanel.radios.each(function(other){
				if(other == chk) return;
				else if (other.inputElement.name == chk.inputElement.name){
					OptionPanel.deselect(other, true);
				}
			});
		}
		
		
		
	}, 
	
	deselect: function(chk, bypass) {
		chk.inputElement.checked = false;	
		var tr = chk.parentNode.parentNode;	
		tr.setStyles( {'background':'#FFF'});
		tr.setProperty('active', 'f');
		chk.removeClass('selected');
	
		if(!bypass){
			vb.updateOptions(chk.inputElement.name, chk.inputElement.value, false);
			//tr.setProperty('active', 'f');
			//tr.setStyles({'background': '0xfff' });
		}
	},
	
	all: function(){
		OptionPanel.chks.each(function(chk) {
			OptionPanel.select(chk);
		});
	},
	
	none: function() {
		OptionPanel.chks.each(function(chk){
			OptionPanel.deselect(chk);
		});
	
	}, 
	
	parse: function(multi_tr) {
		OptionPanel.trs.each(function(tr, i) {
			var chk = tr.getElement('div.checkbox');
			if(!chk) chk = tr.getElement('div.radiobox');
			chk.index = i;
			var dp = chk.getProperty('deps');
			if(dp)chk.deps = dp.split(',');
			
			if (!multi_tr){			
				tr.onclick = function() {
					if(OptionPanel.isQuick && tr.hasClass('option')) {
						OptionPanel.quicks.each(function(lee, e) {
							if(lee.chosen) OptionPanel.quickFx[e].start('0 0');
						});
						OptionPanel.isQuick = false;
					}
					
					if(!chk.hasClass('selected')) {
						OptionPanel.select(chk);
					} else {
						OptionPanel.deselect(chk);
					}
				};
			}
			
			tr.addEvent('mouseenter', function() {
				if(tr.getProperty('active') != 't') {
					tr.setStyles({'background': OptionPanel.row_bg_hover });
				}
			});
			
			
			tr.addEvent('mouseleave', function() {
				if(tr.getProperty('active') != 't') {
					tr.setStyles( {'background':'#fff'});
				}
			});
		});
		
		if (multi_tr){			
			OptionPanel.radios.each(function(chk){
				chk.onclick = function(){
					if(!chk.hasClass('selected')) {
						OptionPanel.select(this);
					} else {
						OptionPanel.deselect(this);
					}
				}
			});				
		}
	}
};    

