// <[CDATA[ 
var global_id = false;
var tmp_global_id = false;
var global_session_name = false;
var global_session_id = false;

$rvAjax = new function(){
	
	var request = false;
	var request64 = false;
	var captcha = false;
	var session_name = false;
	var session_id = false;
	var receive = false;
	this.codingStr = false;
	var ajax_counter = 0;
	
	this.setSession = function (str_captcha, str_session_name, str_session_id){
		captcha = str_captcha;
		session_id = str_session_id;
		session_name = str_session_name;
		global_session_id = str_session_id;
		global_session_name = str_session_name;		
	};
	
	this.base64_encode = function(str){
		this.receiveData("encodeBase64.php", "enc_str="+str);
		return this.codingStr;
	};
	this.base64_decode = function(str){
		this.receiveData("decodeBase64.php", "enc_str="+str);
		return this.codingStr;
	};
	
	function interpretAjax(){
		var failure = 0;
		switch (request.readyState) {
			case 4:
				if (request.status != 200) {
					var getFailure = "Failure: Request isn't OK! \nStatus:"+request.status;
					failure++;
				} else {
					var content = request.responseText;	
					
					
					if(!receive){
						
						if(content != "onlysend"){
							if(content != 1){
								
							}
						}
					}else{
						if(content != "onlysend")
							document.getElementById("applicant_in_process").innerHTML = content;	
					}
				}			
				break;
			case 2:
					var is_send = true;
				break;
			default:
				break;
		}
	};
	this.send = function (srv_file, sendVars, to_receive, async){
		
		if(to_receive)
			receive = to_receive;
		
		request = false;
		if (window.XMLHttpRequest) {
			request = new XMLHttpRequest(); 
		} else if (window.ActiveXObject) {
			try {
				request = new ActiveXObject('Msxml2.XMLHTTP');
			} catch (e) {
				try {
					request = new ActiveXObject('Microsoft.XMLHTTP');
				} catch (e) {
				
				}
			}
		}	
		if (!request) {
			return false;
		} else {
			if(async == 0)
				var setAsync = false;
			else
				var setAsync = true;
				
				
			request.open("post", "../includes/"+srv_file, setAsync);
			request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
			request.send(sendVars);
			request.onreadystatechange = interpretAjax();		
		}	
		return request;
	};
	
	this.receiveData = function (srv_file, sendVars){
		
		request64 = false;
		
		if (window.XMLHttpRequest) {
			request64 = new XMLHttpRequest(); 
		} else if (window.ActiveXObject) {
			try {
				request64 = new ActiveXObject('Msxml2.XMLHTTP');
			} catch (e) {
				try {
					request64 = new ActiveXObject('Microsoft.XMLHTTP');
				} catch (e) {}
			}
		}	
		if (!request64) {
			return false;
		} else {
			request64.open("post", srv_file, false);
			request64.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
			request64.send(sendVars);			
			if(request64.readyState == 4 && request64.status == 200)
				this.codingStr = request64.responseText;
		}	
	};

};

