/*Element.addMethods( {
toHTML: function(element) {
  if (typeof element=='string') element = $(element);  // IE needs that check with XML
  return Try.these(
    function() {
      var xmlSerializer = new XMLSerializer();
      return  element.nodeType == 4 ? element.nodeValue :xmlSerializer.serializeToString(element);
    },
    function() {
      return element.xml || element.outerHTML || $(element).clone(true).wrap().up().innerHTML;
    }
  ) || '';
},

 } ); */


function init_ajax_resps() {
	try{
		Ajax.Responders.register({
		  onFailure: function(req, resp) {
			alert(resp.responseText);
		  }
		});
	}catch(ex){
		window.setTimeout(init_ajax_resps,1000);
	}
}

//init_ajax_resps();


function show_alert(alert){
	if(alert.blank())return;
	var msg_box=$('message_box');
	if(msg_box.visible()){
		$('message_box_content').insert("<br>"+alert);
	}else{
		$('message_box_content').update(alert);
		msg_box.show();
	}
}

function refresh_alerts(){
	new Ajax.Request('Message.AJAX_load_alerts', {method: 'get',  evalScripts: true, onComplete:function(resp){
		show_alert(resp.responseText);
	}});
}




function toggle_block(block2show, block2hide, need_login){
	if(need_login && !is_logged_in){
	   return request_login();
    }
	var el=false;
    if(block2hide!=false) el=$(block2hide).hide();
    if(block2show!=false) el=$(block2show).show();
    return el;
}
//var popUpWin=0;

function is_enter(e, submit_button){
	var characterCode //literal character code will be stored in this variable
	try{
		if(e && e.which){ //if which property of event object is supported (NN4)
			characterCode = e.which //character code is contained in NN4's which property
		}else{
			e = event
			characterCode = e.keyCode //character code is contained in IE's keyCode property
		}
	}catch(ex){}
	if(characterCode == Event.KEY_RETURN){ //if generated character code is equal to ascii 13 (if enter key)
		try{Event.stop(e);}catch(ex){}
		$(submit_button).click();
		return false;
	}
	return true;
}

function toggle_collapsable(block_id, toggler_id/*, no_stick*/){
	/*if(!no_stick){
		var old=Cookie.get('progamer_collapsed_blocks');
		if(!old)old="";
		var collapsed_ids=old.split(',');
	}*/
	var el=$(toggler_id);
	if(el.hasClassName('expanded')){
		el.addClassName('collapsed');
		el.removeClassName('expanded');
		$(block_id).hide();
		//if(!no_stick) collapsed_ids.push(block_id);
	}else{
		el.addClassName('expanded');
		el.removeClassName('collapsed');
		$(block_id).show();
		/*if(!no_stick){
			Element.extend(collapsed_ids);
			collapsed_ids=collapsed_ids.without(block_id);
		}*/
	}
	//if(!no_stick)Cookie.set('progamer_collapsed_blocks',collapsed_ids.toString(),365);
	//update_group_block_cookie();
}

function toggle_text_collapsable(block_id, toggler_id, collapsed_text, expanded_text){
	
	var el=$(toggler_id);
	if(el.innerHTML/*.trim()*/==expanded_text){
		el.update(collapsed_text);
		$(block_id).hide();
	}else{
		el.update(expanded_text);
		$(block_id).show();
	}
}

function calc_blur(){
	var dim=document.viewport.getDimensions() ;
	var off=document.viewport.getScrollOffsets();
	page_screen.setStyle({width:dim.width+off.left+'px',height:dim.height+off.top+'px'});
	//var ps=$('page_screen').style;
	//ps.width=dim.width+off.left+'px';
	//ps.height=dim.height+off.top+'px';
}
function close_pop(){
	$('page_screen').hide()
	$('pop').hide();
	Event.stopObserving(window,'resize',calc_blur);
	Event.stopObserving(window,'scroll',calc_blur);
}

function content_ready(){
	hide_loading();
	$('pop_content').show();
}

function show_loading(){
	$('pop_content').hide();
	$('pop_loading').show();
	return true;
}
function hide_loading(){
	$('pop_loading').hide();
	$('pop_content').show();
	return true;
}
var el_pop;
var page_screen;
function show_pop(width, height, title, loader_function){
	if(!title)title='';
	var loader_Style='';
	if(height>0)loader_Style=" style='height:"+(height-23)+"px'";
	var pop_cont='<div class="box_title"><label id="pop_title" class="fl">'+title+'</label><img class="close fr action" src="img/but_close.gif" onClick="close_pop();return false;" title="close" /><div class="nl"></div></div><div class="box_content"><div id="pop_loading"'+loader_Style+' align="center">&nbsp;</div><div id="pop_content" style="display:none"></div>';
	if(!page_screen){
		 page_screen =  Element.extend(document.createElement('div'));
		 page_screen.id="page_screen";
		 page_screen.setStyle({display:'none'});
		 document.body.appendChild(page_screen);
	}
	if(!el_pop){
		 el_pop =  Element.extend(document.createElement('div'));
		 el_pop.id="pop";
		 el_pop.addClassName('popup_wrap');
		 el_pop.setStyle({display:'none'});
		 document.body.appendChild(el_pop);
	}
	el_pop.update(pop_cont);
	el_pop.setStyle({width:width+'px'});
	if(height>0)el_pop.setStyle({height:height+'px'});
	calc_blur();
	var dim=document.viewport.getDimensions() ;
	var off=document.viewport.getScrollOffsets();
	el_pop.setStyle({top:(/*off.top+*/(dim.height/2)-(height/2))+ 'px', left:(/*off.left+*/(dim.width/2)-(width/2))+ 'px'});
	page_screen.show();
	Event.observe(window,'resize',calc_blur);
	Event.observe(window,'scroll',calc_blur);
	el_pop.show();
	window.setTimeout(loader_function, 100);
	return false;
}



function select_tab(tab_name){
	var sel=$("tab_"+tab_name).up().select('.tab.selected').first();
	if(sel){
		sel.removeClassName('selected');
		$(sel.id.replace("tab_","tab_content_")).hide();
	}
	$('tab_'+tab_name).addClassName('selected');
	$('tab_content_'+tab_name).show();
}



