// JavaScript Document

var tip_url;
var kancl_name;
var urls = new Array();
var isLoaded = false;
var go;
var timeout_sec = 20;
var isHidden = true;
var isHidden_chybovy_formular = true;
var RedirUrls = new Array();
var RedirName = "";
var IE = document.all?true:false;
var tempX = 0;
var tempY = 0;
var item;

function getMouseXY(e) {
if (IE) { // grab the x-y pos.s if browser is IE
tempX = event.clientX + document.body.scrollLeft;
tempY = event.clientY + document.body.scrollTop;
}
else {  // grab the x-y pos.s if browser is NS
tempX = e.pageX;
tempY = e.pageY;
}  
if (tempX < 0){tempX = 0;}
if (tempY < 0){tempY = 0;}  
return tempY;
}

document.observe("dom:loaded", function() {
		load_ticket(kancl);
    
		// kancls-settings
    if(elem_exists("div-select-kancls") && elem_exists("div-chybovy-formular")) {
    	
    		res = getSize();
    		x = res[0] - 308;
    		$("div-select-kancls").style.left = x + "px";
    		$("div-select-kancls").style.top = (35-($("div-select-kancls").offsetHeight)) + "px";

	    	$("div-chybovy-formular").style.display = "";
			 	
			$("div-chybovy-formular").style.left = x + "px";
    		$("div-chybovy-formular").style.top = (62 - ($("div-chybovy-formular").offsetHeight)) + "px";

        $$("#div-select-kancls-left-bottom, #div-select-kancls-right-bottom, #settings_message").each(function(el) {
            el.observe("click", function(ev) {
                switch(isHidden) {
                    case true:
                          new Effect.Move('div-select-kancls', { x: 0, y: -(35-($("div-select-kancls").offsetHeight)), mode: 'relative', duration: 0.5 });
                          isHidden = false;

						  if(!isHidden_chybovy_formular)
						  {
	                          new Effect.Move('div-chybovy-formular', { x: 0, y: (62-($("div-chybovy-formular").offsetHeight)), mode: 'relative', duration: 0.5 });
	                          isHidden_chybovy_formular = true; 
						  }               
                          break;
                          
                    case false:
                          new Effect.Move('div-select-kancls', { x: 0, y: (35-($("div-select-kancls").offsetHeight)), mode: 'relative', duration: 0.5 });
                          isHidden = true;                
                          break;
                }
            });
        });
        
        $$("#div-chybovy-formular-left-bottom, #div-chybovy-formular-right-bottom, #settings_message_chybovy_formular").each(function(el) {
            el.observe("click", function(ev) {
                switch(isHidden_chybovy_formular) {
                    case true:
                          new Effect.Move('div-chybovy-formular', { x: 0, y: -(62-($("div-chybovy-formular").offsetHeight)), mode: 'relative', duration: 0.5 });
                          isHidden_chybovy_formular = false;
                          break;
                          
                    case false:
                          new Effect.Move('div-chybovy-formular', { x: 0, y: (62-($("div-chybovy-formular").offsetHeight)), mode: 'relative', duration: 0.5 });
                          isHidden_chybovy_formular = true;                
                          break;
                }
            });
        });
        
    }
		
		$$(".tip").each(function(el) {
					el.observe("click", function() {
						 if(typeof xhr_add_tip == "undefined" || typeof xhr_add_tip == null) {
						 	ajax_url = base_url+"xhr/add-tip";						 	
					 	 } else {
					 	 	ajax_url = xhr_add_tip;
					 	 }
					 	 
						 
						 new Ajax.Request(ajax_url, { method: "post", postBody: "param="+el.id, onSuccess: function(res) {
									x = el.id.split("_");
									kancl = x[1];                  		 
									match = x[2];
									tip = x[3];
                  $$(".tipactivea, .tipactive").each(function(all) {
                        //if(all.down() == "undefined" || all.down() === null) {
                        if(!(all.up() == "undefined" || all.up() === null) && all.up().tagName == "TD") {
                            _id = all.up().id;
                        } else {
                            _id = all.down().id;                        
                        }
                        str = _id.split("_");
                        k = str[1]; m = str[2]; t = str[3];
                        if (m == match) {
                            all.removeClassName("tipactive");
                            all.removeClassName("tipactivea");
                        }
                  });
                 if(el.down() == "undefined" || el.down() === null || el.tagName == "A") { 
                       el.up().addClassName("tipactive");
                       str = el.id.split("_");
                       id = "tup_"+str[1]+"_"+str[2]+"_"+str[3];
                       another = $(id);
                       if(!(another == "undefined" || another === null)) {
                          another.down().addClassName("tipactivea");
                       }                                           
                  } else {
                       var ele = $(el.id);
					             ele.down().addClassName("tipactivea");
                       str = el.id.split("_");
                       id = "tip_"+str[1]+"_"+str[2]+"_"+str[3];
                       another = $(id);
                       if(!(another == "undefined" || another === null)) {
                          another.up().addClassName("tipactive");
                       }    					             
                  }                  
							 		load_ticket(kancl);									
					  }
						});
					});
		});
		
		
		//aktualizace
		$$(".time-show div").each(function (el) {
          el.observe("mouseover", function(ele) {
                  mins = el.next().innerHTML;
                  what = el.next().next().innerHTML;
                  ids = el.id.split("_");
                  tip_kancl = ids[0];
                  tip_id = ids[1]; 
                  show_tooltip(mins, what, tip_id, ele);
          });
          
          el.observe("mouseout", function() {
                  hide_tooltip();
          });
    });
		
		//tips_date 
		if(elem_exists("tips_date_sel")) {
  		$("tips_date_sel").observe("change", function() {
          $("tips_date").submit();
      });
    }
});