$rvSocialBookmark = new function(){
	var cnt1 = "";
	var cnt2 = "";
	var services = "";
	
	this.contentToBookmark = function(svs){
		
		services = svs;
		var content = document.getElementById("content");
		if(content.innerText)
			cnt1 = content.innerText
		else
			cnt1 = content.textContent;
		cnt2 = content.innerHTML;

		var sb_link = document.URL;
		var sb_text = cnt1.replace(/\n/g, '<br />');
			sb_text = sb_text.replace(/\r/g, ' ');
		
		var win = window.open(this.bookmarkServices(), "Social_Bookmarks", "width=800,height=600,top=100,left=100,scrollbars=yes,toolbar=yes,status=yes");
	};
	this.bookmarkServices = function(){
		var doc_url = document.URL;
		
		var bookmarks_title = encodeURIComponent(document.getElementById("bookmarks_title").value);
		var bookmarks_keywords = encodeURIComponent(document.getElementById("bookmarks_keywords").value);
		var bookmarks_description = encodeURIComponent(document.getElementById("bookmarks_description").value);

		switch (services){
			case "mister-wong":
					return 'http://www.mister-wong.de/index.php?action=addurl&bm_url='+doc_url+'&bm_notice='+bookmarks_description+'&bm_description='+bookmarks_title+'&bm_tags='+bookmarks_keywords;
				break;
			case "kledy":
					return 'http://www.kledy.de/submit.php?url='+doc_url;
				break;
			case "linkarena":
					return 'http://linkarena.com/bookmarks/addlink/?url='+doc_url+'&title='+bookmarks_title+'&desc='+bookmarks_description+'&tags='+bookmarks_keywords;
				break;
			case "myspace":
					return 'http://www.myspace.com/index.cfm?fuseaction=postto&t='+bookmarks_title+'&u='+doc_url;
						   //'http://www.myspace.com/Modules/PostTo/Pages/?u='+doc_url+'>&t='+bookmarks_title;
				break;
			case "twitter":
					return 'http://www.twitter.com/home?status='+bookmarks_title+' - '+doc_url;
				break;
			case "delicious":
					return 'http://delicious.com/post?url='+doc_url+'&title='+bookmarks_title+'&notes='+bookmarks_description;
				break;
			case "facebook":
					return 'http://www.facebook.com/sharer.php?u='+doc_url+'&t='+bookmarks_title;
				break;
			case "google":
					return 'http://www.google.com/bookmarks/mark?op=add&title='+bookmarks_title+'&labels='+bookmarks_keywords+'&annotation='+bookmarks_description+'&bkmk='+doc_url;
				break;
			case "yahoo":
					return 'http://bookmarks.yahoo.com/toolbar/savebm?u='+doc_url+'&t='+bookmarks_title;
				break;
			default:
				return "";
		}
	};
	this.socInit = function(info_text){
		var sb_info = document.getElementById("sb_info");
		sb_info.style.display = "block";
		sb_info.style.width = "auto";
		sb_info.innerHTML = info_text;
		document.onmousemove = this.socMove;
	};
	this.socOut = function(){
		document.onmousemove = null;
		document.getElementById('sb_info').style.display = "none";
	};
	this.socMove = function(e){
		
		var x = -50;
		var y = -30;
		var pagex = 0;
		var pagey = 0;
		var sb_info = document.getElementById("sb_info");
		if(!e)
			var e = window.event;

		if(e.pageX || e.pageY){
			pagex = e.pageX;
			pagey = e.pageY;
		}else if(e.clientX || e.clientY){
			pagex = e.clientX + document.documentElement.scrollLeft;
			pagey = e.clientY + document.documentElement.scrollTop;
		}
		if(window.innerWidth || window.innerHeight){
			docwidth = window.innerWidth;
			docheight = window.innerHeight;
		}else if(document.documentElement.clientHeight || document.documentElement.clientWidth){
			docwidth = document.documentElement.clientWidth;
			docheight = document.documentElement.clientHeight;
		}else if(document.body.clientWidth || document.body.clientHeight){
			docwidth = document.body.clientWidth;
			docheight = document.body.clientHeight;
		}
		if((docheight - (pagey + y + sb_info.offsetHeight)) < 0){
			y *= -1;
			y -= (sb_info.offsetHeight + y);
		}
		if((docwidth - (pagex + x + sb_info.offsetWidth)) < 0){
			x *= -1;
			x -= (sb_info.offsetWidth + x);
		}
		sb_info.style.left = pagex + -50 + "px";
		sb_info.style.top = pagey + -30 + "px";
	};
}

$rvCookie = new function(){
	this.handleCookie = function(ckname, setValue, setLifetime){	
		if(setLifetime < 0)
			this.lifetimeEnd(ckname);
		else
			this.setCookie(ckname, setLifetime, setValue);		
	};
	this.lifetimeEnd = function(ckname){ 
		document.cookie = ckname+'=; path=/; expires=Thu, 01-Jan-70 00:00:01 GMT;';
		document.cookie = null;
	};
	this.setCookie = function(ckname, setLifetime, setValue){
		if(setLifetime == 0){
			document.cookie = ckname +'='+ setValue +'; path=/;';
		}else{
			var date = new Date();
			date = new Date(date.getTime() + (parseInt(setLifetime)*1000));
			document.cookie = ckname+'='+setValue+'; path=/; expires='+ date.toGMTString()+';';			
		}
	};
}
// Lebensdauer  kleiner Null dann wird gelöscht, gleich Null unendlich setzen, größer Null beschränkte Lebensdauer
//$rv.handleCookie('PHPSESSID', "", 3600);  //( Name, Wert, Lebensdauer in Sekunden) 

