/*
costructor
*/
function Vdk() {}


Vdk.prototype.ToolTips = function(){

  var links = $$('.withTip a');
  links.each(
    function(a){
      var div = a.getNext();
      if( $defined(div) ) {
        var cor = div.getCoordinates(a);
        var size = div.getSize();
        
        a.addEvents({
          'mouseenter':
          function(event){
            var x = event.client.x;
            var imgLeft = '40px';
            var imgTop = -size.y;
            div.setStyles({'left':imgLeft,'top':imgTop});
            div.toggleClass('away');
          },
          'mouseleave':
          function(event){
            div.toggleClass('away');
            div.removeProperty('style');
          }
        });
      }
    }
  );
}

Vdk.prototype.BoxLink = function(){
  var boxes = $$('.allLink');
  boxes.each(
    function( box ){
      var link = box.getElement('.boxLink');
      box.addEvent('click',
        function(){
          window.location = link.getProperty('href');
        }
      );
    }
  );
}

Vdk.prototype.CallBack = function(){
  var sel = $('CallbackDay');

  if( $defined(sel) ){
    sel.addEvent('change',
      function(event){
        var option  = event.target.getSelected();
        var time = $('CallbackTime');
        if( option.getProperty('id') != 'CallbackDayStart' ){
          time.removeClass('hide');
          time.removeProperty('disabled');
        } else {
          time.addClass('hide');
          time.setProperty('disabled','disabled');
        }
      }
    )
  }

}

Vdk.prototype.ZoomText = function(){
  var bigger = $('textPlus');
  var smaller = $('textMinus');

  if( !$defined(bigger) || !$defined(smaller) ) return;

  var contents = $$('.content, .rightContent');
  var cookieSize = Cookie.read('font-size');
  if( cookieSize ){
    contents.each(function(el){
      el.setStyle('font-size',cookieSize);
    });
  }


  var zoomFunction = function(zoom,el){

    var sizeReal = el.getStyle('font-size');
    var size = ( sizeReal.contains('px') )? 100: sizeReal.toInt();
    var step = 20;
    var min = 80;
    var max = 160;

    if(zoom){
      if( size < max) var newSize = size+step +'%';
      else newSize = size +'%';
    }else{
      if( size > min) var newSize = size-step +'%';
      else newSize = size +'%';
    }
    el.setStyle('font-size',newSize);
    Cookie.write('font-size', newSize);
  }

  bigger.addEvent('click',
    function(){
      contents.each(function(el){
        zoomFunction(true,el)
      });
    }
  );

  smaller.addEvent('click',
    function(){
      contents.each(function(el){
        zoomFunction(false,el)
      });
    }
  );

}

Vdk.prototype.GoogleMap3 = function(){

  if( !$('map_canvas') ) return;

  try{
    loadLocaleScript = function(){
      var gmscript  = new Element('script', {
          'src': 'templates/html/master/js/google_map.js',
          'type':'text/javascript',
          'id':'googleMapScript'
      });
      gmscript.inject(document.body);

      var mapStart = function (){
       try{
          mapInitialize();
          window.addEvent('unload', GUnload);
          $clear(periodical);
       }catch(e){
        loggi(e);
       }
      }
      periodical = mapStart.periodical(200);

    }

    var script  = new Element('script', {
        'src': 'http://maps.google.com/maps?file=api&v=2.x&key=ABQIAAAAW7dOVub2vz8AQ-tch7dTvRQK5X7oSfK5v-OCs-Ng0kD-h4KB8RRIzhh6n03JChd_rMZIt_lm0v4iYg&async=2&callback=loadLocaleScript',
        'type':'text/javascript',
        'id':'gmap'
    });
    script.inject(document.body);

  } catch(e){
    loggi(e);
  }
}