function show_tooltip(mins, what, tip_id, mouse) {
    $$("#tooltip-middle-middle span").each(function(el) {
        el.innerHTML = "Aktualizováno před <b>"+mins+"</b> minutami";
    });
    $$("#tooltip-top-middle span").each(function(el) {
        el.innerHTML = what;
    });    
    $("tooltip").style.left = (mouse.pointerX()+20)+"px";
    $("tooltip").style.top = mouse.pointerY()+"px";
//    $("tooltip").style.display = "block";
    new Effect.Appear($("tooltip"), { "duration": 0.1, "queue":"end"});
}

function hide_tooltip() {
//    $("tooltip").style.display = "none";
    new Effect.Fade($("tooltip"), { "duration": 0.1, "queue":"end"});
}

function load_ticket(k) {
	if(typeof xhr_add_tip == "undefined" || typeof xhr_add_tip == null) {
		load_normal_ticket(k);
	} else {
		load_contest_ticket();
	}
} 

function load_normal_ticket(k) {
  if(elem_exists("ticket-ajax")) {
    	new Ajax.Request(base_url+"xhr/load", { method: "post", postBody: "kancl_ticket="+k, onSuccess: function(res) {
    		$("ticket-ajax").innerHTML = res.responseText;
    		vklad = $F("bet");
    		for (var i=0; i<kancls.length; i++) {
    	    if(!($("kurs-"+kancls[i]) == "undefined" || $("kurs-"+kancls[i]) === null)) {
      			kurz = $("kurs-"+kancls[i]).next().innerHTML;
      			if(!IsNumeric(vklad)) {
      							$("winner-"+kancls[i]).next().innerHTML = "-";
      			} else {
      				$("winner-"+kancls[i]).next().innerHTML = Math.round(vklad * kurz);
      			}
      		}
    		}
    	
        var arVersion = navigator.appVersion.split("MSIE")
        var version = parseFloat(arVersion[1])
        if(version<7 && version >= 5.5) {
    	     pngfixuj();
        } 
    	  
    		kancl_stopobserve();
    		kancl_observe();
    	}});
  }
}

function kancl_stopobserve() {
	$$("#top-buttons a").each(function(el) {
			 el.stopObserving("click");
	});
	
	$$("#ticket-bottom div").each(function(el) {
			 el.stopObserving("click");
	});
	
	$$(".remove").each(function(el) {
			 el.stopObserving("click");
	});	

	$("bet").stopObserving("click");

	if(!(typeof($("remove-all")) == "undefined" || typeof($("remove-all")) === null)) {
	   $("remove-all").stopObserving("click");
    }


  if(!($("print-tips") == "undefined" || $("print-tips") === null)) {
     $("print-tips").stopObserving("click");
  }
  	
	$("form_continue").stopObserving("submit");
}

function kancl_observe() {
	$$("#top-buttons a").each(function(el) {
			 el.observe("click", function(ele) {
					kancl = (el.id).substr(4);
					load_ticket(kancl);
			 });
	});

	$$("#ticket-bottom div").each(function(el) {
			el.observe("click", function(ele) {
					kancl = el.className;
					kancl = kancl.split(" ");
					kancl.each(function(el) {
              if (el != "disabled") { k = el; }
          });
					load_ticket(k);
			});
	});

	if(!(typeof($("remove-all")) == "undefined" || typeof($("remove-all")) === null)) {
    	$("remove-all").observe("click", function() {
          new Ajax.Request(base_url+"xhr/remove_all_tips", { onSuccess: function(res) { 
	          $$(".tipactive,.tipactivea").each(function(el) {
	              el.removeClassName("tipactive");
	              el.removeClassName("tipactivea");
	          });
	          load_ticket(kancl);
          	}});
      });
  }


	$$(".remove").each(function(el) {
					el.observe("click", function(ele) {
				clear_id = el.next().id;
				if(!($("tip_"+clear_id)=="undefined" || $("tip_"+clear_id)===null)) {
            $("tip_"+clear_id).up().removeClassName("tipactive");
            $("tip_"+clear_id).up().removeClassName("tipactivea");            
        }
				if(!($("tup_"+clear_id)=="undefined" || $("tup_"+clear_id)===null)) {
            $("tup_"+clear_id).down().removeClassName("tipactive");
            $("tup_"+clear_id).down().removeClassName("tipactivea");            
        }          
 				key = (el.id).substr(7);
				new Ajax.Request(base_url+"xhr/remove-tip", { method: "post", postBody: "param="+key, onSuccess: function(res) {
						 		load_ticket(kancl);
						  }
					});
					
			});
	});

	$("bet").observe("keyup", function() {
				vklad = $F("bet");
				for (var i=0; i<kancls.length; i++) {
				    kk = $("kurs-"+kancls[i]);
				    if(!(kk=="undefined" || kk===null)) {
  						kurz = kk.next().innerHTML;
  						if(!IsNumeric(vklad)) {
  							$("winner-"+kancls[i]).next().innerHTML = "-";
  						} else {
  							$("winner-"+kancls[i]).next().innerHTML = Math.round(vklad * kurz);
  						}
  					}
				}
				
				new Ajax.Request(base_url+"xhr/winner", {method: "post", postBody: "param="+(vklad) });
	});


  if(!($("print-tips") == "undefined" || $("print-tips") === null)) {
     $("print-tips").observe("click", print_tips.bindAsEventListener($("print-tips"),$("print-tips") ));
   }

  
  $("form_continue").observe("submit", kancl_continue.bindAsEventListener());	
}