var $rv_counter = 0;
var $rv_timer_run = false;
var $rv_obj_timer = false;
var $rv_effect_stop = 1;
var $rv_elm_id = false;
var $rv_effect_function = false;
function timer(){
	if ($rv_counter > 10){
		window.clearInterval($rv_obj_timer);
		$rv_timer_run = false;
		$rv_effect_stop = 1;
		$rv_counter = 0;
		$rv_fSize = 14;
	}else{
		$rv_counter++;
	}	
	$rvEffects.setEffect($rv_effect_function);
};
$rvEffects = new function(){
	this.fadeOut = function(){
		
		if(document.getElementById($rv_elm_id)){
			var elm = document.getElementById($rv_elm_id);
			if($rv_effect_stop == 0){
				var size = parseInt(elm.offsetHeight) / 2;
				var size_width = parseInt(elm.offsetWidth) / 2;
				elm.style.overflow = "hidden";
				elm.style.paddingTop= 0+"px";
				elm.style.paddingBottom = 0+"px";
				elm.style.height = size+"px";
			}else{
				elm.style.display = "none";
			}
		}
	};
	this.slideOut = function(){
		
		if(document.getElementById($rv_elm_id)){
			var elm = document.getElementById($rv_elm_id);
			if($rv_effect_stop == 0){
				var size = parseInt(elm.offsetHeight) / 2;
				var size_width = parseInt(elm.offsetWidth) / 2;
				elm.style.overflow = "hidden";
				elm.style.paddingLeft = 0+"px";
				elm.style.paddingRight = 0+"px";
				elm.style.width = size_width+"px";
			}else{
				elm.style.display = "none";
			}
		}
	};
	this.fadeSlideOut = function(){
		
		if(document.getElementById($rv_elm_id)){
			var elm = document.getElementById($rv_elm_id);
			if($rv_effect_stop == 0){
				var size = parseInt(elm.offsetHeight) / 2;
				var size_width = parseInt(elm.offsetWidth) / 2;
				elm.style.overflow = "hidden";
				elm.style.padding = 0+"px";
				elm.style.height = size+"px";
				elm.style.width = size_width+"px";
			}else{
				elm.style.display = "none";
			}
		}
	};
	this.setEffect = function(effect){
		switch(effect){
			case "fadeOut": this.fadeOut();  break;
			case "slideOut": this.slideOut();  break;
			case "fadeSlideOut": this.fadeSlideOut();  break;
		}
	};
	this.effect_ini = function(effect, xid){
		$rv_elm_id = xid;
		$rv_effect_stop = 0;
		$rv_effect_function = effect;
		$rv_obj_timer = window.setInterval("timer()", 50);
	};
};




