﻿// Za slucaj da ne postoji funkcija document.getElementById
if(!document.getElementById)
{
	if(eval){
	   document.getElementById = eval
	}
}

// --- Language selector Objekat --------------------------------------------------------

/**
 * class cjsimageviewer
 * Klasa za rad sa visejezickim tekstom
 * @brief Klasa za rad sa visejezickim tekstom
 * @param parm_name string Ime parametra za koji se vezuje objekat
 */
function cjsimageviewer(src_name, dst_name)
{
   this.src_name = src_name               ///< Ime src kontrole
   this.src_name_desc = src_name+"Desc"   ///< Ime dst kontrole
   this.dst_name = dst_name               ///< Ime dst kontrole
   this.dst_name_desc = dst_name+"Desc"   ///< Ime dst kontrole za Desc
   this.field_values = new Array()        ///< Vrednosti skrivenih polja
   this.mlcontrols = new Array()          ///< Niz sa objektima preko kojih se menjaju vrednosti
   this.form_obj = null                   ///< objekat forme
   this.currImg = 0;                      ///< Pokazivac na tekucu sliku
   this.currLvl = 0;                      ///< Pokazivac na nivo uvelicavanja

   /**
    * Funkcija kojom se inicijalizuje selektor
    * Ova funkcija treba da ucita u interni niz vrednosti skrivenih polja
    * @brief Funkcija kojom se inicijalizuje selektor
    */
   this.init = function()
   {
      this.src_cntrl = eval(src_name) ///< Ime src kontrole
      this.popupzoomsrc_cntrl = eval(src_name)+'PopupZoom' ///< Ime Popup Zoom src kontrole
      this.src_cntrl_desc = eval(this.src_name_desc) ///< Ime src kontrole
      this.dst_cntrl = document.getElementById(dst_name) ///< Ime dst kontrole
      this.dst_cntrl_desc = document.getElementById(this.dst_name_desc) ///< Ime dst kontrole
//      alert(this.src_cntrl[0][0] )
      this.dst_cntrl.src = this.getcurrentimagesrc()
      if(this.dst_cntrl_desc)
      	this.dst_cntrl_desc.innerHTML = this.getcurrentimagedesc()
   }  // init

   /**
    * Fukcija koja se poziva po prebacivanju izvora u odrediste
    * @brief Fukcija koja se poziva po prebacivanju izvora u odrediste
    */
   this.next = function()
   {
      this.adjustzoomlvl()
      this.currImg++;
      if(!this.src_cntrl[this.currImg])
      {  // Ne postoji slika
         this.currImg=0
      }
      this.dst_cntrl.src = this.getcurrentimagesrc()
      if(this.dst_cntrl_desc)
      	this.dst_cntrl_desc.innerHTML = this.getcurrentimagedesc()
   }

   /**
    * Fukcija koja se poziva po prebacivanju izvora u odrediste
    * @brief Fukcija koja se poziva po prebacivanju izvora u odrediste
    */
   this.last = function()
   {
      this.adjustzoomlvl()
      this.currImg=this.src_cntrl.length-1;

      this.dst_cntrl.src = this.getcurrentimagesrc()
      if(this.dst_cntrl_desc)
      	this.dst_cntrl_desc.innerHTML = this.getcurrentimagedesc()
   }

   /**
    * Fukcija koja se poziva po prebacivanju izvora u odrediste
    * @brief Fukcija koja se poziva po prebacivanju izvora u odrediste
    */
   this.prev = function()
   {
      this.adjustzoomlvl()
      this.currImg--;
      if(this.currImg<0)
      {  // Ne postoji slika
         this.currImg=this.src_cntrl.length-1;
      }
      this.dst_cntrl.src = this.getcurrentimagesrc();
      if(this.dst_cntrl_desc)
      	this.dst_cntrl_desc.innerHTML = this.getcurrentimagedesc()
   }

   /**
    * Fukcija koja se poziva po prebacivanju izvora u odrediste
    * @brief Fukcija koja se poziva po prebacivanju izvora u odrediste
    */
   this.first = function()
   {
      this.adjustzoomlvl()
      this.currImg=0;

      this.dst_cntrl.src = this.getcurrentimagesrc()
      if(this.dst_cntrl_desc)
      	this.dst_cntrl_desc.innerHTML = this.getcurrentimagedesc()
   }

   /**
    * Fukcija koja se poziva po prebacivanju izvora u odrediste
    * @brief Fukcija koja se poziva po prebacivanju izvora u odrediste
    */
   this.zoomin = function()
   {
      this.currLvl++;
      if(this.currLvl==this.src_cntrl[this.currImg].length)
      {  // Ne postoji slika
         this.currLvl=this.src_cntrl[this.currImg].length-1
      }
      else
         this.dst_cntrl.src = this.getcurrentimagesrc()
   }

   /**
    * Fukcija koja se poziva po prebacivanju izvora u odrediste
    * @brief Fukcija koja se poziva po prebacivanju izvora u odrediste
    */
   this.zoomout = function()
   {
      this.currLvl--;
      if(this.currLvl<0)
      {  // Ne postoji slika
         this.currLvl=0
      }
      else
         this.dst_cntrl.src = this.getcurrentimagesrc()
   }

   /**
    * Fukcija koja se poziva po prebacivanju izvora u odrediste
    * @brief Fukcija koja se poziva po prebacivanju izvora u odrediste
    */
   this.adjustzoomlvl = function()
   {
      if(this.currLvl>=this.src_cntrl[this.currImg].length)
         this.currLvl = this.src_cntrl[this.currImg].length-1;
   }

   /**
    * Fukcija koja vraca src slike
    * @brief Fukcija koja vraca src slike
    */
   this.getcurrentimagesrc = function()
   {
      return this.src_cntrl[this.currImg][this.currLvl]
   }

   /**
    * Fukcija koja vraca src slike
    * @brief Fukcija koja vraca src slike
    */
   this.getcurrentimagedesc = function()
   {
      if(this.src_cntrl_desc)
      	return this.src_cntrl_desc[this.currImg][this.currLvl]
      else
      	return '';
   }

   /**
    * Fukcija koja vraca src slike
    * @brief Fukcija koja vraca src slike
    */
   this.getcurrentzoomimagesrc = function()
   {
      level = this.currLvl+1;
      if(level==this.src_cntrl[this.currImg].length)
      {  // Ne postoji slika
         level=this.src_cntrl[this.currImg].length-1
      }

      return this.src_cntrl[this.currImg][level]
   }

   /**
    * Fukcija koja vraca src slike
    * @brief Fukcija koja vraca src slike
    */
   this.zoomit = function(url_base,pic,w,h,_width,_height,_align,_valign)
   {
//      alert('Zoomimage: '+this.getcurrentzoomimagesrc())
      img = new Image()
      img.src = this.getcurrentzoomimagesrc()
      img.onload = function()
      {
      	my_screen_width = screen.width
      	my_screen_height = screen.height
      	my_screen_avail_width = my_screen_width - 0
      	my_screen_avail_height = my_screen_height - 30 - 27

      	def_win_border_height = 0//29 do 52
      	def_win_border_width = 0//9 do 10

      	def_align = "center"
      	def_valign = "middle"
      	def_width = 800
      	def_height = 600
   //   	if(w == null){
      		w = img.width
   //   	}
   //   	if(h == null){
      		h = img.height
   //   	}

      	_scroll = "no"
      	if(_width == null){
      		_width = w + 30
      	}
      	if(_height == null){
      		_height = h + 50
      //		_height = h
      	}
      	if(_height>my_screen_avail_height || h>my_screen_avail_height){
      		_width += 16
      		_height = my_screen_avail_height
      		_scroll = "yes"
      	}
      	if(_align==null){
      		_align = def_align
      	}else{
      		if(_align!="left" && _align!="right"){
      			_align = def_align
      		}
      	}
      	if(_valign==null){
      		_valign = def_valign
      	}else{
      		if(_valign!="top" && _valign!="bottom"){
      			_valign = def_valign
      		}
      	}
      	if(url_base==null){
      		url_base = ''
      	}

      	_left = (my_screen_avail_width - def_win_border_width - _width)
      	_top = (my_screen_avail_height - def_win_border_height - _height)
      //		alert(my_screen_avail_height+", "+my_screen_height)
      	if(_left < 0 || _align == "left"){
      		_left = 0
      	}
      	if(_align == "center"){
      		_left = Math.round(_left/2)
      	}

      	if(_top < 0 || _valign == "top"){
      		_top = 0
      	}
      	if(_valign == "middle"){
      		_top = Math.round(_top/2)
      	}


         if(window.windowVar && window.windowVar.close){
            window.windowVar.close()
         }

      	window.windowVar = window.open(url_base+"index.php?st_location=home&st_version=active&structure_template_type=zoom&image_src="+this.src+"&w="+w+"&h="+h,"Zoom","toolbar=no,location=no,diretories=no,scrollbars="+_scroll+",status=no,menubar=no,resizable=yes,top="+_top+",left="+_left+",height="+_height+",width="+_width+"");
      	window.windowVar.focus();
      }

   }
}  // cjsimageviewer

