
// Globals
// Major version of Flash required
var requiredMajorVersion = 9;
// Minor version of Flash required
var requiredMinorVersion = 0;
// Minor version of Flash required
var requiredRevision = 0;

var _textFocus = false;
// -->


// Place your application-specific JavaScript functions and classes here
// This file is automatically included by javascript_include_tag :defaults
Object.extend(Prototype.Browser, {
    IE6:     Prototype.Browser.IE && (typeof window.XMLHttpRequest == "undefined"),
    IE7:     Prototype.Browser.IE && (typeof window.XMLHttpRequest == "object")
});

FFPlugin = {
	helpVisible: false,
	
	install: function() {
		if (FFPlugin.helpVisible) {return;}
		
		var xpi = new Array();
		var originalHeight = window.innerHeight;
		
		xpi['Qitera'] = '/qap/qitera.xpi';
		
		Event.observe(window, 'resize', function() {
			if (FFPlugin.helpVisible) {return;}
			FFPlugin.showHelp();
		});
		InstallTrigger.install(xpi);
	},
	
	showHelp: function() {
		Effect.toggle('ffPluginHelp', 'appear');
		FFPlugin.helpVisible = true;
	},
	
	hideHelp: function() {
		Effect.toggle('ffPluginHelp', 'appear');
	}
} 
Cookie = {
  set: function(name, value, daysToExpire) {
    var expire = '';
    if (daysToExpire != undefined) {
      var d = new Date();
      d.setTime(d.getTime() + (86400000 * parseFloat(daysToExpire)));
      expire = '; expires=' + d.toGMTString();
    }
    return (document.cookie = escape(name) + '=' + escape(value || '') + expire +"; path=/");
  },

  set1: function(name, value, days) {
  
			if (days) {
				var date = new Date();
				date.setTime(date.getTime()+(days*24*60*60*1000));
				var expires = "; expires="+date.toGMTString();
			}
			else var expires = "";
			document.cookie = name+"="+value+expires+"; path=/";
  },

  get: function(name) {
    var cookie = document.cookie.match(new RegExp('(^|;)\s*' + escape(name) + '=([^;\s]*)'));
    return (cookie ? unescape(cookie[2]) : null);
  },
  
  get1: function(name) {
		var nameEQ = name + "=";
			var ca = document.cookie.split(';');
			for(var i=0;i < ca.length;i++) {
				var c = ca[i];
				while (c.charAt(0)==' ') c = c.substring(1,c.length);
				if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
			}
	},

  erase: function(name) {
    var cookie = Cookie.get(name) || true;
    Cookie.set(name, '', -1);
    return cookie;
  },

  erase1: function(name) {
    var cookie = Cookie.get1(name) || true;
    Cookie.set1(name, '', -1);
    return cookie;
  },

  accept: function() {
    if (typeof navigator.cookieEnabled == 'boolean') {
      return navigator.cookieEnabled;
    }
    Cookie.set('_test', '1');
    return (Cookie.erase('_test') === '1');
  }
};

// Helpers for member counters in groups
Counter = {
	increment: function(id) {
		$(id).innerHTML = Number($(id).innerHTML) + 1;
	},
	
	decrement: function(id) {
		$(id).innerHTML = Number($(id).innerHTML) - 1;
	}
	
}

// Progress indicators for remote calls
ProgressIndicator = { 
	showFor: function(element) { 
    	$(element).select(".submitButton").invoke('hide');
		$(element).select(".progressIndicator").invoke('removeClassName', 'hidden');
	}, 

	hideFor: function(element) { 
		$(element).select(".progressIndicator").invoke('addClassName', 'hidden');
		$(element).select(".submitButton").invoke('show');  
	}
}

// call IE6.fixImageTransparencies() in a page load to fix PNG <img> tags
// call IE6.fixBackgroundTransparency(element) for elements with a png CSS background
IE6 = {
  getAlphaFilter: function(src, sizingMethod) {
    return "progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true, src='" + 
      src + "', sizingMethod=" + sizingMethod + ")";
  },
  
  fixBackgroundTransparency: function(element) {
	if (!Prototype.Browser.IE6) return false;
    element = $(element);
    
    var backgroundImage = element.getStyle("background-image");

    if (backgroundImage && backgroundImage != "none") {
      var image = backgroundImage.substring(
        backgroundImage.indexOf('"') + 1, 
        backgroundImage.lastIndexOf('"'));
  
      element.setStyle({
        "backgroundImage": "none",
        filter: IE6.getAlphaFilter(image, "scale")
      });			
    }
  },
  
  fixImageTransparencies: function() {
	if (!Prototype.Browser.IE6) return false; 
    $$("img").each(function(element) {
      if (element.src.indexOf(".png") > 1) {
        element.style.filter = IE6.getAlphaFilter(element.src, "image");
        element.src = "/images/qitera/transparent.gif";
      }
    });
  },

  fixImageTransparency: function(element) {
	if (!Prototype.Browser.IE6) return false;
	element = $(element);
	
      if (element.src.indexOf(".png") > 1) {
		element.style.width = element.getWidth();
        element.style.filter = IE6.getAlphaFilter(element.src, "image");
        element.src = "/images/qitera/transparent.gif";
      }
  }

};