$rvSys = new function(){
	
	var start_infobox = 0;
	var sysFailure = 0;
	var infobox = "rvTooltip";
	var tmp_context_item = false;
	var doc_width, doc_height;
	var hidden_overlay = 1;
	
	this.setLang = function(lang){
		
		var uri = document.URL;
		uri = uri.replace(/\?lang\=[a-z]{2}/g, '');
		uri = uri.replace(/\&lang\=[a-z]{2}/g, '');
		if(uri.search(/\?/) != -1)
			location.href = uri+"&lang="+lang;
		else
			location.href = uri+"?lang="+lang;
	};

	this.start_download = function(){
		
		//alert("Download nicht möglich!\nDer Katalog wird gerade überarbeitet.");
		document.getElementById("pdf_download").src = "includes/pdf_download.php?start_download=1";	
	};
	function winPosition(erg){

		if (start_infobox == 1) {
			try {
				if (!erg)
					erg = window.event;
	
				if(window.pageYOffset){
					var scr_x = pageXOffset;
					var scr_y = pageYOffset;
				} else {
					var scr_x = document.documentElement.scrollLeft;
					var scr_y = document.documentElement.scrollTop;
				}
				if (document.getElementById) {
					document.getElementById(infobox).style.left = erg.clientX + scr_x + -200 + "px";
					document.getElementById(infobox).style.top = erg.clientY + scr_y + 15 + "px";
				} else if (document.all) {
					document.all.elements[infobox].style.left = erg.clientX + scr_x + -200 + "px";
					document.all.elements[infobox].style.top = erg.clientY + scr_y + 15 + "px";
				}			
				document.getElementById(infobox).style.display = "block";
			} catch (e) {
				sysFailure++;
			}
		}
	};
	function winPosition2(erg){

		if (start_infobox == 1) {
			try {
				if (!erg)
					erg = window.event;
	
				if(window.pageYOffset){
					var scr_x = pageXOffset;
					var scr_y = pageYOffset;
				} else {
					var scr_x = document.documentElement.scrollLeft;
					var scr_y = document.documentElement.scrollTop;
				}
				if (document.getElementById) {
					document.getElementById(infobox).style.left = erg.clientX + scr_x + -100 + "px";
					document.getElementById(infobox).style.top = erg.clientY + scr_y + 15 + "px";
				} else if (document.all) {
					document.all.elements[infobox].style.left = erg.clientX + scr_x + -100 + "px";
					document.all.elements[infobox].style.top = erg.clientY + scr_y + 15 + "px";
				}			
				document.getElementById(infobox).style.display = "block";
				document.getElementById(infobox).style.width = "auto";
				document.getElementById(infobox).style.padding = 5+"px";
			} catch (e) {
				sysFailure++;
			}
		}
	};
	this.documentSize = function(){
		
	    var scrX = 0; 
		var scrY = 0;
		var windowWidth, windowHeight;
		
		if (window.innerHeight && window.scrollMaxY) {	
			scrX = window.innerWidth + window.scrollMaxX;
			scrY = window.innerHeight + window.scrollMaxY;
		} else if (document.body.scrollHeight > document.body.offsetHeight){ 
			scrX = document.body.scrollWidth;
			scrY = document.body.scrollHeight;
		} else {
			scrX = document.body.offsetWidth;
			scrY = document.body.offsetHeight;
		}
		if(document.getElementById("wrapper"))
			var wrapper = document.getElementById("wrapper");
		if(scrY == 0)
			scrY = parseInt(wrapper.offsetHeight);
		
		if(scrY < wrapper.offsetHeight)
			scrY = wrapper.offsetHeight;
			
		if (self.innerHeight) {	
			if(document.documentElement.clientWidth)
				windowWidth = document.documentElement.clientWidth; 
			else
				windowWidth = self.innerWidth;
			
			windowHeight = self.innerHeight;
		} else if (document.documentElement && document.documentElement.clientHeight) {
			windowWidth = document.documentElement.clientWidth;
			windowHeight = document.documentElement.clientHeight;
		} else if (document.body) { 
			windowWidth = document.body.clientWidth;
			windowHeight = document.body.clientHeight;
		}	
		if(scrY < windowHeight)
			pageHeight = windowHeight;
		else
			pageHeight = scrY;
		if(scrX < windowWidth)
			pageWidth = scrX;		
		else 
			pageWidth = windowWidth;

		if(window.pageYOffset){
			var scr_y = pageYOffset;
			var scr_x = pageXOffset;
		} else {
			var scr_y = document.documentElement.scrollTop;
			var scr_x = document.documentElement.scrollLeft;
		}
		doc_height = pageHeight + scr_y;
		doc_width = pageWidth + scr_x;
		
		/*alert(pageHeight +" x "+doc_height);*/
		
		var retArr = new Array(doc_height, doc_width, scr_y, scr_x);
		return retArr;
	};
	this.elementPosition = function(elm){
		
		if(document.getElementById(elm)){
			var elm_obj = document.getElementById(elm);
			var pos = this.documentSize();
			
			var elm_height = elm_obj.offsetHeight;
			var elm_width = elm_obj.offsetWidth;
			
			if(doc_width > elm_width){
				var diff = doc_width - elm_width;
				var pos_left = diff / 2;
			}else{
				var pos_left = 0;
			}
			if(elm_height < doc_height){
				if((parseInt(pos[2]) + elm_height) > doc_height)
					var diff = parseInt(pos[2]) + parseInt(elm_height) - doc_height;
				else
					var diff = 0;
				elm_obj.style.top = parseInt(pos[2])-diff-20+"px";
				elm_obj.style.left = 10+"px";
			}
		}
		return parseInt(pos[2])-diff-20;
	};
	this.startTooltip = function(tooltip_text){
		document.getElementById(infobox).innerHTML = tooltip_text;
		start_infobox = 1;
		document.onmouseover = winPosition;
	};
	this.startTooltip2 = function(tooltip_text){
		document.getElementById(infobox).innerHTML = tooltip_text;
		start_infobox = 1;
		document.onmouseover = winPosition2;
	};
	this.stopTooltip = function(){
		document.onmouseover = null;
		start_infobox = 0;
		document.getElementById(infobox).style.display = "none";
	};
	this.mod_reset = function(uri){
		
		if(confirm(QUESTION_QUIT))
			location.href = uri;
	};
	this.dialogClose = function(d_id, effect){
		if(effect == "none")
			document.getElementById(d_id).style.display = "none";
		else
			$rvEffects.effect_ini(effect, d_id);
	};
	this.disableContextPoint = function(action, menus){
		
		var dis_menus = menus.split(",");
	
		for(var i = 0; i < dis_menus.length; i++){
			
			var menu_id = "cm_"+dis_menus[i];
			if(action == "DISABLE"){
				if(document.getElementById(menu_id)){
					document.getElementById(menu_id).style.color = "#DDDDDD";	
					document.getElementById(menu_id).disabled = true;
				}
			}else{
				if(document.getElementById(menu_id)){
					document.getElementById(menu_id).style.color = "#000000";					
					document.getElementById(menu_id).disabled = true;	
				}
			}
		}
	};	
	this.scoring = function(){

		var total_scoring = 0;
		
		for(var i = 0; i < 1000; i++){
			var sc_id = "scoring_"+i;
			if(document.getElementById(sc_id)){
				
				var sc = document.getElementById(sc_id);
				var sc_value = parseInt(sc.value);	
				
				if (isNaN(sc_value)) 
					sc_value = 0;

				total_scoring += parseInt(sc_value);
			}
		}
		var ts = document.getElementById("total_scoring");
		ts.innerHTML = "Scoring: "+total_scoring;
		
		if(total_scoring > 100)
			ts.style.color = "#FF0000";
		else
			ts.style.color = "#000000";
	};

	this.set_hidden_overlay = function(xid){
		hidden_overlay = xid;
	};
	this.setOverlay = function(){
		var bs = navigator.appName;
		
		if (bs.search(/msie.+/) != -1 || bs.search(/MSIE.+/) != -1 || bs.search(/Internet Explorer.+/) != -1 || bs.search(/internet explorer.+/) != -1)
			var noOverlay = 1;
		else
			var noOverlay = 0;

		if(document.getElementById("wrapper_overlay") && hidden_overlay == 0 && noOverlay == 0){
			var overlay = document.getElementById("wrapper_overlay");

			overlay.style.top = 0+"px";
			overlay.style.left = 0+"px";
			overlay.style.bottom = 0+"px";
			overlay.style.right = 0+"px";
			overlay.style.zIndex = 1;
			
			if(window.pageYOffset){
				var scr_x = pageXOffset;
				var scr_y = pageYOffset;
			} else {
				var scr_x = document.documentElement.scrollLeft;
				var scr_y = document.documentElement.scrollTop;
			}
			var wrapper = document.getElementById("wrapper");

			overlay.style.width = parseInt(wrapper.offsetWidth)+scr_x+"px";
			overlay.style.height = parseInt(wrapper.offsetHeight)+scr_y+"px";
		}
	};
	this.leadingZero = function(i){
		if(i < 10)
			return "0";
		else
			return "";
	};

};
function setOverlay(){ $rvSys.setOverlay(); };
window.onscroll = setOverlay;
document.onscroll = setOverlay;

// ]]>
