/*http://www.prototypejs.org/learn*/

function ajax_info (display, e) {
	if (display == 1) {
		if ( !e ) {
			if ( window.event ) {
				//Internet Explorer
				e = window.event;
			} else {
				//total failure, we have no way of referencing the event
				return;
			}
		}
		if ( typeof( e.pageX ) == 'number' ) {
			//most browsers
			var xcoord = e.pageX;
			var ycoord = e.pageY;
		} else if( typeof( e.clientX ) == 'number' ) {
			//Internet Explorer and older browsers
			//other browsers provide this, but follow the pageX/Y branch
			var xcoord = e.clientX;
			var ycoord = e.clientY;
			var badOldBrowser = ( window.navigator.userAgent.indexOf( 'Opera' ) + 1 ) || ( window.ScriptEngine && ScriptEngine().indexOf( 'InScript' ) + 1 ) ||	( navigator.vendor == 'KDE' )
			if ( !badOldBrowser ) {
				if ( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
					//IE 4, 5 & 6 (in non-standards compliant mode)
					xcoord += document.body.scrollLeft;
					ycoord += document.body.scrollTop;
				} else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
					//IE 6 (in standards compliant mode)
					xcoord += document.documentElement.scrollLeft;
					ycoord += document.documentElement.scrollTop;
				}
			}
		} else {
			//total failure, we have no way of obtaining the mouse coordinates
			return;
		}
		document.getElementById('ajax_waiting').style.top = ycoord + 'px';
		document.getElementById('ajax_waiting').style.display = '';
	} else {
		document.getElementById('ajax_waiting').style.display = 'none';
	}
}

function ajax_info_reg (display, e) {
	if (display == 1) {
		if ( !e ) {
			if ( window.event ) {
				//Internet Explorer
				e = window.event;
			} else {
				//total failure, we have no way of referencing the event
				return;
			}
		}
		if ( typeof( e.pageX ) == 'number' ) {
			//most browsers
			var xcoord = e.pageX;
			var ycoord = e.pageY;
		} else if( typeof( e.clientX ) == 'number' ) {
			//Internet Explorer and older browsers
			//other browsers provide this, but follow the pageX/Y branch
			var xcoord = e.clientX;
			var ycoord = e.clientY;
			var badOldBrowser = ( window.navigator.userAgent.indexOf( 'Opera' ) + 1 ) || ( window.ScriptEngine && ScriptEngine().indexOf( 'InScript' ) + 1 ) ||	( navigator.vendor == 'KDE' )
			if ( !badOldBrowser ) {
				if ( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
					//IE 4, 5 & 6 (in non-standards compliant mode)
					xcoord += document.body.scrollLeft;
					ycoord += document.body.scrollTop;
				} else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
					//IE 6 (in standards compliant mode)
					xcoord += document.documentElement.scrollLeft;
					ycoord += document.documentElement.scrollTop;
				}
			}
		} else {
			//total failure, we have no way of obtaining the mouse coordinates
			return;
		}
		document.getElementById('ajax_waiting_reg').style.top = ycoord + 'px';
		document.getElementById('ajax_waiting_reg').style.display = '';
	} else {
		document.getElementById('ajax_waiting_reg').style.display = 'none';
	}
}


function add_blocked_words (ajax_action, title, e) {

	if (test_right_click(e)) {
	
		if (document.selection && document.selection.createRange) {
			// the Internet Explorer 4.0x code
			var range = document.selection.createRange();
		    var value = range.text;		
			
			if ((value != '')) {
				write_blocked_words(ajax_action, title, value, e);
			}
		} else if (document.getSelection && (document.getSelection() != '')) {
			// the Navigator 4.0x code
			write_blocked_words(ajax_action, title, document.getSelection());
		} else {
		}	
		
	}	
}

function write_emailing (ajax_action, id_theme, e, this_element) {

	if (!this_element.checked) {
		return false;
	}
	ajax_info(1, e);
	var url = ajax_action_handler_url;
	var pars =
			'ajax_action=' + ajax_action +  
			'&id_theme=' + id_theme + 
			''
	;
	var myAjax = new Ajax.Request(
		url,
		{
			method: 'post',
			parameters: pars,
			onComplete: response_write_emailing,
			evalScripts: true
		}
	);
}

function response_write_emailing (response) {
	//alert(response.responseText);
	
	if (response.responseText) {
		ajax_info(0);
		alert(response.responseText);
	}	
}

