	var tplCode = '';		// get url parameter by netlobo	function gup(name, url)	{		if (url == null)			url = window.location.href;			  name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");	  var regexS = "[\\?&]"+ name +"=([^&#]*)";	  var regex = new RegExp( regexS );	  var results = regex.exec(url);	  if( results == null )	    return "";	  else	    return results[1];	}		// ============ timer ==================		var timerID = 0;		function timer(sec) {	  if (timerID) {			clearTimeout(timerID);		}				min = ((sec-(sec%60))/60).toString();		min = min.length < 2 ? '0'+min : min;		secs = (sec%60).toString();		secs = secs.length < 2 ? '0'+secs : secs;		if (document.getElementById('jstimer') == null)			return;	  document.getElementById('jstimer').innerHTML = min +':'+ secs;	  		if (sec<=0) {			saveQuestion();	  } else {	  	timerID = setTimeout("timer("+ (sec-1) +")", 1000);	  }	}		var checkID = 0;	var startTimer = 120;		function checkTimerBox() {		if (checkID) {			clearTimeout(checkID);		}				if (document.getElementById('jstimer') == null)			checkID = setTimeout("checkTimerBox()", 50);		else {			var timerStart = document.body.innerHTML.search(/--timer@/i);	  	if (timerStart != -1) {		  	startTimer = parseInt(document.body.innerHTML.slice(timerStart).replace(/--timer@/i, ''));		  }			timer(startTimer);		}	}	checkTimerBox();	// ============ timer ==================	// session id	var sid = '';	// base url of the test application	var base_url = '';	function setSid(s) {		sid = s;	}		function setSidFromJs() {		if (document.getElementById('settings') != null) {			tmp = document.getElementById('settings').innerHTML.search(/--sid:/i);			if (tmp != -1) {				tmp = document.getElementById('settings').innerHTML.slice(tmp).replace(/--sid:/i, '');				sid = tmp.slice(0, tmp.search(/--/i));			}		}	}		function setBaseUrl(u) {alert(u);		base_url = u;	}		function setBaseUrlFromJs() {		if (document.getElementById('settings') != null) {			tmp = document.getElementById('settings').innerHTML.search(/--baseurl:/i);			if (tmp != -1) {				tmp = document.getElementById('settings').innerHTML.slice(tmp).replace(/--baseurl:/i, '');				base_url = tmp.slice(0, tmp.search(/--/i));			}		}	}			function resetEffectsTest() {		var queue = Effect.Queues.get('ajaxreload');		queue.each(function(e) { e.cancel() });				if (timerID) {			clearTimeout(timerID);		}	}/*	onload = function() {	  var anchors = $$('a.ajax');  	for (var i = 0; i < anchors.length; i++) {      	anchors[i].onclick = function() {					resetEffects();					moveMenu();					refreshText(this.id);					return false;				}    }	}*/	function loginUser() {			pageLoader(1);			new Effect.Fade('infobox', {duration: 0.1, queue: {scope: 'ajaxreload'},				afterFinish: function (obj) {					new Effect.Appear('infobox', {duration: 2.0, queue: {scope: 'ajaxreload'}})				}			});						var link = $('loginform').action +'?ajax=1&login=1';			new Ajax.Request(link, {			  parameters: $('loginform').serialize({ hash: true }),			  onCreate: function() {			  	$('infobox').update('');			  },			  onSuccess: function(transport) {			  	var mainStart = transport.responseText.indexOf('<!--ajaxTest:start-->');			  	if (mainStart != -1) { // correct login			  		$('ajaxWrapper').update(transport.responseText);			  		resetAjaxControl(); // this is in main js file for bantip site			  	} else { // error message			  		$('infobox').update(transport.responseText);			  	}			  },			  onComplete: function(transport) {			  	pageLoader(0);			  	refreshTestHandle(link); // we need this here because of ajax :)			  }			});	}	function saveQuestion() {		pageLoader(1);		resetEffectsTest();		new Effect.Fade('test_ajaxWrapper', {duration: 0.1, queue: {scope: 'ajaxreload'},			afterFinish: function (obj) {				new Effect.Appear('test_ajaxWrapper', {duration: 0.5, queue: {scope: 'ajaxreload'}})			}		});		var clock = document.getElementById('jstimer').innerHTML;		var regexS = "([^:]+):(.+)";	  var regex = new RegExp(regexS);	  var results = regex.exec(clock);	  clock = results[1]*60 + results[2]*1;		var link = base_url +'test?tpl='+ tplCode +'&time='+ clock +'&ajax=1&otxt=1';		new Ajax.Request(link, {		//new Ajax.Request(location.href +'&time='+ clock +'&ajax=1&otxt=1', {		  parameters: $('qform').serialize(true),		  onCreate: function() {		  	$('test_ajaxWrapper').update('');		  },		  onSuccess: function(transport) {		  	$('test_ajaxWrapper').update(transport.responseText);		  	resetAjaxControl(); // this is in main js file for bantip site		  },		  onFailure: function(transport) {		  	alert(transport.status);		  },		  onComplete: function(transport) {		  	pageLoader(0);		  	refreshTestHandle(link); // we need this here because of ajax :)		  	checkTimerBox();		  }		});	}		function sendResultEmail() {		pageLoader(1);		new Effect.Fade('sendbox', {duration: 0.1, queue: {scope: 'ajaxreload'},			afterFinish: function (obj) {				new Effect.Appear('sendbox', {duration: 2.0, queue: {scope: 'ajaxreload'}})			}		});		var link = $('erform').action +'&ajax=1&er=1';		new Ajax.Request(link, {		  parameters: $('erform').serialize({ hash: true }),		  onCreate: function() {		  	$('sendbox').update('');		  },		  onSuccess: function(transport) {		  	// Is the user finally sending the form?				if (transport.responseText.indexOf('<span class="ok">') != -1)					sentBantipForm();						  	$('sendbox').update(transport.responseText);		  },		  onComplete: function(transport) {		  	pageLoader(0);		  	refreshTestHandle(link);		  }		});	}	function sendResultEmail2() {		pageLoader(1);		new Effect.Fade('sendbox', {duration: 0.1, queue: {scope: 'ajaxreload'},			afterFinish: function (obj) {				new Effect.Appear('sendbox', {duration: 2.0, queue: {scope: 'ajaxreload'}})			}		});		var link = $('taer1').href +'&ajax=1&er=1';		new Ajax.Request(link, {		  onCreate: function() {		  	$('sendbox').update('');		  },		  onSuccess: function(transport) {		  	// Is the user finally sending the form?				if (transport.responseText.indexOf('<span class="ok">') != -1)					sentBantipForm();						  	$('sendbox').update(transport.responseText);		  },		  onComplete: function(transport) {		  	pageLoader(0);		  	refreshTestHandle(link);		  }		});	}	// without ajax	pathArray = window.location.pathname.split( '/' );	if (pathArray[pathArray.length-1]=='test' && gup('tpl', null)) {		Event.observe(window, 'load', function() {			tplCode = gup('tpl', window.location.href);			document.getElementById('turnonjs').style.display = 'none';			var sidStr = sid!='' ? '&PHPSESSID='+ sid : '';			new Ajax.PeriodicalUpdater('pcChecker', base_url +'test/testpc?ajax=1&clean=1&tpl='+ gup('tpl', null) + sidStr, {			  method: 'get', frequency: 10			});		});	} else {		Event.observe(window, 'load', function() {			if ($('turnonjs') != null) {				document.getElementById('turnonjs').style.display = 'none';			}			if ($('loginform') != null) {				Event.observe('loginform', 'submit',  function(event){		      event.stop();		  		loginUser();		    });		  }		  if ($('erform') != null) {				Event.observe('erform', 'submit',  function(event){		      event.stop();		  		sendResultEmail();		    });		  }	 	  if ($('taer1') != null) {				Event.observe('taer1', 'click',  function(event){		      event.stop();		  		sendResultEmail2();		    });		  }		});	}		// for ajax control	function refreshTestHandle(url) {		tplCode = gup('tpl', url);		if ($('pcChecker') != null) {			var sidStr = sid!='' ? '&PHPSESSID='+ sid : '';			new Ajax.PeriodicalUpdater('pcChecker', base_url +'test/testpc?ajax=1&clean=1&tpl='+ tplCode + sidStr, {			  method: 'get', frequency: 10			});		}		if ($('turnonjs') != null) {			document.getElementById('turnonjs').style.display = 'none';		}		if ($('loginform') != null) {			Event.observe('loginform', 'submit',  function(event){	      event.stop();	  		loginUser();	    });		}		if ($('erform') != null) {			Event.observe('erform', 'submit',  function(event){	      event.stop();	  		sendResultEmail();	    });	  }	  if ($('taer1') != null) {			Event.observe('taer1', 'click',  function(event){	      event.stop();	  		sendResultEmail2();	    });	  }	  setSidFromJs();	  setBaseUrlFromJs();	}
