﻿var cdir = 1;
var dirs = new Array('#FFD500', '#00BAF8','#97DF0B');

Asset.images([
	'images/dir1.gif',
	'images/dir2.gif',
	'images/dir3.gif',
	'images/pic1_l2.jpg',
	'images/pic1_r2.jpg',
	'images/pic2_l2.jpg',
	'images/pic2_r2.jpg',
	'images/pic3_l2.jpg',
	'images/pic3_r2.jpg'
]);

MooWaiter = {
  // the script to wait this amount of msecs until it shows the loading element
  timeUntilShow: 250,

  // opacity of loading element
  opacity: 0.8,

  // Start waiting status - show loading element
  startWaiting: function(className, timeUntilShow, opacity) {
    element = this;
    className = className || 'waiting';
    timeUntilShow = timeUntilShow || MooWaiter.timeUntilShow;
    opacity = opacity || MooWaiter.opacity;
    element._waiting = true;
    if (!element._loading) {
      var e = element._loading = new Element('div', {
      	'styles': {
      		'position': 'absolute',
      		'opacity': opacity
      	}
      }).injectInside(/*element.offsetParent*/$(element).getParent() || document.body);
    }
    element._loading.className = className;
    (function() {
      if (this._waiting) {
        $(this._loading).setStyles({
          'left': this.getLeft(),
          'top': this.getTop(),
          'width': this.getSize().size.x,
          'height': this.getSize().size.y
        });
      }
    }).bind(element).delay(timeUntilShow);
    return this;
  },

  // Stop waiting status - hide loading element
  stopWaiting: function() {
    element = this;
    if (element._waiting) {
      element._waiting = false;
      //element._loading.parentNode.removeChild(element._loading);
      $(element._loading).remove();
      element._loading = null;
    }
    return this;
  }
};

if (MooTools) {
  Element.extend(MooWaiter);

  /* Extends functionality from <Waiter> into <Ajax>.

     Additional Options:
     useWaiter - (boolean) if true will automatically apply a <Waiter> to the update target; defaults to false. Note: if you do not specify a value for update option this is ignored.
     waiterOptions - (object) options value passed on to <Waiter> class.
     waiterTarget - (element) if specified, the Waiter will overlay this element, otherwise it uses the update target specified in the ajax options.
  */
  if (typeof Ajax != "undefined") {
     var Ajax = Ajax.extend({
         options: {
           useWaiter: false,
           waiterOptions: {
             className: 'waiting',
             timeUntilShow: MooWaiter.timeUntilShow,
             opacity: MooWaiter.opacity
           },
           waiterTarget: false
         },
         initialize: function(url, options) {
           this.parent(url, options);
           if (this.options.useWaiter && ($(this.options.waiterTarget) || $(this.options.update))) {
             var stop = function() {
               ($(this.options.waiterTarget) || $(this.options.update)).stopWaiting();
             }.bind(this);
             this.addEvent('onComplete', stop);
             this.addEvent('onFailure', stop);
           }
         },
         request: function(data) {
           if (this.options.useWaiter) {
             try {
               ($(this.options.waiterTarget) || $(this.options.update)).startWaiting(this.options.waiterOptions.className, this.options.waiterOptions.timeUntilShow, this.options.waiterOptions.opacity);
             } catch(e) {}
           }
           this.parent(data);
           return this;
         }
     });
  }
}

