

var BrowserInfo = Class.create({
  initialize: function() {
    var userAgent = navigator.userAgent.toLowerCase();
    this.version = (userAgent.match( /.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/ ) || [])[1];
    this.safari = /webkit/.test( userAgent );
    this.opera = /opera/.test( userAgent );
    this.msie = /msie/.test( userAgent ) && !/opera/.test( userAgent );
    this.mozilla = /mozilla/.test( userAgent ) && !/(compatible|webkit)/.test( userAgent );
  }
});
var Browser = new BrowserInfo();

Prototype.Browser.IE6 = Prototype.Browser.IE && parseInt(navigator.userAgent.substring(navigator.userAgent.indexOf("MSIE")+5)) == 6;
Prototype.Browser.IE7 = Prototype.Browser.IE && parseInt(navigator.userAgent.substring(navigator.userAgent.indexOf("MSIE")+5)) == 7;
Prototype.Browser.IE8 = Prototype.Browser.IE && !Prototype.Browser.IE6 && !Prototype.Browser.IE7;

function ie_omover(event) {
  var element = Event.element(event);
  if(element.className =='t') element.addClassName('hover');
  if(element.className =='t act') element.addClassName('active-hover');
  element.parentNode.addClassName('hover');
}
function ie_omout(event) {
  var element = Event.element(event);
  if(element.className =='t hover') element.removeClassName('hover');
  if(element.className =='t act active-hover') element.removeClassName('active-hover');
  element.parentNode.removeClassName('hover');
}

function tip_onclick(event) {

  var element = Event.element(event);
  if(Browser.msie){
		if(element.className =='t hover') {
				element.addClassName('act active-hover');
				element.removeClassName('hover');
		}
		else if(element.className =='t act active-hover') {
				element.removeClassName('active-hover');
				element.removeClassName('act');
				element.addClassName('hover');
		}
		// hide others
		var bActive = element.className.include('act');
		if(bActive)
		element.siblings().each(function(sibling) {
				if(sibling.className.include('act'))
					sibling.removeClassName('act');
		});

	} else { // other browsers

		if(element.className =='t') element.addClassName('act');
		else element.removeClassName('act');

		// Hide others
		var bActive = element.className.include('act');
		if(bActive)
		element.siblings().each(function(sibling) {

				if(sibling.className.include('act'))
					sibling.removeClassName('act');
		});
	}
}



document.observe("dom:loaded", function() {

	if(Browser.msie){

		var ieTR = $$('table.competitionData tr');

		ieTR.each(function(tr) {
  		tr.observe('mouseover', ie_omover);
  		tr.observe('mouseout', ie_omout);
		});


		// overlay ie fix
		if($('ticket_overlay_ie')){

			$('ticket_overlay_ie').style.top = 0;
			$('ticket_overlay_ie').style.left = 0;
			$('ticket_overlay_ie').style.width = document.viewport.getDimensions().width;
			$('ticket_overlay_ie').style.height = document.viewport.getDimensions().height;
			$('ticket_overlay_ie').setOpacity(0.75);

		}
	}

/*
	var offerTRt = $$('table.competition-data tr td.t');
	offerTRt.each(function(td) {
		td.observe('click', tip_onclick);
	});
*/
	// dbg
	UTIL.init();

});