function write_karma_filter (ajax_action, id_karma_filter_cl, e) {
	
	ajax_info(1, e);
	var url = ajax_action_handler_url;
	var pars =
			'ajax_action=' + ajax_action +  
			'&id_karma_filter_cl=' + id_karma_filter_cl + 
			''
	;
	var myAjax = new Ajax.Request(
		url,
		{
			method: 'post',
			parameters: pars,
			onComplete: response_write_karma_filter,
			evalScripts: true
		}
	);
}

function response_write_karma_filter (response) {
	//alert(response.responseText);
	
	if (response.responseText) {
	//	ajax_info(0);
		window.location.reload();
	}	
}

function cache_remove(ajax_action, id_cache, cache_name, e) {
	ajax_info(1, e);
	var url = ajax_action_handler_url;
	var pars =
			'ajax_action=' + ajax_action +  
			'&id_cache=' + id_cache + 
			'&cache_name=' + cache_name + 
			''
	;
	var myAjax = new Ajax.Request(
		url,
		{
			method: 'post',
			parameters: pars,
			onComplete: response_cache_remove,
			evalScripts: true
		}
	);
}	
function response_cache_remove (response) {
	//alert(response.responseText);
	
	if (response.responseText) {
	//	ajax_info(0);
		window.location.reload();
	}	
}


function write_blocked_words (ajax_action, title, value, e) {
	
	var reply = prompt(title, value);
	if (reply) {
		ajax_info(1, e);
		var url = ajax_action_handler_url;
		var pars =
				'ajax_action=' + ajax_action +  
				'&term=' + reply + 
				''
		;
		var myAjax = new Ajax.Request(
			url,
			{
				method: 'post',
				parameters: pars,
				onComplete: response_write_blocked_words,
				evalScripts: true
			}
		);
		
	}	
}

function response_write_blocked_words (response) {
	//alert(response.responseText);
	
	if (response.responseText) {
		ajax_info(0);
		alert(response.responseText);		
	}	
}

function write_vote (ajax_action, id_reaction, vote, e) {
	ajax_info(1, e);
	var url = ajax_action_handler_url;
	var pars =
			'ajax_action=' + ajax_action +  
			'&id_reaction=' + id_reaction + 
			'&vote=' + vote + 
			''
	;
	var myAjax = new Ajax.Request(
		url,
		{
			method: 'post',
			parameters: pars,
			onComplete: response_write_vote,
			evalScripts: true
		}
	);
	
}


function response_write_vote (response) {
	//alert(response.responseText);
//	var layer_message_main = document.getElementById('rank_caption_');
	if (response.responseText) {
		var id_reaction = response.responseXML.getElementsByTagName("id_reaction")[0].firstChild.data;
		var vote_text = response.responseXML.getElementsByTagName("vote_text")[0].firstChild.data;
		var target = document.getElementById('rank_caption_' + id_reaction);
		
		target.innerHTML = '<font color="#000080">' + vote_text + '</font>'
		ajax_info(0);
	}	
}

var test_target_id = ''; // global

function test_dupe(ajax_action, e, id_input_box, id_response_box) {
//alert('aaaaaaaaaa' + id_response_box);
	ajax_info_reg(1, e);
	
	var target = document.getElementById(id_response_box);
	target.style.display = 'none';
	var to_test = document.getElementById(id_input_box).value;
	var url = ajax_action_handler_url;
	test_target_id = id_response_box;
	var pars =
			'ajax_action=' + ajax_action +  
			'&to_test=' + to_test + 
			''
	;
	
	var myAjax = new Ajax.Request(
		url,
		{
			method: 'get',
			parameters: pars,
			onComplete: response_test_dupe,
			evalScripts: true
		}
	);
}

function response_test_dupe (response) {
	if (response.responseText) {
		var target = document.getElementById(test_target_id);
		target.innerHTML = response.responseText + '&nbsp;&nbsp;<a href="#" onclick="javascript:hideMenu_reg(\''+test_target_id +'\')">[x]</a>';
		target.style.display = '';
		ajax_info_reg(0);
	}	
}



function test_dupe2(ajax_action, e, id_input_box, id_response_box) {
//alert('aaaaaaaaaa' + id_response_box);
	ajax_info_reg(1, e);
	
	var target = document.getElementById(id_response_box);
	if(document.getElementById('msg3_del')){
		var target_to_hide = document.getElementById('msg3_del');
		target_to_hide.style.display = 'none';
	}
	target.style.display = 'none';

	
	var to_test = document.getElementById(id_input_box).value;
	var url = ajax_action_handler_url;
	test_target_id = id_response_box;
	var pars =
			'ajax_action=' + ajax_action +  
			'&to_test=' + to_test + 
			''
	;
	
	var myAjax = new Ajax.Request(
		url,
		{
			method: 'get',
			parameters: pars,
			onComplete: response_test_dupe2,
			evalScripts: true
		}
	);
}

