/**
 * @author Mateusz Cyburt
 */     
 
var Main = new Class({
		initialize: function(){
			hs.graphicsDir = 'public/scripts/highslide/graphics/';
			hs.align = 'center';
			hs.transitions = ['expand', 'crossfade'];
			hs.outlineType = 'rounded-white';
			hs.fadeInOut = true;
			hs.showCredits = false;
			hs.dimmingOpacity = 0.75;
		
		    hs.captionEval = 'this.thumb.title';
		    
			// Add the controlbar
			hs.addSlideshow({
				interval: 5000,
				repeat: false,
				useControls: true,
				fixedControls: 'fit',
				overlayOptions: {
					opacity: .75,
					position: 'bottom center',
					hideOnMouseOut: true
				}
			});
	}, // initialize

    domReady: function() {
		this.activateInputs();
		this.insertFlash();
		this.insertGmaps();
		this.activateBackBtn();
		this.activateHighslide();
		this.activateDisplayInstitution();
		this.activateForms();
		this.activateRatings();
		var fix4ie = new Fix4ie();
	}, // domReady
    
    
	activateHighslide: function() {
		$$('a[rel=highslide]').each(function(obj){
			obj.onclick = function() { return hs.expand(this); };
		});
	}, //activateHighslide
	
    insertFlash: function(){
            elements = $$('div.flash');
            if (elements.length > 0) {
            elements.each(
                //obj.setStyle('background-image', 'none');
                function(obj){
                    var size = obj.getSize();
                    var id = obj.get('id');
                    var SwiffObj = new Swiff('public/flash/' + id + '.swf?v=2', { id: "flash" + $random(1,99),container: id, width: size.x, height: size.y, 
                                                                             params: {wmode: 'transparent', bgcolor: obj.getStyle('background-color')} });
                    if(!SwiffObj) obj.setStyle('background-image', 'url(../gfx/flash.gif)');
                });
            }
    }, // insertFlash
        
	checkTitles: function(form) {
		form.getElements('input[type=text]').each(function(obj){
			if (obj.value == obj.title) obj.value = '';
		});
		form.getElements('textarea').each(function(obj){
			if (obj.value == obj.title) obj.value = '';
		});
	}, // checkTitles
	
	activateInputs: function() {
		$$('input[type=text]').each(function(obj){
			obj.value = obj.title;
			obj.onclick = function() { if (obj.value == obj.title) { obj.value = '';} };
			obj.onblur = function()  { if (obj.value == '') { obj.value = obj.title;} };
		});

		$$('textarea').each(function(obj){
			obj.onclick = function() { if (obj.innerHTML == obj.title){obj.innerHTML = '';} };
			obj.onblur = function()  { if (obj.innerHTML == ''){obj.innerHTML = obj.title;} };
		});

		$$('form').each(function(obj){
			obj.onsubmit = function() { main.checkTitles(this); };
		});
	}, // activateInputs

   insertGmaps: function() {
	  if ($('gmap') && GBrowserIsCompatible() ) {
		  var map = new GMap2(document.getElementById("gmap"));

		  	map.setCenter(new GLatLng(50.073062,19.92759), 13);
		  	map.addControl(new GSmallMapControl());
		    
		  	var point = new GLatLng(50.073062,19.92759);
		  	map.addOverlay(new GMarker(point));
		}
	},
	
	activateBackBtn: function() {
		$$('a.back_btn').each(function(obj){
			obj.onclick = function() { history.back(); return false; };
		});
	},
	
	activateDisplayInstitution: function() {
		$$('a[rel=display_institution]').each(function(obj){
			obj.onclick = function() {
				$$('tr.expaded').each(function(obj){obj.removeClass('expaded');});
				var TeEr = obj.getParent().getParent();
				TeEr.addClass('expaded');
				TeEr.getNext().addClass('expaded');
				return false; 
			};
		});
	}, //activateDisplayInstitution
	
	addNewsletter: function() {
		var group = 0;
		if ($('newsletter_type_1').checked) group = 1;
		var myRequest = new Request({
			url: 'ajax/add2newsletter', 
			method: 'post',
			data: {'email' : $('newsletter_email').value,
				   'group' : group},
			onRequest: function() { 
					   $('newsletter_form_btn').setStyle('display', 'none');
					   $('loader').setStyle('display', 'block'); },  
			onComplete: function(response) { 
					   $('loader').setStyle('display', 'none');
					   $('newsletter_form_btn').setStyle('display', 'block');
					   $('newsletter_status').innerHTML = response; }  
		});
		myRequest.send();	
	}, // addNewsletter
	
	addComment: function() {
		var myRequest = new Request({
			url: 'ajax/add2comments', 
			method: 'post',
			data: {'name' : $('author_name').value,
				   'comment_id' : $('comment_id').value,
				   'desc' : $('comment').value},
			onRequest: function() { 
					   $('add_comment_btn').setStyle('display', 'none');
					   $('loader-comment').setStyle('display', 'block');
				   },  
			onComplete: function(response) { 
					   $('loader-comment').setStyle('display', 'none');
					   $('add_comment_btn').setStyle('display', 'block');
					   $('comment_status').innerHTML = response; }  
		});
		myRequest.send();	
	}, // addComment

	activateForms: function() {
		if ($('newsletter_form')) {
			$('newsletter_form_btn').onclick = function(){ 
				main.checkTitles($('newsletter_form')); 
				main.addNewsletter(); 
				return false; 
			};
		}
		
		if ($('add_comment')) {
			$('add_comment_btn').onmousedown = function(){
				main.checkTitles($('add_comment')); 
				main.addComment();
				return false; 
			};
		}
	}, // activateForms
	
	showMail: function(user, dmain, contry, attr) {
		var start = "<a href=\"mailto:" + user + "@" + dmain + "." + contry + "\"" + attr + "title=\"" + user + "@" + dmain + "." + contry + "\">";
		var end = "</a>";
		document.write(start + user + "@" + dmain + "." + contry + end);
		return false;
	}, // showMail
	
	showMail2: function(user, dmain, contry, attr) {
		var start = "<a href=\"mailto:" + user + "@" + dmain + "." + contry + "\"" + attr + "title=\"" + user + "@" + dmain + "." + contry + "\">";
		var end = "</a>";
		document.write(start + 'email' + end);
		return false;
	}, // showMail2
	
	activateRatings: function() {
		var rating_obj = $('rating');
		if (rating_obj) {
			//<!-- [4.5;24] -->
			var reg = new RegExp('\\[(.+)\\]');
			var data = reg.exec(rating_obj.innerHTML);
			data = data[1].split(';');
			doRating(data[0], true, {
			    targetObject: rating_obj,
			    maxStars: 5,
			    tipShown: true,
				background: '#e4e8d7',
			    colourBase: '#f4edaf',
			    colourTarget: '#f9e526',
			    starWidth: 20,
			    starHeight: 19,
			    border: "none",
			    tipPadding: 6,
			    starSpacing: 0,
			    imageURL: 'img/star.gif',
			    clickEvent: function(ratingOptions) {
			        new Request({
			            url: "ajax/training-rate",
			            method: "post",
						data: {'ratingID' : data[1],
							   'rating' : ratingOptions.newRating},
			            onComplete: function(req) {
							$('rating').innerHTML = req;
			            }
			        }).send();
			    }
			});
		} // if
	} // activateRatings
	
}); // Main

