function _el(elementId) {
    return document.getElementById(elementId);
}

var g_PopupIFrame;
function IsIE(version) {
    return ((BrowserDetect.browser == "Explorer") && (BrowserDetect.version < version));
}

function IsAnyIE() {
    return (BrowserDetect.browser == "Explorer");
}

var _currentOpenedComboDiv;
function showSubMenu(divId, imgId) {
    if(_currentOpenedComboDiv != null)
    {
        _currentOpenedComboDiv.style.visibility="none";
        _currentOpenedComboDiv = null;
     }

  var divElement = _el(divId);
  if (!divElement) return;
  var imgElement = _el(imgId);
  if (!imgElement) return;
  var e = imgElement;
  var position = {x:0,y:0};
  var maxRight = 800;
  while (e)
  {
      position.x += e.offsetLeft;
      position.y += e.offsetTop;
      e = e.offsetParent;
  }
  
  if (document.body)
  {
    maxRight = document.body.clientWidth;
  }

  if (document.documentElement && (document.documentElement.scrollTop || document.documentElement.scrollLeft))
  {
      position.x -= document.documentElement.scrollLeft;
      //position.y -= document.documentElement.scrollTop;
  }
  else if (document.body && (document.body.scrollTop || document.body.scrollLeft))
  {
      position.x -= document.body.scrollLeft;
      //position.y -= document.body.scrollTop;
  }
  else if (window.pageXOffset || window.pageYOffset)
  {
      position.x -= window.pageXOffset;
      //position.y -= window.pageYOffset;
  }
    
  if ((position.x + divElement.offsetWidth) > maxRight)
  {
    position.x = position.x - divElement.offsetWidth + imgElement.offsetWidth;
  }
  divElement.style.top =  position.y + imgElement.offsetHeight + 'px';
  divElement.style.left = position.x + 'px';
  divElement.style.display = "";

  if (IsIE(7))
  {
    //Increase default zIndex of div by 1, so that DIV appears before IFrame
    divElement.style.zIndex=divElement.style.zIndex+1;

    var iFrame = document.createElement("IFRAME");
    iFrame.setAttribute("src", "/Blank.htm");

    //Match IFrame position with divPopup
    iFrame.style.position="absolute";
    iFrame.style.left =divElement.offsetLeft + 'px';
    iFrame.style.top =divElement.offsetTop + 'px';
    iFrame.style.width =divElement.offsetWidth + 'px';
    iFrame.style.height =divElement.offsetHeight + 'px';

    document.body.appendChild(iFrame);

    //Store iFrame in global variable, so it can get removed when divPopup is hidden 
    g_PopupIFrame=iFrame;
  }
}

function hideSubMenu(divId)
{
    var _div = _el(divId);
    if (!_div) return;
    _el(divId).style.display = "none";
    if (IsIE(7))
    {
        document.body.removeChild(g_PopupIFrame);
        g_PopupIFrame=null;
    }
}