function response_test_dupe2 (response) {
	if (response.responseText) {
		var target = document.getElementById(test_target_id);
		var restext = response.responseText.split("|");
		
		if(restext[0] == '0'){
			target.innerHTML = restext[1];
			target.className="inline_message inline_error stack";
		}
		else {
			target.innerHTML = restext[1];
			target.className="inline_message inline_success stack";
		}
		//target.innerHTML = response.responseText; 
		target.style.display = '';
		ajax_info_reg(0);
	}	
}



function change_state(ajax_action, e, id_reaction, new_state_cl) {
	//ajax_info_reg(1, e);
	var url = ajax_action_handler_url;
	test_target_id = 'a_s_' +  id_reaction;
	var pars =
			'ajax_action=' + ajax_action +  
			'&id_reaction=' + id_reaction + 
			'&id_state_cl=' + new_state_cl + 
			''	;
	var myAjax = new Ajax.Request(
		url,
		{
			method: 'get',
			parameters: pars,
			onComplete: response_change_state,
			evalScripts: true
		}
	);
}

function response_change_state (response) {
	if (response.responseText) {
		var target = document.getElementById(test_target_id);
		target.innerHTML = response.responseText ;
		//target.href="";

	//	ajax_info_reg(0);
	}	
}

function test_primar_quest(ajax_action, e, id_thread){
	
	var url = ajax_action_handler_url;
	var target_id = 'limit_div';
	var target = document.getElementById('select_id_thread');
	id_thread = target.value;
	var pars = 'ajax_action=' + ajax_action + '&id_thread=' + id_thread;
	
	new Ajax.Updater(target_id, url,
	  {
	    method: 'get',
	    parameters: pars
	  });

}


function write_poll_vote (ajax_action, id_poll, id_answer, user, e) {
	ajax_info(1, e);
	var url = ajax_action_handler_url;
	var pars =
			'ajax_action=' + ajax_action +  
			'&id_poll=' + id_poll + 
			'&id_answer=' + id_answer + 
			'&user=' + user + 
			''
	;
	var myAjax = new Ajax.Request(
		url,
		{
			method: 'post',
			parameters: pars,
			onComplete: response_write_poll_vote,
			evalScripts: true
		}
	);
	
}


function response_write_poll_vote (response) {
	
	if (response.responseText) {
		var target = document.getElementById('msgs_test');
		var big_target = document.getElementById('id_hokej_wrap');
		//big_target.style.height = '84px';
		target.innerHTML = response.responseText ;
		ajax_info(0);
	}	
}

function write_hokejfan_vote (ajax_action, id_team, e) {
//	alert('aaaa' + id_team);
	ajax_info(1, e);
	var url = ajax_action_handler_url;
	var pars =
			'ajax_action=' + ajax_action +  
			'&id_team=' + id_team + 
			''
	;
	var myAjax = new Ajax.Request(
		url,
		{
			method: 'post',
			parameters: pars,
			onComplete: response_hokejfan_vote,
			evalScripts: true
		}
	);
	
}


function response_hokejfan_vote (response) {
	if (response.responseText.substring(0,1) == '/') {
		var target = document.getElementById('team_flag_img');
		target.innerHTML = '<img src="' + response.responseText + '.gif" />';
	} else {
		var target = document.getElementById('msgs_test');
		var big_target = document.getElementById('id_hokej_wrap');
		//big_target.style.height = '84px';
		target.innerHTML = response.responseText ;
	}
	ajax_info(0);
}
/**********************/
function write_election_vote (ajax_action, id_party, e) {
	//alert(ajax_action + 'aaaa' + id_party);
	ajax_info(1, e);
	var url = ajax_action_handler_url;
	var pars =
			'ajax_action=' + ajax_action +  
			'&id_party=' + id_party + 
			''
	;
	var myAjax = new Ajax.Request(
		url,
		{
			method: 'post',
			parameters: pars,
			onComplete: response_election_vote,
			evalScripts: true
		}
	);
	ajax_info(0);
}

function preview_election_vote (ajax_action, id_party, e) {
	ajax_info(1, e);
	var url = ajax_action_handler_url;
	var pars =
			'ajax_action=' + ajax_action +  
			'&id_party=' + id_party + 
			''
	;
	var myAjax = new Ajax.Request(
		url,
		{
			method: 'post',
			parameters: pars,
			onComplete: response_election_vote,
			evalScripts: true
		}
	);
	ajax_info(0);
}