function print_tips(ev,el) {
//    url = el.next();
//    window.open(url,"okno");
    k = el.className;
    k = k.split("|");
    k = k[1];
    pageTracker._trackPageview('/outgoing/'+k+"/tiket");
    href = "/xhr/load_printer?a=true&param="+k;
	  Modalbox.show(href, {title: "Tiket", width: 600});
	  ev.stop();
}

function page_print() {
    window.print();
}

function show_tip_screen(label) {
  var screen = $("screen");
  screen.observe("click", function() {
      screen.fade();
      screen.stopObserving("click");
  });
  $("tips_action").innerHTML = "";
  $("screen_label").innerHTML = label;
  var body = $("wrap");
  screen.style.width = body.offsetWidth;
  screen.style.height = body.offsetHeight;
  screen.style.display = "block";
}

function kancl_continue(ev) {
  ev.stop();
  pageTracker._trackPageview('/outgoing/'+kancl+"/tiket");
  switch(kancl) {
      case "synottip":
		      synottip_continue();
      break;      
      case "bwin":
          bwin_continue();
      break;
      case "bet-at-home":
          betathome_continue();
      break;
      case "chance":
		  chance_continue();
      break;
      default:
		    alert("Zatím je aktivní pouze Synottip!");
  }
}

function tips_parse(what, fnc) {
  json = what.evalJSON(true);
  urls = json.toArray();
  if(urls.length>0) {
      tips_checker(fnc);
  } else alert("Zdá se, že Váš ticket je prázdný!");
}

function tips_checker(fnc) {
  if(urls.length>0) {
      if(!($("labelready")=="undefined" || $("labelready")===null)) {
      	 $("labelready").src = "/system/application/gfx/ico-tick.gif";
      }
      item = urls.shift();
      item_span = new Element("span", { "id" : "m"+item.listcode });
      item_span.innerHTML = "<img src=\"/system/application/gfx/loader.gif\" height=\"15px\" width=\"15px\" style=\"margin-right: 15px;\" />"+item.what+"<br />";
      $("tips_action").appendChild(item_span);
      fnc();
  } else {
      $("screen").fade();
      window.open(RedirUrls[RedirName]["window_url"],RedirUrls[RedirName]["window_name"]);
  }
}

function getSize() {
  var myWidth = 0, myHeight = 0;
  if( typeof( window.innerWidth ) == 'number' ) {
    //Non-IE
    myWidth = window.innerWidth;
    myHeight = window.innerHeight;
  } else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
    //IE 6+ in 'standards compliant mode'
    myWidth = document.documentElement.clientWidth;
    myHeight = document.documentElement.clientHeight;
  } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
    //IE 4 compatible
    myWidth = document.body.clientWidth;
    myHeight = document.body.clientHeight;
  }
  return [myWidth, myHeight];
}

function getElementHeight(Elem) {
	if (ns4) {
		var elem = getObjNN4(document, Elem);
		return elem.clip.height;
	} else {
		if(document.getElementById) {
			var elem = document.getElementById(Elem);
		} else if (document.all){
			var elem = document.all[Elem];
		}
		if (op5) { 
			xPos = elem.style.pixelHeight;
		} else {
			xPos = elem.offsetHeight;
		}
		return xPos;
	} 
}

function IsNumeric(sText) {
/* @FIX by starenka
var ValidChars = "0123456789.";
var IsNumber=true;
var Char;


for (i = 0; i < sText.length && IsNumber == true; i++)
{
Char = sText.charAt(i);
if (ValidChars.indexOf(Char) == -1)
{
IsNumber = false;
}
}
return IsNumber;
*/
if(sText.match('^[0-9]{1,10}.?[0-9]*$') == null) return false;
else return true;
}

function elem_exists(name) {
    if(!($(name) == "undefined" || $(name) === null)) {
        return true;
    } else {
        return false;
    }
}

function open_window(url,name) {
	window.open(url,name);
}