Vdk.prototype.SearchHeader = function(){

  if( $('normalSearch') && $('vvgSearch')) {

    $('normalSearch').addEvent(
      'click',
      function(){
        $('normalSearch').removeClass('grey');
        $('vvgSearch').addClass('grey');
        $('vvgSearchForm').addClass('hide');
        $('searchForm').removeClass('hide');
      }
    );
    $('vvgSearch').addEvent(
      'click',
      function(){
        $('vvgSearch').removeClass('grey');
        $('normalSearch').addClass('grey');
        $('searchForm').addClass('hide');
        $('searchForm').addClass('hide');
        $('vvgSearchForm').removeClass('hide');
      }
    );

  }
}


Vdk.prototype.init = function(){
  Vdk.CallBack();
  Vdk.BoxLink();
  Vdk.ZoomText();
  bookmark();
}

Vdk.prototype.initLoad = function(){
  Vdk.GoogleMap3();
  Vdk.SearchHeader();
  
  Vdk.ToolTips();
}

// Vdk Object
var Vdk = new Vdk();



// events
if( !isAdmin ) {
  window.addEvent( "domready", Vdk.init );
  window.addEvent( "load", Vdk.initLoad );
}




// cdAlert
var cdAlert = new Class({

  table:  "<table cellpadding='0' cellspacing='0' class='cdAlertTable'>" +
          "<tr><td class='top-left'></td><td class='top'></td><td class='top-right'></td></tr>" +
          "<tr><td class='left'></td><td class='cdAlertBox'></td><td class='right'></td></tr>" +
          "<tr><td class='bottom-left'></td><td class='bottom'></td><td class='bottom-right'></td></tr>" +
          "</table>",
  el: {},

	options: $extend({
	  className:'cdAlert',
	  content:'',
	  showClose: true,
	  fadeOutDuration: 0,
	  fadeInDuration: 0,
	  container: null,
	  position: '',
	  left: 0,
	  top: 0
	}, this.options),

	initialize: function(options) {
		this.setOptions(options);
	},

	open: function(){
	  if( this.options.container == null ) this.options.container = $(document.body);

	  // BOX CREATION
	  this.el = new Element('div', { 'class':this.options.className } );
	  this.el.innerHTML = this.table;
	  var td = this.el.getElement('.cdAlertBox');
	  td.innerHTML = this.options.content;
	  if( this.options.showClose ) {
		  this.closeButton = new Element('div').addClass('cdAlertCloseBtn').inject(this.el).addEvent('click', this.close.bind(this));
	  }
	  this.el.inject( this.options.container );
	  this.elSize = this.el.getSize();
	  this.containerSize = this.options.container.getSize();


	  // SET POSITION
	  switch(true){
	   case this.options.position == 'free':
  	  var top = this.options.top;
  	  var left = this.options.left;
  	  break;
	   case this.options.position == 'top':
  	  var top = 0;
  	  var left = ( this.containerSize.x / 2 ) - ( this.elSize.x / 2 );
  	  break;
  	 case this.options.position == 'left':
  	  var top = ( this.containerSize.y / 2 ) - ( this.elSize.y / 2 );
  	  var left = 0;
  	  break;
  	 case this.options.position == 'right':
  	  var top = ( this.containerSize.y / 2 ) - ( this.elSize.y / 2 );
  	  var left = ( this.containerSize.x ) - ( this.elSize.x  );
  	  break;
  	 default:
  	  var top = ( this.containerSize.y / 2 ) - ( this.elSize.y / 2 );
  	  var left = ( this.containerSize.x / 2 ) - ( this.elSize.x / 2 );
  	  break;
	  }

	  this.el.setStyles( {
      left: left,
      top: top
    } );
	},

	close: function(){
    var fadeOut = new Fx.Morph(this.el, {duration: this.options.fadeOutDuration, transition: Fx.Transitions.Sine.easeOut});
    fadeOut.start({
      opacity: 0
    });
	}
});

cdAlert.implement(new Events); // Implements addEvent(type, fn), fireEvent(type, [args], delay) and removeEvent(type, fn)
cdAlert.implement(new Options);// Implements setOptions(defaults, options)

var startPopUp = function(){
  var myAlert = new cdAlert({content:'<h1></h1>',position:'center'});
  //myAlert.open();
}