function BookieUtils(){

	var debug=false;

	var self = this;

	this.DebugToggle = function(){

		debug=!debug;
		if(!$('info')){

			var el = document.createElement('div');
			if(Browser.msie) el.innerHTML = '<div id="info" onmouseover="this.style.opacity=1" onmouseout="this.style.opacity=0.7" style="top:150px;left:10px;width:200px; position: absolute; padding: 10px;background:#EBF0F2 none repeat scroll 0%;background:#000;display:block;visibility:visible;opacity:0.9;color:#AAA">DEBUG INFO</div>';
    	else    	 			 el.innerHTML = '<div id="info" onmouseover="this.style.opacity=1" onmouseout="this.style.opacity=0.7" style="top:50px;left:10px;width:200px; position: fixed; padding: 10px;background:#EBF0F2 none repeat scroll 0%;background:#000;display:block;visibility:visible;opacity:0.9;color:#AAA">DEBUG INFO</div>';
    	document.body.appendChild(el);
		}

		if(!debug) $('info').show(); else $('info').hide();
		return false;
	}

	this.printTicket = function(){

		$('ticket').toggle();

		if(Browser.msie) $('ticket_overlay_ie').toggle();
		else 						 $('ticket_overlay').toggle();

		if($('ticket').visible()){

			if(Browser.msie)
				$('ticket_overlay_ie').style.height = document.body.clientHeight+'px';

			var dimensions = $('ticket').getDimensions();
			var view_dimensions = document.viewport.getDimensions();

			var CalcWidth=dimensions.width;
			var CalcHeight=dimensions.height;

			var sx = view_dimensions.width/2 - 500/2 +'px';
			var sy = view_dimensions.height/2 - 500/2+'px';
			var pos = {top: sy,left:sx };

			$('ticket').setStyle(pos);
		}
	}

	this.openStats = function(stat_id){
		window.open('http://www.bet-live.ba/stats/?stat_id='+stat_id,'blstats');
		return false;
	}

	this.showStats = function(stat_id,ev){

			var element = Event.element(ev);
			var clickedpos = element.viewportOffset();

	    new Ajax.Request('ajax/stat_ajax.php', {
	      method: 'post',
	      parameters: 'task=getStat&stat_id='+stat_id,
	      onSuccess: function(transport) {

					offsetdoc = document.viewport.getScrollOffsets();

					sy = offsetdoc.top + clickedpos.top;
					sx = offsetdoc.left + clickedpos.left-300;

					$('statinfo').show();
	      	$('statinfo').innerHTML = transport.responseText;

					new Effect.Move('statinfo', { x: sx, y: sy, mode: 'absolute' });
	      }
	    });

		return false;
	}

	this.searchKeyUp = function(aEvent){

		var myEvent = aEvent ? aEvent : window.event;

		if(myEvent.keyCode==13)
			self.doSearch();
	}

	this.doSearch = function(){

		if(StandingPoint.type == 'result')
			self.searchResults();
		else
			self.searchOffer();
	}

	this.searchOffer = function(){

		if($('ask').value!=''){
			window.location.href='?type=offer&task=search&ask='+encodeURI($('ask').value);
		}
	}

	this.searchResults = function(){

		if($('ask').value!=''){
			window.location.href='?type=result&task=search&ask='+encodeURI($('ask').value);
		}
	}


	this.getCompetitionBets = function(comp_id,day_id,bt_id){

			var container_el = 'competition-bet-container-'+comp_id;
			var toolbar_container_el = 'competition-toolbar-container-'+comp_id;


			if($(container_el).innerHTML!=''){

				$(container_el).toggle();
				$(toolbar_container_el).toggle();
				if($(toolbar_container_el).visible())
					$('ctbt'+comp_id).addClassName('toggle-minibook-up');
				else{
					$('ctbt'+comp_id).removeClassName('toggle-minibook-up');
					$('btContainer-'+comp_id+'-1').show();
				}

				return false;
			}

			//UTIL.showAjaxLoader();

			day_param = (day_id!='') ? '&day_id='+day_id+'&bt_id='+bt_id : '';
			
			URLType = (StandingPoint.type=='home') ? 'offer' : StandingPoint.type;

	    new Ajax.Request('o.php', {
	      method: 'get',
	      parameters: 'type='+URLType+'&task=comp_bets&competition_id='+comp_id+day_param,
	      onSuccess: function(transport) {

					if(transport.responseText=='{"html":"","js":"","bt_t":""}')
						return false;

					var CompetitionBets='';

					eval("CompetitionBets = "+decodeURI(transport.responseText));

      		$html = CompetitionBets['html'];
					$js = CompetitionBets['js'];
					$bt_t = CompetitionBets['bt_t'];

					$(container_el).innerHTML = $html;
					$(toolbar_container_el).innerHTML = $bt_t;

					if(!Browser.msie)
			    	if($(toolbar_container_el).visible())	$('ctbt'+comp_id).addClassName('toggle-minibook-up');

			    $$('#'+container_el+' .competitionData').each( function(item){
			    	item.observe('click',BOOKIE.Ticket.IB);
			    });

			    var pageofferJSfragment;
			    eval("pageofferJSfragment = {"+$js+"}");
			    eval("Object.extend(pageofferJS, pageofferJSfragment)");

			    UTIL.toggleBetType(comp_id,bt_id,false,day_id);

			    if(!Browser.msie)
			    	if(bt_id==1) $('bt-basic-'+comp_id).addClassName('highlight');

					if(!Browser.msie){
						var viewOffsetY = $('competition-toolbar-container-'+comp_id).cumulativeOffset().top-25;
						//window.scrollTo(0,viewOffsetY);
					}

			    UTIL.hideAjaxLoader();
	      }
	    });

		return false;
	}


	this.toggleBetType = function(comp_id,bt_id,ev,day_id){

			var container_el = 'competition-bet-container-'+comp_id;

			if($(container_el).innerHTML==''){
				UTIL.getCompetitionBets(comp_id,day_id,bt_id);
				return false;
			}

			var container_el = 'competition-bet-container-'+comp_id;
			var toolbar_container_el = 'competition-toolbar-container-'+comp_id;
			var btContainer_el = 'btContainer-'+comp_id+'-';

			if((bt_id==-1 || bt_id==1) && !$(container_el).visible()){

				$(toolbar_container_el).show();
				$(container_el).show();
				$('ctbt'+comp_id).addClassName('toggle-minibook-up');
			}

			var btContainers = $$('#'+container_el+' .btContainer');
			if($(btContainer_el+1))	btContainers.push($(btContainer_el+1));

			var src_element;
			if(ev) {
				src_element = Event.element(ev);
				if(src_element.tagName=='A' && !Browser.msie)
					src_element.addClassName('highlight');
			}

			var btToolbarLinks = $$('#bttb-'+comp_id+' a');

			if(btToolbarLinks && !Browser.msie)
			btToolbarLinks.each( function(btToolbarLink){

				if(btToolbarLink.hasClassName('highlight'))
					if(src_element!=btToolbarLink){
						btToolbarLink.removeClassName('highlight');
						//dbg("removing highlight ...");
					}
			});




			// all
			if(bt_id==-1){
				if($(container_el).innerHTML!=''){

					if(!Browser.msie)
						$('bt-all-'+comp_id).addClassName('highlight');

					btContainers.each( function(btContainer){

							btContainer.show();
					});

					return false;
				}
			}


			// single
			if(bt_id>0){

				if($(container_el).innerHTML!=''){

					targetContainer = $(btContainer_el+bt_id);
					targetContainer.show();

					btContainers.each( function(btContainer){

						if(btContainer.id!=targetContainer.id)
							btContainer.hide();
					});
					return false;
				}
			}

			return false;
	}


	this.toggleBetTypeCaptions = function(){

		$$('.competition-data-header').each( function(el){el.toggle();} );
	}


	this.elementToScreenCenter = function(el_id){
		
  	var viewport = document.viewport.getDimensions();
  	var el = $(el_id).getDimensions();
		var sx = Math.round(viewport.width/2 - el.width/2);
		var sy = Math.round(viewport.height/2 - el.height/2);
		offsetdoc = document.viewport.getScrollOffsets();
		sx = offsetdoc.left + sx;
		sy = offsetdoc.top + sy;		
		var bOversize = (el.height > viewport.height);		
		if(bOversize) sy = offsetdoc.top;		
		var pos = {top: sy +'px',left:sx +'px' };
		$(el_id).setStyle(pos);
	}

	this.showAjaxLoader = function(){

			self.elementToScreenCenter('ajax_loader');
			$('ajax_loader').show();
			self.showOverlay();
	}

	this.hideAjaxLoader = function(){

		$('ajax_loader').hide();
		self.hideOverlay();
	}

	this.getPageHeight = function (){

		var db = document.body;
		var dde = document.documentElement;
		var docHeight = Math.max(db.scrollHeight, dde.scrollHeight, db.offsetHeight, dde.offsetHeight, db.clientHeight, dde.clientHeight);
		return docHeight;
	}

	this.showOverlay = function(){

		if(!Browser.msie)	{
			var PageHeight = self.getPageHeight();
	 		$('pageoverlay').setStyle({height:PageHeight+'px'});
			$('pageoverlay').show();
		}
	}

	this.hideOverlay = function(){

		$('pageoverlay').hide();
	}

	this.closeStats = function(){

		$('statinfo').hide();
		$('statinfo').innerHTML ='';
	}

	this.scrollToCompetition = function(comp_id){

		if($('competition-container-'+comp_id))
			window.scrollTo(0,$('competition-container-'+comp_id).cumulativeOffset().top);

		return false;
	}

	this.scrollToSport = function(sport_id){

		if($('sport-container-'+sport_id))
			window.scrollTo(0,$('sport-container-'+sport_id).cumulativeOffset().top);

		return false;
	}

	this.scrollToBookmarks = function(){

		window.scrollTo(0,$('bookmark-top').cumulativeOffset().top);
	}

	this.hyperScrollToBookmarks = function(event){

		var srcElement = Event.element(event);
		//if(srcElement.id=='hyperjumparea') window.scrollTo(0,$('bookmark-top').cumulativeOffset().top);
	}

	this.scrollToID = function(id){

		if($(id))	$(id).scrollTo();
		return false;
	}

	this.teletext = function(){
		x=(screen.width-980)/2;
		y=(screen.height-800)/2;
		//window.open(ApplicationConfig.teletextURL ,'_blank','height=600,width=600,top='+y+',left='+x+',status=yes,toolbar=no,menubar=no,location=no,scrollbars=no');
		if(Browser.msie)
			window.open(ApplicationConfig.teletextURL ,'_blank','height=800,width=980,status=yes,toolbar=no,menubar=no,location=no,scrollbars=no');
		else
			window.open("http://www.bet-live.ba/teletext.htm" ,'_blank','height=800,width=980,status=yes,toolbar=no,menubar=no,location=no,scrollbars=no');		
	};


	this.init = function(){

		if(StandingPoint.type == 'result' || StandingPoint.type == 'offer' ){

	 		$$('.competition-titlebar-top').each( function(item){

	    	item.observe('click',self.scrollToBookmarks);
	    });

 			//$('hyperjumparea').observe('click',UTIL.hyperScrollToBookmarks);
		}

		//self.buildLotoMenu();
	}
}

var UTIL	= new BookieUtils();



bOver = false;
var NavMenu = {};

NavMenu.show = function(){
 
 $('subMenu').show();
}

NavMenu.hide = function(){
 
 if(!bOver)
  $('subMenu').hide();
}

NavMenu.over = function(bFlag){
 
 bOver=bFlag;
 if(bFlag) NavMenu.show();
 else NavMenu.hide();
}

var menuConnector = {};

menuConnector.x = 0;
menuConnector.y = 0;
menuConnector.src = '';

NavMenu.attachToElement = function(elID){
 
 menuConnector.src = elID;
 
 var dimensions = $(elID).getDimensions();
 
 menuConnector.y = $(elID).cumulativeOffset().top;
 menuConnector.x = $(elID).cumulativeOffset().left;
 
 $('subMenu').setStyle({
  left: menuConnector.x+'px',
  top: menuConnector.y+dimensions.height+'px'
 }); 
 
}


Event.observe(window, 'load', function() {
 
 if(StandingPoint.type == 'offer' && ApplicationConfig.microStats ) 
 	BOOKIE.Stats.init();
 	
 NavMenu.attachToElement('mnuLoto');
});