var BrowserDetect = {
	init: function () {
		this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
		this.version = this.searchVersion(navigator.userAgent)
			|| this.searchVersion(navigator.appVersion)
			|| "an unknown version";
		this.OS = this.searchString(this.dataOS) || "an unknown OS";
	},
	searchString: function (data) {
		for (var i=0;i<data.length;i++)	{
			var dataString = data[i].string;
			var dataProp = data[i].prop;
			this.versionSearchString = data[i].versionSearch || data[i].identity;
			if (dataString) {
				if (dataString.indexOf(data[i].subString) != -1)
					return data[i].identity;
			}
			else if (dataProp)
				return data[i].identity;
		}
	},
	searchVersion: function (dataString) {
		var index = dataString.indexOf(this.versionSearchString);
		if (index == -1) return;
		return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
	},
	dataBrowser: [
		{
			string: navigator.userAgent,
			subString: "Chrome",
			identity: "Chrome"
		},
		{ 	string: navigator.userAgent,
			subString: "OmniWeb",
			versionSearch: "OmniWeb/",
			identity: "OmniWeb"
		},
		{
			string: navigator.vendor,
			subString: "Apple",
			identity: "Safari"
		},
		{
			prop: window.opera,
			identity: "Opera"
		},
		{
			string: navigator.vendor,
			subString: "iCab",
			identity: "iCab"
		},
		{
			string: navigator.vendor,
			subString: "KDE",
			identity: "Konqueror"
		},
		{
			string: navigator.userAgent,
			subString: "Firefox",
			identity: "Firefox"
		},
		{
			string: navigator.vendor,
			subString: "Camino",
			identity: "Camino"
		},
		{		// for newer Netscapes (6+)
			string: navigator.userAgent,
			subString: "Netscape",
			identity: "Netscape"
		},
		{
			string: navigator.userAgent,
			subString: "MSIE",
			identity: "Explorer",
			versionSearch: "MSIE"
		},
		{
			string: navigator.userAgent,
			subString: "Gecko",
			identity: "Mozilla",
			versionSearch: "rv"
		},
		{ 		// for older Netscapes (4-)
			string: navigator.userAgent,
			subString: "Mozilla",
			identity: "Netscape",
			versionSearch: "Mozilla"
		}
	],
	dataOS : [
		{
			string: navigator.platform,
			subString: "Win",
			identity: "Windows"
		},
		{
			string: navigator.platform,
			subString: "Mac",
			identity: "Mac"
		},
		{
			string: navigator.platform,
			subString: "Linux",
			identity: "Linux"
		}
	]

};
BrowserDetect.init();     