function response_election_vote (response) {
	var restext = response.responseText.split("|");
	if(restext !=''){
	var partyid = restext[0];
	var parttextr = restext[1];
	var ccolor = restext[2];
	var desc_text = restext[3];
	
	var target_color = document.getElementById('elc_colored_div');
	target_color.className= 'color ' + ccolor;
	
	var target_content = document.getElementById('elc_partyid_div');
	target_content.innerHTML= parttextr;
	
	var target_content2 = document.getElementById('elc_this_year_div');
	target_content2.innerHTML= desc_text;
	}
	
}
//*****************/

function show_send_notice (ajax_action, id_reaction, e) {
	ajax_info(1,e);
	var url = ajax_action_handler_url;
	var pars =
			'ajax_action=' + ajax_action +  
			'&id_reaction=' + id_reaction + 
			''
	;
	var myAjax = new Ajax.Request(
		url,
		{
			method: 'post',
			parameters: pars,
			onComplete: response_show_notice,
			evalScripts: true
		}
	);
	
}


function response_show_notice (response) {
	//alert(response.responseText);
	if (response.responseText) {
		var id_reaction = response.responseXML.getElementsByTagName("id_reaction")[0].firstChild.data;
		var resp_text = response.responseXML.getElementsByTagName("resp_text")[0].firstChild.data;
		if(response.responseXML.getElementsByTagName("id_state_cl")){
			var id_state = response.responseXML.getElementsByTagName("id_state_cl")[0].firstChild.data;
		} else var id_state = 'null';
		//alert(id_state);
		//var target_maindiv = document.getElementById('report_' + id_reaction);
		var target = document.getElementById('report_p_example');
			target.innerHTML = resp_text;
		var target_example_div = document.getElementById('report_example');			
		
		document.getElementById('id_reac_hidden').value=id_reaction;	
		if(id_state != 'null'){
			document.getElementById('id_state_hidden').value=id_state;	
		}
		
		//target_maindiv.innerHTML = target_example_div.innerHTML;
		target_example_div.style.display = '';
		//target_example_div.style.top = (cord_modal/2) + 'px';
		pop_to_center('report_example');
		deselect_reactions_3px(); //deselect previously selected.
		border_selected_reaction_3px(id_reaction);
		ajax_info(0);
				
	}	
}

function pop_to_center(popup)
{ // http://www.sitepoint.com/forums/showthread.php?t=531349
	
    var height;
    var width;
    if(document.all)
    {
        height=document.body.offsetHeight;
     //   width=document.body.offsetWidth;
        divHeight=document.getElementById(popup).offsetHeight;
     //   divWidth=document.getElementById(popup).offsetWidth;
    }
    else
    {
        if(document.getElementById)
        {
            height=window.innerHeight;
         //   width=window.innerWidth;
            divHeight=document.getElementById(popup).offsetHeight;
         //   divWidth=document.getElementById(popup).offsetWidth;
        }
    }
    getViewportScrollY = function() {
      var scrollY = 0;
      if( document.documentElement && document.documentElement.scrollTop ) {
        scrollY = document.documentElement.scrollTop;
      }
      else if( document.body && document.body.scrollTop ) {
        scrollY = document.body.scrollTop;
      }
      else if( window.pageYOffset ) {
        scrollY = window.pageYOffset;
      }
      else if( window.scrollY ) {
        scrollY = window.scrollY;
      }
      //alert(scrollY);
      //alert(height);
      return scrollY;
    };
    var newTop=getViewportScrollY()+(height/2) -(divHeight/2);
    //alert(newTop);
    //var newLeft=(width/2)-(divWidth/2);
    document.getElementById(popup).style.top=newTop + 'px'; // fix: jalso + 'px'.
    
}



/************************************************************************************************************************************************************************************************
 * LAYER BOX
 */
function layer_box_window (url, height, width) {
   /**
	* new LITBox(Message or HREF, {options});
	* -----------------
	* Option Parameters
	* -----------------
    * width: pixel width
    * height: pixel height
    * type: 'window','alert','confirm'
    * func: function to call when confirming yes
    * draggable: ability to drag around screen
    * resizable: ability to resize
    * overlay: show overlay mask
    * opacity: final opacity [0,1]
    * left: how far from the left of the screen
    * top: how far from the top of the screen
	*/
   	new LITBox(url, {type:'window', resizable:true, draggable:false, overlay:true, height:height, width:width});
	return false;
}