var Fix4ie = new Class({
	initialize: function(){
		if ( Browser.Engine.trident ) {
			this.fixInputFocus();
		}
	
		if ( Browser.Engine.trident4 ) {
			this.fixHovers();
			$('search_col').setStyle('display', 'block');
		}
	}, // initialize

	fixInputFocus: function() {
    	var elems = $$('input');  
        elems.each(function(obj) {
            obj.onclick = function() { if (obj.value == obj.title) { obj.value = ''};this.addClass('focus'); };
            obj.onblur = function()  { if (obj.value == '') { obj.value = obj.title};this.removeClass('focus'); };
        });
    }, // fixInputFocus

    fixHovers: function() {
    	var elems = $$('input,button,li,tr');
        elems.each(function(obj) {
            obj.onmouseover = function() {
            	var new_class = this.get('class');
            	if (new_class != '') this.addClass('hover_' + new_class);
            	else this.addClass('hover');
            };
            obj.onmouseout = function()  {
            	var class_name = this.get('class');

            	if (this.hasClass('hover')) this.removeClass('hover');
            	else {
            		class_array = class_name.split(' ');
            		class_array.each(function(element){
            			if (element.match('hover_')) obj.removeClass(element);
            		});
            	}
            };
        });
    } // fixHovers
}); // fix4ie6

var main = new Main();

window.addEvent('domready', function(){ main.domReady(); });