function findPosX(obj) {
    var curleft = 0;
    if (obj.offsetParent) {
        while (1) {
            curleft+=obj.offsetLeft;
            if (!obj.offsetParent) {
                break;
            }
            obj=obj.offsetParent;
        }
    } else if (obj.x) {
        curleft+=obj.x;
    }
    return curleft;
}
function findPosY(obj) {
    var curtop = 0;
    if (obj.offsetParent) {
        while (1) {
            curtop+=obj.offsetTop;
            if (!obj.offsetParent) {
                break;
            }
            obj=obj.offsetParent;
        }
    } else if (obj.y) {
        curtop+=obj.y;
    }
    return curtop;
}
function XMLWriter(){
    this.XML=[];
    this.Nodes=[];
    this.State="";
    this.FormatXML = function(Str){
        if (Str)
            return Str.toString().replace(/&/g, "&amp;").replace(/\"/g, "&quot;").replace(/</g, "&lt;").replace(/>/g, "&gt;");
        return ""
    }
    this.BeginNode = function(Name){
        if (!Name) return;
        if (this.State=="beg") this.XML.push(">");
        this.State="beg";
        this.Nodes.push(Name);
        this.XML.push("<"+Name);
    }
    this.EndNode = function(){
        if (this.State=="beg"){
            this.XML.push("/>");
            this.Nodes.pop();
        }
        else if (this.Nodes.length>0)
            this.XML.push("</"+this.Nodes.pop()+">");
        this.State="";
    }
    this.Attrib = function(Name, Value){
        if (this.State!="beg" || !Name) return;
        this.XML.push(" "+Name+"=\""+this.FormatXML(Value)+"\"");
    }
    this.WriteString = function(Value){
        if (this.State=="beg") this.XML.push(">");
        this.XML.push(this.FormatXML(Value));
        this.State="";
    }
    this.Node = function(Name, Value){
        if (!Name) return;
        if (this.State=="beg") this.XML.push(">");
        this.XML.push((Value=="" || !Value)?"<"+Name+"/>":"<"+Name+">"+this.FormatXML(Value)+"</"+Name+">");
        this.State="";
    }
    this.CDATASectionNode = function(Name, Value){
        if (!Name) return;
        if (this.State=="beg") this.XML.push(">");
        this.XML.push((Value=="" || !Value)?"<"+Name+"/>":"<"+Name+"><![CDATA["+this.FormatXML(Value)+"]]></"+Name+">");
        this.State="";
    }
    this.CDATANodeValue = function(Value){
        if (this.State=="beg") this.XML.push(">");
        this.XML.push("<![CDATA["+this.FormatXML(Value)+"]]>");
        this.State="";
    }
    this.Close = function(){
        while (this.Nodes.length>0)
            this.EndNode();
        this.State="closed";
    }
    this.ToString = function(){return this.XML.join("");}
}
function GetNodeValue(Node){
    var _value;
    if(Node.childNodes.length>0){
        _value = Node.childNodes[0].nodeValue;
    }
    else{
        _value = Node.nodeValue;
    }    
    if ((_value) && (_value != null) && (_value != "")){
        return _value;
    }
    return "";
}
function GetChildNodeValue(Node,ChildNodeName){
    var _nodeList = Node.getElementsByTagName(ChildNodeName);
    if (_nodeList.length > 0){
        return GetNodeValue(_nodeList[0]);
    }
    return "";
}
function setHomepage(url) { 
 if (document.all) { 
    document.body.style.behavior='url(#default#homepage)'; 
    document.body.setHomePage(url);   
    return false;
 } else if (window.sidebar) { 
    if(window.netscape){ 
        try {  
            netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");  
        }  
        catch(e) {  
            alert("Uprawnienia przeglądarki nie pozwalają na tą operację. Ustaw strononę startową za pomocą funkcji dostępnych w Twojej przeglądarce.");
            return false;
        } 
    } 
    var prefs = Components.classes['@mozilla.org/preferences-service;1'].getService(Components. interfaces.nsIPrefBranch); 
    prefs.setCharPref('browser.startup.homepage',url); 
    return false;
 } 
 else {
    alert("Twoja przeglądarka nie wpsiera dynamicznego ustawiania strony głównej. Ustaw strononę startową za pomocą funkcji dostępnych w Twojej przeglądarce.");
 }
}
function bookmarkPage(url, title) {

    //FireFox 
    if (window.sidebar) { 

        window.sidebar.addPanel(title, url, ""); 

    //IE 
    } else if (window.external) { 

        window.external.AddFavorite(url, title); 

    //Opera 
    } else if (window.opera && window.print) { 

        var a = document.createElement('a'); 
        a.setAttribute('href', url); 
        a.setAttribute('title', title); 
        a.setAttribute('rel','sidebar'); 
        a.click(); 
    }
}

/* combobox */
var _currentOpenedComboDiv;
var _useOnClick;
document.onclick = comboHideOpenComboOnDocumentClick;
function comboHideOpenComboOnDocumentClick(name) {
  if(_useOnClick == true) {
      if(_currentOpenedComboDiv != null) {
        _currentOpenedComboDiv.style.visibility="hidden";
        _currentOpenedComboDiv = null;
      }
  }
  _useOnClick = true;
}
function cancelOnClick(element) {
	if(window.event) {
	    window.event.cancelBubble= true;
	}
	else {
	    if (element.stopPropagation) element.stopPropagation();
	}
}
function getPxValue(value) {
    var     string = new String(value); 
            string = string.replace("px","");
    var     number = parseInt(string);
    return  number;
}
function comboPopup(e,name) {   
    _useOnClick = false;
    var _comboDiv = _el("comboDiv"   + name);
    if(_comboDiv ==_currentOpenedComboDiv) {
        comboHide(name);
    }
    else {
        if (IsIE(7)) {
            comboPopupIE6(e,name);
        }
        else {
            comboPopupIE7(e,name);
        }
    }
}
// IE7 & Opera & FF & Safari
function comboPopupIE7(element,name) { 
    var base_o;
    var x;
    var y;
    var comboDiv    = _el("comboDiv"   + name);
    var comboInput  = _el("comboInput" + name); 
    var comboList   = _el("comboList"  + name);       

    if(_currentOpenedComboDiv != comboDiv) {
      if(_currentOpenedComboDiv != null) {
        _currentOpenedComboDiv.style.visibility="hidden";
      }
      _currentOpenedComboDiv = null;
    }
    
    y = comboInput.offsetHeight;
    x = 0;           
    var e = comboInput;
    while (e) {
        x += e.offsetLeft;
        y += e.offsetTop;
        e = e.offsetParent;
    } 

    var p1 = getPxValue(comboList.offsetWidth);
    var p2 = getPxValue(comboInput.offsetWidth); 
    
    comboDiv.style.visibility = "visible"; 
    comboDiv.style.top        = y  + 1 + "px";
    comboDiv.style.left       = x + "px";

    if (p1 <= p2) {
        comboDiv.style.width = (p2 + 14) + "px";
    }
    _currentOpenedComboDiv = comboDiv; 
}
// IE6 Only
function comboPopupIE6(element,name) {
    var base_o;
    var x;
    var y;
    var comboDiv    = _el("comboDiv"   + name);
    var comboInput  = _el("comboInput" + name); 
    var comboList   = _el("comboList"  + name);       
    
    if(comboDiv.style.visibility=="visible") {
      return;
    }

    if(_currentOpenedComboDiv != comboDiv) {
      if(_currentOpenedComboDiv != null) {
        _currentOpenedComboDiv.style.visibility="hidden";
      }
      _currentOpenedComboDiv = null;
    }
    y = comboInput.offsetHeight;
    x = 0;           

    var e = comboInput;
    while (e) {
        x += e.offsetLeft;
        y += e.offsetTop;
        e = e.offsetParent;
    } 
    comboDiv.style.visibility = "visible";
    
    var p1 = getPxValue(comboList.clientWidth);
    var p2 = getPxValue(comboInput.clientWidth); 
    var p3 = getPxValue(comboList.offsetHeight);
 
    comboDiv.style.top        = y  + 1 + "px";
    comboDiv.style.left       = x + "px";
    
    if (p1 <= p2) {
        comboDiv.style.width = (p2 + 14) + "px";
    }
    else {
        comboDiv.style.width = p1 + "px";     
    }

    if(p3 >= 250) {
      comboDiv.style.height = 250 + "px"; 
    }
     _currentOpenedComboDiv = comboDiv;
}
function comboHide(name) {
  var comboDiv = _el("comboDiv" + name); 
  comboDiv.style.visibility="hidden";
  _currentOpenedComboDiv = null;
}
function comboShow(name) {

    var comboDiv = _el("comboDiv"   + name); 
     if(comboDiv.style.visibility=="visible") {
       return;
     }
    comboDiv.style.visibility="visible";
    _currentOpenedComboDiv = comboDiv;      
}
function comboSetValue(element,name) {
    var comboDiv    = _el("comboDiv"   + name);
    var comboInupt  = _el("comboInput" + name);
    var comboHidden = _el(name);
    comboInupt.value  = element.getAttribute("valueName");
    comboHidden.value = element.getAttribute("valueID");
    comboHidden.onchange();
    comboDiv.style.visibility="hidden";
}
function elementOnMouseOver(e) {
    e.className="comboover";
}
function elementOnMouseOut(e) {
    e.className="comboout";
}


/* LOGIN */

var _isLoginOpen = false;
var _isRegisterOpen = false;  

function registerCancel(){if(_isRegisterOpen== true){$( "#registerDialog" ).dialog("close");_isRegisterOpen = false;}}       
function loginCancel(){if(_isLoginOpen== true){$( "#loginDialog" ).dialog("close");_isLoginOpen=false;}}        

function showLogin(dataConfigName,imgroot,domain){ 
  registerCancel();
  var _qdataConfigName="'"+dataConfigName+"'";
  var _qimgroot="'"+imgroot+"'";
  var _qdomain="'"+domain+"'";
  var _html='<table border="0"> \
                <tr> \
                    <td rowspan="6" style="background-color:#fff;"> \
                        <img style="border:0;" src="'+imgroot+'/css/img/log_128x126.png" alt="Langloo logowanie" /> \
                    </td> \
                    <td style="background-color:#fff;text-align:right;"> \
                        <sup>*</sup>Adres e-mail \
                    </td> \
                    <td style="background-color:#fff;"> \
                        <div style="background-color:#949494;"> \
                            <div style="background-color:#fff;" id="i_l_e'+dataConfigName+'"> \
                                <input type="text" id="login_email" style="border:0px;margin:1px;width:180px;"/> \
                            </div> \
                        </div> \
                    </td> \
                </tr> \
                <tr> \
                <td style="background-color:#fff;text-align:right;"> \
                    <sup>*</sup>Hasło \
                </td> \
                <td style="background-color:#fff;"><div style="background-color:#949494;"> \
                    <div style="background-color:#fff;" id="i_l_p'+dataConfigName+'"><input type="password" id="login_password" style="border:0px;margin:1px;width:180px;"/></div> \
                  </div></td></tr><tr> \
                <td></td> \
                <td style="background-color:#fff;"> \
                    <a class="button" href="#" onclick="login('+_qdomain+');return false;"><span>Logowanie</span></a> \
                    <a class="button" href="#" onclick="loginCancel();return false;"><span>Anuluj</span></a> \
                </td></tr> \
                  <tr> \
                    <td id="error_con1" colspan="2" style="background-color:#fff;text-align:left;color:#f00;"></td> \
                  </tr> \
                <tr> \
                <td colspan="3" style="background-color:#fff;" align="right"><a title="Załóż konto." href="#" onclick="showRegister('+_qdataConfigName+','+_qimgroot+');return false;">Załóż konto</a></td> \
              </tr><tr><td colspan="2" style="text-align:left;background-color:#fff;font-size:6pt;"><sup>*</sup>Pola wymagane</td></tr></table>'
  
  try{
    $( "#loginDialog" ).dialog("destroy");
  }
  catch (e) {
  }
  $( "#loginDialog" ).html(_html);  
  $( "#loginDialog" ).dialog({
    title:'Zaloguj się', 
    //resizable:true,
    width:450,
    height:'auto',
    modal:true
  });
  $( "#loginDialog" ).dialog("open");	  
  $('#i_l_e'+dataConfigName).corner("round 3px").parent().css('padding', '1px').corner("round 3px");
  $('#i_l_p'+dataConfigName).corner("round 3px").parent().css('padding', '1px').corner("round 3px");   
  _isLoginOpen = true;
} 

function showRegister(dataConfigName,imgroot,domain){
  loginCancel();
  var _options='';
  var currentTime = new Date();
  var yearMax = currentTime.getFullYear()-10;
  for(var _year=1950;_year<yearMax;_year++){
    _options=_options+'<option value="'+_year+'">'+_year+'</option>';
  }
  var _qimgroot="'"+imgroot+"'";
  var _qdomain="'"+domain+"'";
  var _html='<div id="reg_contener"><table border="0"> \
              <tr> \
                <td rowspan="12" style="background-color:#fff;"> \
                  <img style="border:0;" src="'+imgroot+'/css/img/register_128x128.png" alt="Langloo zakładanie konta" /> \
                </td> \
                <td style="background-color:#fff;text-align:right;"> \
                  Imię \
                </td> \
                <td style="background-color:#fff;"> \
                  <div style="background-color:#949494;"> \
                    <div style="background-color:#fff;" id="r_l_1'+dataConfigName+'"> \
                      <input type="text" id="register_n_name" style="border:0px;margin:1px;width:230px;"/> \
                    </div> \
                  </div> \
                </td> \
              </tr> \
              <tr> \
                <td style="background-color:#fff;text-align:right;"> \
                  Nazwisko \
                </td> \
                <td style="background-color:#fff;"> \
                  <div style="background-color:#949494;"> \
                    <div style="background-color:#fff;" id="r_l_2'+dataConfigName+'"> \
                      <input type="text" id="register_n_surname" style="border:0px;margin:1px;width:230px;"/> \
                    </div> \
                  </div> \
                </td> \
              </tr> \
              <tr> \
                <td style="background-color:#fff;text-align:right;"> \
                 <sup>*</sup>Nick \
                </td> \
                <td style="background-color:#fff;"> \
                  <div style="background-color:#949494;"> \
                    <div style="background-color:#fff;" id="r_l_3'+dataConfigName+'"> \
                      <input type="text" id="register_r_nick" style="border:0px;margin:1px;width:230px;"/> \
                    </div> \
                  </div> \
                </td> \
              </tr>             \
              <tr> \
                <td style="background-color:#fff;text-align:right;"> \
                  <sup>*</sup>Adres e-mail \
                </td> \
                <td style="background-color:#fff;"> \
                  <div style="background-color:#949494;"> \
                    <div style="background-color:#fff;" id="r_l_4'+dataConfigName+'"> \
                      <input type="text" id="register_r_email" style="border:0px;margin:1px;width:230px;"/> \
                    </div> \
                  </div> \
                </td> \
              </tr> \
              <tr> \
                <td style="background-color:#fff;text-align:right;"> \
                  <sup>*</sup>Hasło \
                </td> \
                <td style="background-color:#fff;"> \
                  <div style="background-color:#949494;"> \
                    <div style="background-color:#fff;" id="r_l_5'+dataConfigName+'"> \
                      <input type="password" id="register_r_password" style="border:0px;margin:1px;width:230px;"/> \
                    </div> \
                  </div> \
                </td> \
              </tr> \
              <tr> \
                <td style="background-color:#fff;text-align:right;"> \
                  <sup>*</sup>Powtórz hasło \
                </td> \
                <td style="background-color:#fff;"> \
                  <div style="background-color:#949494;"> \
                    <div style="background-color:#fff;" id="r_l_6'+dataConfigName+'"> \
                      <input type="password" id="register_r_rpassword" style="border:0px;margin:1px;width:230px;"/> \
                    </div> \
                  </div> \
                </td> \
              </tr> \
              <tr> \
                <td style="background-color:#fff;text-align:right;"> \
                  Rok urodzenia \
                </td> \
                <td style="background-color:#fff;"> \
                  <select id="register_n_year" style="border:solid 1px #999;"><option value="">-</option>'+_options+'</select> \
                </td> \
              </tr> \
              <tr> \
                <td style="background-color:#fff;text-align:right;"> \
                  Poziom angielskiego \
                </td> \
                <td style="background-color:#fff;"> \
                  <select id="register_n_difficulty" name="selwoj" style="border:solid 1px #999;"> \
                    <option value="">-</option>                   \
                    <option value="0">A1 - poziom początkujący</option> \
                    <option value="1">A2 - poziom podstawowy</option> \
                    <option value="2">B1 - poziom średniozaawansowany-niższy</option> \
                    <option value="3">B2 - poziom średniozaawansowany-wyższy</option> \
                    <option value="4">C1 - poziom zaawasnowany</option> \
                    <option value="5">C2 - poziom biegły</option>                   \
                  </select> \
                </td> \
              </tr> \
              <tr> \
                <td style="background-color:#fff;text-align:right;"> \
                  Płęć: \
                </td> \
                <td style="background-color:#fff;"> \
                  <input type="radio" name="radioplec" id="radioplec" value="0">Mężczyzna</input> \
                  <input type="radio" name="radioplec" id="radioplec" value="1">Kobieta</input> \
                </td> \
              </tr> \
              <tr> \
                <td id="error_con" colspan="2" style="background-color:#fff;text-align:left;color:#f00;"></td> \
              </tr> \
              <tr> \
                <td></td> \
                <td style="background-color:#fff;"> \
                  <a class="button" href="#" onclick="register('+_qimgroot+','+_qdomain+');return false;"> \
                    <span>Załóż konto</span> \
                  </a> \
                  <a class="button" href="#" onclick="registerCancel();return false;"> \
                    <span>Anuluj</span> \
                  </a> \
                </td> \
              </tr> \
              <td colspan="2" style="text-align:left;background-color:#fff;font-size:6pt;"> \
                <sup>*</sup>Pola wymagane \
              </td> \
            </table></div>'
  
  try{
    $( "#registerDialog" ).dialog("destroy");
  }
  catch (e){
  }
  $( "#registerDialog" ).html(_html);
  $( "#registerDialog" ).dialog({
    title:'Załóż konto', 
    //resizable:true,
    width:500,
    height:'auto',
    modal:true
  });
  $( "#registerDialog" ).dialog("open");	  
  $('#r_l_1'+dataConfigName).corner("round 3px").parent().css('padding', '1px').corner("round 3px"); 
  $('#r_l_2'+dataConfigName).corner("round 3px").parent().css('padding', '1px').corner("round 3px");  
  $('#r_l_3'+dataConfigName).corner("round 3px").parent().css('padding', '1px').corner("round 3px");   
  $('#r_l_4'+dataConfigName).corner("round 3px").parent().css('padding', '1px').corner("round 3px"); 
  $('#r_l_5'+dataConfigName).corner("round 3px").parent().css('padding', '1px').corner("round 3px");  
  $('#r_l_6'+dataConfigName).corner("round 3px").parent().css('padding', '1px').corner("round 3px");    
  _isRegisterOpen = true;
}    

function logout(domain){
    var _mgr = new GAjaxManager({
      Domain:domain,
      BID:$("#BID").val(),
      Function:'logout',
      NameSpace:'PI.LA.506.Customer.WebApplication',
      FormatParams:function(xml){
        xml.Node("BID", $("#BID").val());
      },
      AfterAjax:function(result){                              
        $(_mgr.getXml(result)).find('ComponentXML').each(function() {
          location.reload(true);
        });
      }
    });
    _mgr.process();
}

function login(domain){
  $("#error_con1").html("");
  var emptyTextBoxes  = $(':[value=""][id^=login_]');
  var alltextBoxes    = $(':[id^=login_]');
  
  alltextBoxes.each(function() {
    this.style.backgroundColor='#fff';
  });
  emptyTextBoxes.each(function() {
    this.style.backgroundColor='#ff4648';
  });
  if (emptyTextBoxes.length==0){
    
    var _mgr = new GAjaxManager({
      Domain:domain,
      BID:$("#BID").val(),
      Function:'login',
      NameSpace:'PI.LA.506.Customer.WebApplication',
      FormatParams:function(xml){
        xml.Node("BID", $("#BID").val());
        xml.Node("login_email", $("#login_email").val());
        xml.Node("login_password", $("#login_password").val());
      },
      AfterAjax:function(result){                              
        $(_mgr.getXml(result)).find('ComponentXML').each(function() {
          var _content=_mgr.getString($(this).find('content')[0]);
          var _val=$(_content).text();
          if (_val=='1'){
            $("#loginDialog").dialog("close");
            location.reload(true);
          }
          else {
            $("#error_con1").html("Niepoprawny email lub hasło.");
          }
        });
      }
    });
    _mgr.process();
  }
  else {
  }
}

function register(imgroot,domain){
  $("#error_con").html("");
  var emptyTextBoxes  = $(':[value=""][id^=register_r_]');
  var alltextBoxes    = $(':[id^=register_r_]');
    
  alltextBoxes.each(function() {
    this.style.backgroundColor='#fff';
  });
  emptyTextBoxes.each(function() {
    this.style.backgroundColor='#ff4648';
  });
  if ($("#register_r_password").val() != $("#register_r_rpassword").val()) {
    $("#register_r_password").css('background-color','#ff4648');
    $("#register_r_rpassword").css('background-color','#ff4648');
    $("#error_con").html("Źle wypełniłeś pola hasło oraz powtórka hasła.");
    return false;
  }
  
  if (!validateEmailAddress($("#register_r_email").val())) {
    $("#register_r_email").css('background-color','#ff4648');
    $("#error_con").html("Podałeś niepoprawny adres Email.");
    return false;
  }
  
  if (emptyTextBoxes.length==0){

    var _mgr = new GAjaxManager({
      Domain:domain,
      BID:$("#BID").val(),
      Function:'register',
      NameSpace:'PI.LA.506.Customer.WebApplication',
      FormatParams:function(xml){
        xml.Node("BID", $("#BID").val());
        xml.Node("name", $("#register_n_name").val());
        xml.Node("surname", $("#register_n_surname").val());
        xml.Node("nick", $("#register_r_nick").val());
        xml.Node("email", $("#register_r_email").val());
        xml.Node("password", $("#register_r_password").val());
        xml.Node("year", $("#register_n_year").val());
        xml.Node("difficulty", $("#register_n_difficulty").val());
        xml.Node("plec", $("#radioplec").val());
        xml.Node("url", domain+"/moje_konto.html");
      },
      AfterAjax:function(result){                              
        $(_mgr.getXml(result)).find('ComponentXML').each(function() {
          var _content=_mgr.getString($(this).find('content')[0]);
          if ($(_content).text() == '1'){
            var _message=_mgr.getString($(this).find('message')[0]);
            $("#reg_contener").html('<table border="0"><tr><td style="background-color:#fff;"><img style="border:0;" src="'+imgroot+'/css/img/register_128x128.png" alt="Langloo zakładanie konta" /></td><td style="background-color:#fff;text-align:right;"><div style="width:100%;color:#000;background-color:#fff;text-align:left;">'+_message+'</div><br/><br/></td></tr></table><table border="0"><tr><td style="background-color:#fff;"><tr><td><a class="button" href="#" onclick="registerCancel();return false;"><span>Ok</span></a></td></tr></table>');
          }
          else {
            var _error=_mgr.getString($(this).find('message')[0]);
            //alert(_error);
            $("#error_con").html(_error);
          }
        });
      }
    });
    _mgr.process();
    
  }
  else {
    $("#error_con").html("Nie wypełniłeś poprawnie formularza rejestracyjnego.");
  }
}     

function validateEmailAddress(email){
    if (email != ''){
        var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/ 
        return email.match(re);
    }
    return false;
}

function showTest(domain){
  $( "#dialog-test" ).html("<div id='mediacontener'></div><script type='text/javascript'>swfobject.embedSWF('"+domain+"/img/rotator/TestBanner.swf', 'mediacontener', '620', '300', '9');</script>");
  $( "#dialog-test" ).dialog({
    title:'Test poziomu języka angielskiego', 
    resizable:false,
    width:665,
    modal:true
  });
  $( "#dialog-test" ).dialog("open");
}

function pad(number, length) {
  var str = '' + number;
  while (str.length < length) {
      str = '0' + str;
  }
  return str;
}

function dateFormat(sDate) {
    var mm = parseInt(sDate.getMonth()) + 1;
    var dd = parseInt(sDate.getDate());
    var yy = sDate.getFullYear();
    return yy + '-' + pad(mm,2) + '-' + pad(dd,2);
}

var _shortMonths =['Sty','Lut','Mar','Kwi','Mai','Cze','Lip','Sie','Wrz','Paz','Lis','Gru'];
function dateFormatMonth(sDateTicks) {
    var d = new Date();
    d.setTime(sDateTicks);
    var mm = parseInt(d.getMonth());
    var dd = parseInt(d.getDate());
    return pad(dd,2) + '. ' + _shortMonths[mm];
}

function secondsToString(totalSec){
    var hours = parseInt( totalSec / 3600 ) % 24;
    var minutes = parseInt( totalSec / 60 ) % 60;
    var seconds = totalSec % 60;
    return (hours < 10 ? "0" + hours : hours) + ":" + (minutes < 10 ? "0" + minutes : minutes) + ":" + (seconds  < 10 ? "0" + seconds : seconds);
}
