/**
 * @desc Community menu scripts
 * @author Jan Molak
 */  

//var logonServerUrl = "http://www.thewitcher.com/community/logon.server.php";
//var ajaxServerUrl = "http://www.thewitcher.com/community/ajax.server.php";

var logonServerUrl = "/community/logon.server.php";
var ajaxServerUrl = "/community/ajax.server.php";


var maxServerResponseTime = 30;

IH = new ImageHandler();
IH.preloadImages('/community/skins/default/paging/arrow-left-on.gif', '/community/skins/default/paging/arrow-left-off.gif', '/community/skins/default/paging/bg-on.gif', '/community/skins/default/paging/bg-off.gif');
                                                                          
var MainMenu = null; 
function Menu(){
    
    var oImgPlus    = null;
    var oImgMinus   = null;
    var sCookieName = 'clps'; //collapse
    var collapsed   = Array();
    
    this.initialize = function() {
           
        this.collapsed = Array();
        this.loadState();
        return true;
    }
    
    this.loadState = function () {
       
        if(oCookie.get("clpsd")) {
            
            this.collapsed = (oCookie.get("clpsd")).split(",");
            if(this.collapsed.length) {
              for(i=0;i<this.collapsed.length;i++) {
                if($(this.collapsed[i])) { 
                    this.hideSub($(this.collapsed[i]));
                }
              }
            }
        }
    }    
    
    this.saveState = function () {

        if(oCookie) {
            oCookie.set("clpsd", (this.collapsed).join(","), 7);
        }
    }    
    
    this.expandSub = function (obj) {
        
        if($(obj.id + '_sub')) {

            //show
            if($(obj.id + '_sub').style.display=='none' || $(obj.id + '_sub').style.visibility=='hidden' ) {
                
                var ind = this.collapsed.indexOf(obj.id);
                if(ind>-1) {
                    this.collapsed.splice(ind, 1);
                    this.saveState();
                }
                Effect.toggle(obj.id+'_sub','blind');
            //hide
            } else {
                
                var ind = this.collapsed.indexOf(obj.id);
                if(ind<0) {
                    this.collapsed.push(obj.id);
                    this.saveState();
                }  
                Effect.toggle(obj.id+'_sub','blind');
            }
        }
    }
    
    this.hideSub = function(obj) {
        if($(obj.id + '_sub')) {
            $(obj.id + '_sub').hide();
        }  
    }
                                  
}

/*
* Logon box
*/           
LogonBox = Class.create();
LogonBox.prototype = {

    initialize: function() {
       
      this.checkStatus();
    },
    checkStatus: function() {
            
        var action = "04e12e7e7aaa36ac90d235481125fdba"; 
        var url = logonServerUrl;                                
        
        new Ajax.Request(url, {
        
          parameters: {a: action},
          method: 'get',
          onComplete: this.handleResponse,
          onFailure: errorHandler,
          onException: exceptionHandler
        });
        $('logon-box').innerHTML = '<div id="loading" style="width:100%; height:30px; text-align:center;"><img src="/community/skins/default/indicator.gif" alt="" /></div>';
        setTimeout(function() { this.checkServerStatus() }.bind(this), maxServerResponseTime*1000);
    },
    logOn: function() {
          
      var err = 0; 
      if($('lf')) {
        
        if(!$('l').present()) {
            with($('l')) { addClassName("active"); focus(); } 
            err++;
        } 
        else { 
            $('l').removeClassName("active"); 
        }
        if(!$('p').present()) {            
            with($('p')) { addClassName("active"); focus(); } 
            err++;
        } 
        else { 
            $('p').removeClassName("active"); 
        }
        
        if(err) { return false; }
        var action = "3bbf350128a8af48e5034d655cd3535f";
        $('lf').action = "http://www.thewitcher.com/forum/api.asp?a="+action;
        $('lf').target = "ifr";
        $('lf').submit();
        $('lf').disable();
        
        setTimeout(function() { this.checkServerStatus() }.bind(this), maxServerResponseTime*1000);
      }       
        
      return false;
    },
    logOff: function() {
            
        var action = "bf7f5d43a15bb2c4528d07576695e67d"; 
        var url = logonServerUrl;                           
        //$('ifr').src = url + '?a=' + action;
        top.ifr.location.href = url + '?a=' + action;
        
        setTimeout(function() { this.checkServerStatus() }.bind(this), maxServerResponseTime*1000);
    },
    displayLogonForm: function() {
        
        var action = "99aa560c26bd7138f24b36bed5d32a5f";
        var url = logonServerUrl;            
        new Ajax.Request(url, {
        
          parameters: {a: action },
          method: 'get',
          onComplete: this.handleResponse,
          onFailure: errorHandler,
          onException: exceptionHandler              
        });    
    },          
    displayMsg: function(msg, type) {
                
        if($('lf_msg')) {
            $('lf_msg').addClassName('error');
            $('lf_msg').innerHTML = msg;
        }
        if($('lf')) { 
            $('lf').enable();
            $('lf').focusFirstElement();
        }
    },
    checkServerStatus: function() {
        
        var s = oCookie.get("r");
        if(s==1) {
            this.displayLogonForm();
            var url = logonServerUrl; 
            var action = "275ffc439ecee567a3b9685ed4e2c43b&h=4ac91d1c166f4ebd9af1c9fab27fdbbd"
            // $('ifr').src = url + '?a=' + action;  
            top.ifr.location.href = url + '?a=' + action;
        } 
    },    
    handleResponse: function(transport) {
    
        transport.responseText.evalScripts();           
        $("logon-box").innerHTML = transport.responseText.stripScripts();
        
        if($('user') && $('passwrd'))
        {
          var usernameField = new jmFormInputField($('user'));
          var passwordField = new jmFormPasswordField($('passwrd'));
        }
    },
    reload: function(time) {
    
        setTimeout("top.location.reload()",time);
    }
};    


function exceptionHandler( request, exception )
{
//    alert("exception:\n"+request.responseText+"\n"+exception);
}

function errorHandler( request )
{
//    alert("error:\n"+request.responseText);
}

function newImage(arg) {
    if (document.images) {
        rslt = new Image(); 
        rslt.src = arg; 
        return rslt;
    }
}

function changeImages() {
    if (document.images && (preloadFlag == true)) {
        for (var i=0; i<changeImages.arguments.length; i+=2) {
            document[changeImages.arguments[i]].src = changeImages.arguments[i+1];
        }
    }
}

var preloadFlag = false;
function preloadImages() {
    if (document.images) {
        vote_pl_over = newImage("http://www.thewitcher.com/resources/upload/vote_tw_pl_h.jpg");
        vote_en_over = newImage("http://www.thewitcher.com/resources/upload/vote_tw_en_h.jpg");
        preloadFlag = true;
    }
}

var LB;
var IFR;
var LS;
var Menu;
var oCookie = new Cookie(0);
            
function doOnLoad() { 
  //oCookie = new Cookie(0);
  Menu = new jmAccordion('left-menu-container');
  LB = new LogonBox;
  preloadImages();     
}                                                                   
