// Place your application-specific JavaScript functions and classes here
// This file is automatically included by javascript_include_tag :defaults
(function(){

	window.onload = function(){renderLayout()};

	Browser = {
	  innerWidth: function() {
	    return window.innerWidth || document.documentElement.clientWidth;
	  },

	  innerHeight: function() {
	    return window.innerHeight || document.documentElement.clientHeight;
	  }
	};

	var renderLayout = function() {
	  try {
	    $$('div.notice').each(function(item) {
	      setTimeout(function(){new Effect.Opacity(item, {duration:0.6, from:1.0, to:0.0})}, 2500);
	      setTimeout(function(){$(item).remove()}, 5700);
	    });

	    $$('div.error').each(function(item) {
	      setTimeout(function(){new Effect.Opacity(item, {duration:0.6, from:1.0, to:0.0})}, 2500);
	      setTimeout(function(){$(item).remove()}, 20000);
	    });
	    
	    var testimonials_start = Math.floor(Math.random()*$$('.testimonial').length);
	    $('testimonial_' + testimonials_start).style.display='block';
	    
	    showTestimonial($$('.testimonial'), testimonials_start+1);
	    
	    //var flash_start = Math.floor(Math.random()*$$('.flashy_fl').length);
	    //$('flashy_0' + flash_start).style.display='block';
	    
	    //showAd($$('.flashy_fl'), flash_start+1);
	  } catch(e) {
	    alert(e);
	  }
	};
	
	var showTestimonial = function(testimonials, active) {
	  var testimonials_count = testimonials.length;

    setTimeout((function(){
      if ($('testimonial_' + (active-1))) $('testimonial_' + (active-1)).style.display='none';
      if (!($('testimonial_' + active))) active = 0;
      Effect.Appear($('testimonial_' + active), 1.0);
      
      showTestimonial(testimonials, active+1);
    }), 10000);
	}
	
	var showAd = function(flash, active) {
	  var flash_count = flash.length;

    setTimeout((function(){
      if ($('flashy_0' + (active-1))) $('flashy_0' + (active-1)).style.display='none';
      if (!($('flashy_0' + active))) active = 0;
      Effect.Appear($('flashy_0' + active), 1.0);
      
      showAd(flash, active+1);
    }), 7000);
	}

	showDialogWindow = function(ajax_url) {
	  try {
	    if (!($('dialogWindow'))) {
	      if ($('flashy') && /Gecko/.test(navigator.userAgent) && !/Konqueror|Safari|KHTML/.test(navigator.userAgent)) {
	        $('flashy').style.visibility = "hidden";
	      }
	      var dialogInsertionHTML = '<div id="dialogWindow"></div>';
	      var dialogHTML = '<div id="overlay"></div>';
	      new Insertion.Bottom(document.body, dialogHTML);
        $("overlay").style.height = Browser.innerHeight();
	      new Effect.Opacity('overlay', {duration:0.3, from:0.0, to:0.5});
	      new Insertion.Bottom(document.body, dialogInsertionHTML);
	      $("dialogWindow").style.display = 'block';
	      new Effect.Opacity('dialogWindow', {duration:0.0, from:0.0, to:0.0})
	    } else {
	      new Effect.Opacity('dialogWindow', {duration:0.5, from:1.0, to:0.0});
	    }
		    setTimeout(function(){new Ajax.Updater('dialogWindow', ajax_url, {method:'get', onComplete:function(){
	      var dialogTopPosition = (Browser.innerHeight() / 2) - ($("dialogWindow").clientHeight / 2) - 2;
	      var dialogLeftPosition = (Browser.innerWidth() / 2) - ($("dialogWindow").clientWidth / 2) - 2;
	      if (dialogTopPosition < 5) dialogTopPosition = 5;
	      $("dialogWindow").style.top = "20px";
	      $("dialogWindow").style.left = dialogLeftPosition + "px";
	      $("dialogWindow").style.height = (Browser.innerHeight() - 50) + "px";
	      new Effect.Opacity('dialogWindow', {duration:0.3, from:0.0, to:1.0})
	    }})}, 1000);
	  } catch(e) {
	    alert(e);
	  }
	}


	closeDialogWindow = function() {
	  try {
	    new Effect.Opacity('overlay', {duration:0.5, from:0.5, to:0.0});
	    new Effect.Opacity('dialogWindow', {duration:0.3, from:1.0, to:0.0});
	    setTimeout(function(){$("overlay").remove()}, 1000);
	    setTimeout(function(){$("dialogWindow").remove()}, 1000);
	  } catch(e) {
	    alert(e.description);
	  }
	}
	
	openWYSIWYGEditor = function(id) {
		try {
			tinyMCE.init({
				theme: "advanced",
				relative_urls: false,
				plugins: "safari,spellchecker,pagebreak,style,layer,table,save,advhr,advimage,advlink,inlinepopups,insertdatetime,preview,media,searchreplace,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras",
				content_css: "/stylesheets/standard_tinymce.css",
				external_image_list_url: "/attachments.js",
				external_link_list_url: "/articles.js",
				theme_advanced_resizing: true,
				theme_advanced_toolbar_location: "top",
				theme_advanced_toolbar_align: "left",
				theme_advanced_statusbar_location: "bottom",
				theme_advanced_buttons1: "save,newdocument,|,bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|,styleselect,formatselect,fontselect,fontsizeselect",
				theme_advanced_buttons2: "cut,copy,paste,pastetext,pasteword,|,search,replace,|,bullist,numlist,|,outdent,indent,blockquote,|,undo,redo,|,link,unlink,anchor,image,cleanup,help,code,|,insertdate,inserttime,preview,|,forecolor,backcolor",
				theme_advanced_buttons3: "tablecontrols,|,hr,removeformat,visualaid,|,sub,sup,|,charmap,emotions,advhr,|,ltr,rtl,|,fullscreen",
				theme_advanced_buttons4: "insertlayer,moveforward,movebackward,absolute,|,styleprops,|,cite,abbr,acronym,del,ins,attribs,|,visualchars,nonbreaking,template,blockquote,pagebreak,|,insertfile,insertimage"
			});
    
			tinyMCE.execCommand('mceAddControl', false, id);
		} catch(e) {
			alert(e.description);
		}
	}
	
	toggleMenuVisibility = function(item) {
		var item = $(item);
		
		if (!item) return;
		
		if (item.style.display != "block") {
			item.style.display = "block";
		} else {
			item.style.display = "none";
		}
	}
	
}());