var Blackbox = {
	init: function(options){
		this.eventPosition = this.position.bind(this);
		this.overlay = new Element('div', {'id': 'lbOverlay'}).injectInside(document.body);
		this.fx = { overlay: this.overlay.effect('opacity', {duration: 10}).hide() };
		this.position();
		this.setup(true);
		this.fx.overlay.start(0.8);
	},

	position: function(){
		var divPosition = window.ie6 ? 'absolute' : 'fixed';
		var divTop = window.ie6 ? window.getScrollTop() : 0;
		this.overlay.setStyles({'top': divTop, 'height': window.getHeight(), 'position': divPosition});
	},

	setup: function(open){
		var elements = $A(document.getElementsByTagName('object'));
		elements.extend(document.getElementsByTagName(window.ie ? 'select' : 'embed'));
		elements.each(function(el){
			if (open) el.lbBackupStyle = el.style.visibility;
			el.style.visibility = open ? 'hidden' : 'visible';
		});
		if (window.ie6)
		{
			var fn = open ? 'addEvent' : 'removeEvent';
			window[fn]('scroll', this.eventPosition)[fn]('resize', this.eventPosition);
		}
	},

	close: function(){
		for (var f in this.fx) this.fx[f].stop();
		this.fx.overlay.chain(this.setup.pass(false, this)).start(0);
		return false;
	}
};

window.addEvent('domready', function() {
	var left1 = window.getWidth() / 2 - 236;
	$('register').setStyle('left', left1);
});

function showform(show) {
	var d = show ? 'block' : 'none';
	$('register').setStyle('top', window.getScrollTop() + 40);
	$('register').setStyle('display', d);
	$('regtbl').setStyle('display','block');
	$('regmsg').setStyle('display','none');

	if (show) {
		Blackbox.init();
	} else {
		Blackbox.close();
	}

	return false;
}

function sendform(form) {
	var i, j;
	var error = 0;
	var error_message='';
	var required = new Array("name","phone","email");
	var required_show = new Array("Ваше имя","Телефон","E-mail");
	var s = form.email.value;
	var sendstr = '';

	for(j=0; j<required.length; j++) {
		for (i=0; i<form.length; i++) {
			if (form.elements[i].name == required[j] && form.elements[i].value == "" ) {
				error = 2;
				error_message = error_message + 'Поле \'' + required_show[j] + '\' не заполнено. \n';
			} else {
				sendstr += form.elements[i].name + '=' + form.elements[i].value + '&';
			}
		}
	}

	if (error==2) {
		alert(error_message);
		return false;
	}

	if (s.length > 0) {
		a=s.indexOf("@");
		j=s.indexOf(".",a);
		k=s.indexOf(",");
		kk=s.indexOf(" ");
		jj=s.lastIndexOf(".")+1;
		len=s.length;
		if(!(((a>0) && (j>(a+1)) && (k==-1) && (kk==-1) && (len-jj >=2) && (len-jj<=5)))) {
			alert("Неправильный e-mail");
			return false;
		}
	}

	var val = new Element('input', {
		'id': 'valid',
		'name': 'valid',
		'type': 'hidden',
		'value': 1
	});
	val.injectInside(form);

	$('regtbl').setStyle('display','none');
	$('regmsg').setStyle('display','block');

	form.send({method: 'post'});

	return false;
}

function changeskin(dir) {
	$('style' + cdir).setStyle('display', 'none');

	cdir = cdir + dir;

	if (cdir<1) {
		cdir = 3;
	} else if (cdir>3) {
		cdir = 1;
	}

	currentskin();
}

function setskin(id) {
	$('style' + cdir).setStyle('display', 'none');
	cdir = id;
	currentskin();
}

function currentskin() {
	$('style' + cdir).setStyle('display', 'block');

	$('online').setStyle('border-color', dirs[cdir-1]);
	$('wrapper').setStyle('background-image', 'url(' + imgsc[cdir-1] + ')');
	$('menu').className = 'diri' + cdir;

	$('left1').setStyle('background-image', 'url(' + imgsl[cdir-1] + ')');
	$('right1').setStyle('background-image', 'url(' + imgsr[cdir-1] + ')');

	$('left2').setStyle('background-image', 'url(images/pic' + cdir + '_l2.jpg)');
	$('right2').setStyle('background-image', 'url(images/pic' + cdir + '_r2.jpg)');
}

function change(el) {
	if (el.value!='') {
		el.setStyle('background-color', '#FFFFFF');
	} else {
		el.setStyle('background-color', '#FFD4D4');
	}
}

function makeform(style, teacher, group) {
	$('style').value = style;
	$('teacher').value = teacher;
	$('text').value = group;
	showform(1);
}