var handler = null;
var submenu = null;
var last_submenu = null;

function toggleSubmenuFor(element) {
	submenu = $(element);
	

	$('navigation').select('.submenu.visible').invoke('removeClassName','visible');
	submenu.addClassName('visible');
	$('navigation').select('.menu.selected').invoke('removeClassName','selected');
	submenu.up().addClassName('selected');
	
	if (handler == null) {
		handler = respondToClick.bindAsEventListener(submenu);
		Event.observe(document.body, 'click', handler);
	} else {
		handler = respondToClick.bindAsEventListener(submenu);
	}
}

function respondToClick(event){
		var clicked_element = Event.element(event);
		if (submenu.hasClassName('visible') && clicked_element == submenu.up() && last_submenu == submenu) {
			submenu.removeClassName('visible');
			submenu.up().removeClassName('selected');
			last_submenu = null;
			return;
		}
			if (!clicked_element.descendantOf(submenu.up()) && (clicked_element != submenu.up())) {
				//Event.stopObserving(document.body, 'click', handler);
				submenu.removeClassName('visible');
				submenu.up().removeClassName('selected');
			}
			last_submenu = submenu;
		}



function resizeGallery() {
	var pf= document.getElementById("pageflow");
	
	if( pf ) {
	  var fl = $("flash_content");
	  var ab = $("anchorBottomRight");
	  var tb = $("viewselector");
	  fl.style.height = (ab.positionedOffset().top  -  tb.cumulativeOffset().top - tb.getDimensions().height - 40 ) + "px";
	}
}		

function resizeGalleryPreview() {
	var pf= document.getElementById("pageflow");
	
	if( pf ) {
	  var fl = $("flash_content");
	  var ab = $("anchorBottomRight");
	  var ab_top = ab.cumulativeOffset().top;
	  var tb = $("viewselector");
	  var tb_top = tb.cumulativeOffset().top;
	  fl.style.height = (ab_top  -  tb_top - 2) + "px";
	}
}		

function focusGalleryPreview() {
	if ( Prototype.Browser.IE6) {
		var pf= document.getElementById("pageflow");
		if( pf ) {
			pf.focus();
		}
	}
	else {
		document['onkeypress'] = myKeyDownHandler;
		document.defaultAction = true;
	}
}


function focusGallery() {
	if ( Prototype.Browser.IE6) {
		var pf= document.getElementById("pageflow");
		if( pf ) {
			pf.focus();
		}
	}
	else {
		document['onkeypress'] = myKeyDownHandler;
		document.defaultAction = true;
	}
	
	resizeGallery();
}

function myKeyDownHandler(e) {
	try {
	var pf= document.getElementById("pageflow");
	if( !pf || _textFocus )
		return document.defaultAction;
		
	var evt = e || window.event;
	if( evt.keyCode == 37 )
		pf.sendToActionScript("left");
	else if( evt.keyCode == 39 )
		pf.sendToActionScript("right");
	// window.alert('keyCode is ' + evt.keyCode);
	}
	catch( e ) {
	}
	return document.defaultAction;
}


function addPageClick(page)
{
	new Ajax.Request('/pages/add_click/'+page, {asynchronous:true, evalScripts:true}); return false;
}

function startPopupTimer(id)
{
	setTimeout("hidePopup('" + id + "')",500);
}

function hidePopup(id) {
	var p=$(id);
	if(p)
	{
		if(p.popup_close == true) {
			p.hide();
		}
	}
}

function closePopup(element) {
	$(element).popup_close=true;
	startPopupTimer(element);
}

function initPopup(element) {
	var popup=$(element);
	if(popup){
		popup.popup_close=false;
		popup.observe('mouseout', function(event){closePopup(element)});
		popup.observe('mouseover', function(event){stopPopupClose(element)});
	}
}

function initPopupX(parent, element) {
	var popup=$(element);
	if(popup){
		popup.show();
		popup.popup_close=false;
		popup.observe('mouseout', function(event){closePopup(element)});
		popup.observe('mouseover', function(event){stopPopupClose(element)});
		setPopupPosition(parent, element, -5, $(parent).getWidth());
	}
}

