/*
 *  copyright: Multimedia atelier 2002
 *     author: Lukas Duffek
 *    project: ma.cz
 *       date: 2002-11-20
 */

var IE = document.all;

/* image preloading function */
function PreloadImage(fileName) {
  var imgRef = new Image();
  imgRef.src = fileName;
  return imgRef;
}

/* Layout class */
function Layout() {
  this.MENU_IMAGE_ID = "oMenuImg";
  this.MENU_IMAGE_DIV = "oMenuDiv";
  this.MENU_IMAGES_COUNT = 7;
  this.MENU_IMAGES_BASE = "images/layout/menu_p";
  this.MENU_DISPLAY_TIMER = 60;
  this.IMG_DEFAULT = "a";
  this.IMG_HOVER = "b";
  this.IMG_SELECTED = "c";
  this.IMG_EXT = ".gif";
  this.imgMenuObj = new Array();
  this.divMenuObj = new Array();
  this.divControlerObj;
  this.imgMenuDefaultRef = new Array();
  this.imgMenuHoverRef = new Array();
  this.noMenuSelected = -1;
  this.objServiceSelectedItem = null;
  this.divServiceSelectedItem = null;
  this.assigned = false;
  
  /* constructor */
  for (var i = 1; i <= this.MENU_IMAGES_COUNT; i++) {
    this.imgMenuDefaultRef[i] = new PreloadImage(this.MENU_IMAGES_BASE + i + this.IMG_DEFAULT + this.IMG_EXT);    
    this.imgMenuHoverRef[i] = new PreloadImage(this.MENU_IMAGES_BASE + i + this.IMG_HOVER + this.IMG_EXT);    
  }
  
  /* Layout.assignElements() */
  Layout.prototype.assignElements = function() {
    for (var i = 1; i <= this.MENU_IMAGES_COUNT; i++) {
      this.imgMenuObj[i] = new ObjectRef("oMenuImg" + i);
      this.divMenuObj[i] = new ObjectRef("oMenuDiv" + i);
    }
    this.divControlerObj = new ObjectRef("oControlerDiv");
    this.assigned = true;
  }

  /* Layout.hoverMenu */
  Layout.prototype.hoverMenu = function(no, hovered) {
    if (this.assigned) {
      if (hovered) {
        this.imgMenuObj[no].elementRef.src = this.imgMenuHoverRef[no].src;
      }
      else {
        this.imgMenuObj[no].elementRef.src = this.imgMenuDefaultRef[no].src;
      }  
    }
  }

  /* Layout.hideSubMenu */
  Layout.prototype.hideSubMenu = function(no, hover) {
    if (no == null) {
      var no = this.noMenuSelected;
      var hover = true;
    }
    if ((no != -1) && (this.divMenuObj[no].assigned) && (this.divMenuObj[no].isVisible())) {
      //if (hover == true) {
        this.imgMenuObj[no].elementRef.src = this.imgMenuDefaultRef[no].src;
      //}
      this.divMenuObj[no].toggleVisibility("hidden");
      this.divControlerObj.toggleVisibility("hidden");
      this.noMenuSelected = -1;
    }
  }

  /* Layout.showPopdownMenu */
  Layout.prototype.showSubMenu = function(no, hover) {
    if ((this.divMenuObj[no].assigned) && (no != this.noMenuSelected) && (!this.divMenuObj[no].isVisible())) {
      if (this.noMenuSelected > -1) {
        this.hideSubMenu(this.noMenuSelected, hover);
      }
      //if (hover == true) {
        this.imgMenuObj[no].elementRef.src = this.imgMenuHoverRef[no].src;
      //}
      this.divMenuObj[no].styleRef.left = (this.imgMenuObj[no].elementRef.offsetLeft - 6) + "PX";
      this.divMenuObj[no].toggleVisibility("visible");
      this.divControlerObj.toggleVisibility("visible");
      this.noMenuSelected = no;
    }
  }

  /* Layout.selectServiceItem */
  Layout.prototype.selectServiceItem = function(obj, divId) {
    var divObj = null;
    // old state
    if (this.objServiceSelectedItem != null) {
      this.objServiceSelectedItem.className = "layserviceitem";
    }
    if (this.divServiceSelectedItem != null) {
      divObj = new ObjectRef(this.divServiceSelectedItem);
      if (divObj.assigned) {
        divObj.styleRef.display = "none";
      }
    }
    // new state
    obj.className = "layserviceselecteditem";
    divObj = new ObjectRef(divId);
    if (divObj.assigned) {
      divObj.styleRef.display = "";
    }
    this.objServiceSelectedItem = obj;
    this.divServiceSelectedItem = divId;
  }
 
  /* Layout.toggleDisplay() */
  Layout.prototype.toggleDisplay = function(objId) {
    var obj = new ObjectRef(objId);
    if (obj.assigned) {
      obj.toggleDisplay();
    }
  }

  /* Layout.openExternalWindow() */
  Layout.prototype.openExternalWindow = function(name, width, height) {
    var win = window.open(name, "exwin", "width=" + width + ",height=" + height + ",scrollbars=auto");
    win.focus();
  }

  /* Layout.submitForm() */
  Layout.prototype.submitForm = function(formId) {
    var formObj = new ObjectRef(formId);
    //if (formObj.assigned) {
      formObj.elementRef.submit();
    //}
  }

  /* Layout.submitRegistrationForm() */
  Layout.prototype.submitRegistrationForm = function(formId) {
    var formObj = new ObjectRef(formId);
    if (formObj.assigned) {
      if (formObj.elementRef.firstName.value == "") {
	formObj.elementRef.firstName.className = "invalid";
	formObj.elementRef.firstName.focus();
      }
      else if (formObj.elementRef.lastName.value == "") {
	formObj.elementRef.lastName.className = "invalid";
	formObj.elementRef.lastName.focus();
      }
      else if ((formObj.elementRef.loginName.value == "") || (formObj.elementRef.loginName.value.indexOf("@") == -1) || (formObj.elementRef.loginName.value.indexOf("@") == formObj.elementRef.loginName.value.length)) { 
	formObj.elementRef.loginName.className = "invalid";
	formObj.elementRef.loginName.focus();
      }
      else {
        formObj.elementRef.submit();
      }
    }
  }

  /* Layout.submitLoginForm() */
  Layout.prototype.submitLoginForm = function(formId) {
    var formObj = new ObjectRef(formId);
    if (formObj.assigned) {
      if ((formObj.elementRef.loginName.value == "")) { 
        // || (formObj.elementRef.loginName.value.indexOf("@") == -1))
	formObj.elementRef.loginName.className = "invalid";
	formObj.elementRef.loginName.focus();
      }
      else if (formObj.elementRef.password.value == "") {
	formObj.elementRef.password.className = "invalid";
	formObj.elementRef.password.focus();
      }
      else {
        formObj.elementRef.submit();
      }
    }
  }

  /* Layout.viewImage() */
  Layout.prototype.viewImage = function(src, width, height) {
    imageWin = window.open("view_image.jsp?imageSrc=" + src + "&width=" + width + "&height=" + height, "imagewin" + width + "x" + height, "width=" + width + ",height=" + height);
    imageWin.focus();
  }
}

layout = new Layout();