function initPopupY(parent, element, content) {
	var popup=$(element);
	var cont=$(content);
	if(popup){
		if(cont)
		{
			popup.innerHTML=cont.innerHTML;
		}
		popup.show();
		popup.popup_close=false;
		popup.observe('mouseout', function(event){closePopup(element)});
		popup.observe('mouseover', function(event){stopPopupClose(element)});
		setPopupPosition(parent, element, -5, $(parent).getWidth());
		//setPopupPosition(parent, element, -5, $(parent).getWidth());
	}
}

function initPopupBottom(parent, element) {
	var popup=$(element);
	if(popup){
		popup.show();
		popup.popup_close=false;
		popup.observe('mouseout', function(event){closePopup(element)});
		popup.observe('mouseover', function(event){stopPopupClose(element)});
		setPopupPosition(parent, element, -5, 0);
	}
}

function initPopupTopicBottomAjax(parent, element) {
	try {
	var popup=$(element);
	if(popup){
		popup.hide();
		popup.popup_close=false;
		popup.do_spinner=true;
		popup.observe('mouseout', function(event){closePopup(element)});
		popup.observe('mouseover', function(event){stopPopupClose(element)});
		popup.observe('mouseout', function(event){closePopup(element)});
		$(parent).observe('click',function(event){$(element).popup_close=true;$(element).hide();return false;});
		var cmd = "if( $('"+element+"').popup_close!=true) { if( $('"+element+"').do_spinner==true) { $('"+element+"').innerHTML=\"<div class=\'topicInfo\' style=\'padding: 10px; width: 280px;\'><img style=\'padding-left:120px\' src=\'/images/spinner.gif\' /></div>\";}setPopupPosition('"+parent+"', '"+element+"', 20, 0);$('"+element+"').show();}";
		setTimeout(cmd,400);
	}
	}catch(e) {
		alert(e);
	}
}

function initPopupHeaderMenu(parent, element) {
	var popup=$(element);
	if(popup){
		popup.show();
		popup.popup_close=false;
		popup.observe('mouseout', function(event){closePopup(element)});
		popup.observe('mouseover', function(event){stopPopupClose(element)});
		setDivPosition(parent, element, -24,1);
	}
}

function initPopupViewMenu(parent, element) {
	var popup=$(element);
	if(popup){
		popup.show();
		popup.popup_close=false;
		popup.observe('mouseout', function(event){closePopup(element)});
		popup.observe('mouseover', function(event){stopPopupClose(element)});
		setDivPosition(parent, element, 17,0);
	}
}

function initActionsPopup(parent, element, content) {
	var popup=$(element);
	var cont=$(content);
	if(popup){
		if(cont)
		{
			popup.innerHTML=cont.innerHTML;
		}
		popup.show();
		popup.popup_close=false;
		popup.observe('mouseout', function(event){closePopup(element)});
		popup.observe('mouseover', function(event){stopPopupClose(element)});
		setPopupPosition(parent, element, $(parent).getHeight()-2, 2);

	}
}
function initActionsPopupBottom(parent, element, content) {
	var popup=$(element);
	var cont=$(content);
	if(popup){
		if(cont)
		{
			popup.innerHTML=cont.innerHTML;
		}
		popup.show();
		popup.popup_close=false;
		popup.observe('mouseout', function(event){closePopup(element)});
		popup.observe('mouseover', function(event){stopPopupClose(element)});
		setPopupPosition(parent, element, $(parent).getHeight(),0, 100);

	}
}

function stopPopupClose(element) {
	$(element).popup_close=false;
}

function setPopupPosition(parent_element, element, top_gap, left_gab) {
	var i=$(element); 
	if(i && i.popup_close==false) {
		var pos=$(parent_element).cumulativeOffset();
		i.style.position="absolute";
		i.style.top=pos.top + top_gap + 'px';
		i.style.left=pos.left + left_gab + 'px';
		i.show();
	}
}

function setDivPosition(parent_element, element, top_gap, left_gab) {
	var i=$(element);
	var p=$(parent_element);
	if( i && p ) {
		var pos=p.cumulativeOffset();
		i.style.position="absolute";
		i.style.top=pos.top + top_gap + 'px';
		i.style.left=pos.left + left_gab + 'px';
	}
}

function tinyMCE_reset() {
	var ed = tinyMCE.get('editor1');
	ed.setContent('');
	$('addNoteContainer').hide();
	//$('addNoteButton').show();
}

var tinyMCE_init=false;
function setup_tinyMCE(lang) {
	if(tinyMCE_init == false)
	{
		if(lang == "")
			lang="en";
			
		tinyMCE.init({
					mode : "textareas",
					theme : "advanced",
					language : lang,
					languages : lang,
					editor_selector : "mceEditor",
					plugins : "safari,style,table,advimage,advlink,emotions,media,contextmenu",
					theme_advanced_buttons1 : "bold,italic,underline,|,fontselect,fontsizeselect,|,bullist,numlist,forecolor,backcolor, link,image",
					theme_advanced_buttons2 : "",
					theme_advanced_buttons3 : "",
					theme_advanced_buttons4 : "",
					theme_advanced_toolbar_location : "top",
					theme_advanced_toolbar_align : "left",
					theme_advanced_statusbar_location : "none",
					theme_advanced_resizing : false,
					theme_advanced_path : false,
					extended_valid_elements : "a[name|href|target|title|onclick],img[class|src|border=0|alt|title|hspace|vspace|width|height|align|onmouseover|onmouseout|name],hr[class|width|size|noshade],font[face|size|color|style],span[class|align|style]",
					init_instance_callback : 'resizeEditorBox'
				});
			tinyMCE_init=true;
		}
		Effect.Appear($('addNoteContainer'));
		//$('addNoteContainer').show();
		//$('addNoteButton').hide();
	}
	
var tinyMCE_init1=false;
var tinyMCE_fieldId = "";
function setup_tinyMCEGeneric(lang, fieldid) {
	tinyMCE_fieldId = fieldid;
	if(tinyMCE_init1 == false)
	{
		if(lang == "")
			lang="en";
			
		tinyMCE.init({
					mode : "exact",
					elements: fieldid,
					theme : "advanced",
					language : lang,
					languages : lang,
					plugins : "safari,style,table,advimage,advlink,emotions,media,contextmenu",
					theme_advanced_buttons1 : "bold,italic,underline,|,fontselect,fontsizeselect,|,bullist,numlist,forecolor,backcolor, link,image",
					theme_advanced_buttons2 : "",
					xtheme_advanced_buttons1 : "bold,italic,underline,|,fontselect,fontsizeselect,|,bullist,numlist",
					xtheme_advanced_buttons2 : "outdent,indent,|,undo,|,forecolor,backcolor,link,image,media,emotions,help",
					theme_advanced_buttons3 : "",
					theme_advanced_buttons4 : "",
					theme_advanced_toolbar_location : "top",
					theme_advanced_toolbar_align : "left",
					theme_advanced_statusbar_location : "none",
					theme_advanced_resizing : false,
					theme_advanced_path : false,
					extended_valid_elements : "a[name|href|target|title|onclick],img[class|src|border=0|alt|title|hspace|vspace|width|height|align|onmouseover|onmouseout|name],hr[class|width|size|noshade],font[face|size|color|style],span[class|align|style]",
					height : "280",
					width : '100%',
					force_br_newlines : true,
					force_p_newlines : false,
					forced_root_block : false,
					init_instance_callback : 'resizeEditorBoxX1'
				});
			tinyMCE_init1=true;
		}
		else {
			$("addGenericSimple").hide();
			$("addGenericAdvanced").show();
		
		}
	}	
resizeEditorBox = function (editor) {
		docFrame = editor.contentAreaContainer.parentNode.parentNode.parentNode; // doesn't seem right : was .style.height;
		docFrame.style.width = 590 + "px";
}
resizeEditorBoxX1 = function (editor) {
		//$("addGenericSimple").hide();
		$("addGenericAdvanced").show();
		//docFrame = editor.contentAreaContainer.parentNode.parentNode.parentNode; // doesn't seem right : was .style.height;
		//docFrame.style.width = 505 + "px";
		
}
function fixIE6IframLB() {
	if(IE6){
		if(window.frames.length >=2 )
		{
			$$('iframe').invoke('remove');
		}
	}
}

function submitenter(myfield,e) {
	var keycode;
	if (window.event) keycode = window.event.keyCode;
	else if (e) keycode = e.which;
	else return true;

	if (keycode == 13)
	   {
	   myfield.form.submit();
	   return false;
	   }
	else
	   return true;
}

function setSelectedItemStyle(id) {
	$$(".item-selected-class").each(
		function(element) {
		  element.removeClassName("item-selected-class");
		}
	);
	e = $(id);
	if ( e ) {
		e.addClassName("item-selected-class");
	}
}

/* helpers for autocomplete
*/
function insertAutoCompleteTag(input_element, id, name) {
	$(input_element).insert( {'before':
		"<div class='ac-multi-selected' id='ac-multi-"+id+"'>" 
		+ name
		+ "<input type='text' readonly='true' tabindex='-1' name='ac-multi-id[]' value='" + id + "'/>"
		+ "<img src='/images/icon_cross.gif' onclick=\"$('ac-multi-" +id + "').remove();$('"+input_element+"').activate();\" />"
		+ "</div>"
		});
}	


function UpdateNewsCount()
{
	new Ajax.Request('/news/get_news_count', {asynchronous:true, evalScripts:true}); return false;
}


// determinate the timezone
var visitortime = new Date();
Cookie.set1("tz",visitortime.getTimezoneOffset()/60,1);


