/*
 * der jquery conflict mode wird in der http://scripts.zeit.de/static/js/base.js gesetzt
 * deswegen nutzen wir jQuery statt jQuery
 */

function CHECLASS() {
	
	this.qrObj = {
			rank_scope_typ: '',
			esb_id: '',
			url_param: '',
			url_params: '',
			json_url: checonfig.actionRoot+'quickranking/auswahlBox',
			quick_ranking_url: checonfig.actionRoot+'quickranking/show'
	}
	
	this.premiumRegistryErrorObject;
	
	this.isFirstSelect = false;
	
	this.init = function() {
		// events ueberwachen
		this.eventsObserver();
	}
	
	/*
	 * events 
	 */
	this.eventsObserver = function() {
		
		// aufklappbar boxen
		jQuery('.aufklappbar').click(
			function() {
				var obj = jQuery(this);
				if (obj.hasClass('open')) {
					obj.removeClass('open');
					obj.next('table').slideUp();
				} else {
					obj.addClass('open');
					obj.next('table').slideDown();
				}
			}
		);
		
		// aufrufen der layer einfach die klasse anhaengen
		jQuery('#chewrapper .choosecolorbox, #chewrapper_table .cheinfo').livequery('click', function(e) {
			e.preventDefault();			
			var obj = jQuery(this);
			var url = obj.attr('href')
			var data;
			//alert(obj.attr('href'));
			jQuery.get(url, function(data) {
				data = data;
				if(!CHE.hasRedirectUrl(data)) {
				
					jQuery.fn.colorbox({
						opacity: checonfig.modalOpacity,
						speed: checonfig.modalSpeed,
						close: checonfig.closeLayer,
						preloading: false,
						photo:false,
						scrolling:false,
						html: data
						}, function() {
							// ausblenden des title attr und des footers
							CHE.removeColorboxFooter();
							return false;
					});
				}
				
			
			});
			
		});
		
		jQuery(".einzugsstruktur").colorbox(
			{
				opacity: checonfig.modalOpacity,
				speed: checonfig.modalSpeed,
				close: checonfig.closeLayer
			}
		);
		
		
		// abc list
		this.currentLetter="A";
		
		// A hat die competion gewonnen und darf als erster angezeigt werden
		jQuery('#cheabckey_A').show();
		jQuery('.cheabclist a').click(function(e) {
			e.preventDefault();
			var letter = jQuery(this).attr('href');
			CHE.toggleAbc(letter);
		});
		
		// premium profil
		jQuery('.chetoggleicon').toggle(function() {
			jQuery(this).next().slideDown();
			jQuery(this).removeClass('chedownicon').addClass('cheupicon');
		},function() {
			jQuery(this).next().slideUp();
			jQuery(this).removeClass('cheupicon').addClass('chedownicon');
		});
		
		// printlogo setzen
		//jQuery('body').prepend('<img alt="ZEIT ONLINE" src="http://images.zeit.de/static/img/logo_247x30.png" class="printlogo">')
		
		/*
		 * criteria toggle
		 */
		jQuery(".togglemain__event, .togglesub__event").live('click', function(e){
			var obj = jQuery(this);
			var href =obj.attr('href');
			var slideSpeed ="fast";
			if(obj.next().is(':visible')) {
				obj.next().slideUp(slideSpeed);
				obj.removeClass('active');
				return false;
			}
			// main
			if(obj.hasClass('checriteriamainhead')) {
				jQuery(".togglemain__event").next().slideUp(slideSpeed);
				jQuery(".togglemain__event").removeClass('active');
			}
			// sub
			else {
				jQuery(".togglesub__event").next().slideUp(slideSpeed);
				jQuery(".togglesub__event").removeClass('active');
			}
			obj.addClass("active");
			obj.next().slideDown(slideSpeed);
			e.preventDefault();
		});
		
		// wird in der usercontrolbox verwendet
		jQuery('.cheajaxform').submit(function(e){
			var obj = jQuery(this);
			var replace = false;
			// wenn das formular die klasse replace hat
			// dann setz replace auf true damit bei success true das formular gegen
			// den response ausgetauscht wird
			replace = obj.hasClass('chereplace');
			e.preventDefault();
			CHE.doSubmit(obj, replace);
		});
		
		// wenn checonfig.openContainer nicht leer dann oeffne container
		// und setze beim parent das upicon
		if(checonfig.openContainer !="" && checonfig.openContainer !=null ) {
			jQuery('#'+checonfig.openContainer).show().prev().removeClass('chedownicon').addClass('cheupicon');
		}
		
		

		// Quickranking-Auswahl
		CHE.getQrData(1);
	       
		jQuery("#quick_ranking_select_1").change(function () {
   			
			jQuery("#quick_ranking_select_2 .realData").remove();
			jQuery("#quick_ranking_select_3 .realData").remove();
   			
			CHE.qrObj.esb_id = jQuery("#quick_ranking_select_1 option:selected").val();
   			
			CHE.qrObj.url_param = "?esb="+CHE.qrObj.esb_id;
			// erst die selectbox leeren
   			CHE.getQrData(2);
       		CHE.isFirstSelect=true;
			
   			/*
			if(!CHE.isFirstSelect) {
       			// url param fuer die zweite abfrage fuellen
   				CHE.qrObj.url_param = "?esb="+CHE.qrObj.esb_id;
       			
       			// erst die selectbox leeren
   				CHE.getQrData(2);
       			CHE.isFirstSelect=true;
       			//jQuery("#weiter_btn_2").show();
   			}
   			else {
   				CHE.isFirstSelect=false;
   			}
			*/
        })
		
        jQuery("#quick_ranking_select_2").change(function () {
   			
			jQuery("#quick_ranking_select_3 .realData").remove();
			
			// speichern des scope-typs und der scope-id im objekt
			CHE.qrObj.rank_scope_typ = jQuery("#quick_ranking_select_2 option:selected").val();
   			       			
        	CHE.qrObj.url_param = "?esb="+CHE.qrObj.esb_id+"&"+CHE.qrObj.rank_scope_typ;
   			CHE.getQrData(3);
        })
        
        jQuery("#quick_ranking_select_3").change(function () {
   			// eigene attribute auslesen
   			// speichern des scope-typs und der scope-id im objekt
        	CHE.qrObj.url_params = jQuery("#quick_ranking_select_3 option:selected").val();
        });
		
		
        
        
    /*
	 * validation jquery.validate
	 **********************************************************************************/
	// die error-messages stehen im head
	// ################################################################################
	// wichtig der error message container muss ein div sein und der wrapper ein p
	// ################################################################################
        
        // zum checken von select feldern wird fuer beruf verwendet
        jQuery.validator.addMethod("selectNone", function(value, element) { 
        	if (element.value == "none") { 
        		return false; 
        	} 
        	else {
        		return true;
        	}
		} 
		
		); 
        
		
		// new registry 2011
		var newRegistryErrorMessages = {
			premiumAccountEmail: cheerror.errorMessages.standard_email,
			premiumAccountPwd: cheerror.errorMessages.pwd
		}
		
		var new_registry_error_container = $('div#che_new_registry_error');
		var newRegistryErrorObj = {
			
			errorContainer: new_registry_error_container,
			errorLabelContainer: $("div", new_registry_error_container),
			wrapper: "p",
			//meta: "validate",
			
			rules: {
				premiumAccountEmail: {
					required: true,
					email: true
				},
				premiumAccountPwd: {
					required: true,
					minlength: true
				}
			},
			// ausgeben der error messages
			messages: newRegistryErrorMessages
		}
		jQuery("#new_registry_form").validate(newRegistryErrorObj);
		// premium account end
		
		
		
		
		
		
		// premium account
		var premiumAccountErrorMessages = {
			name: cheerror.errorMessages.name,
			nachname: cheerror.errorMessages.nachname,
			beruf: cheerror.errorMessages.beruf
		}
	
		var cheupdateaccount_error_container = $('div#cheupdateaccount_error');
		var premiumAccountErrorObj = {
			
			errorContainer: cheupdateaccount_error_container,
			errorLabelContainer: $("ul", cheupdateaccount_error_container),
			wrapper: "li",
			meta: "validate",
			
			rules: {
				name: {
					required: true
				},
				nachname: {
					required: true
				},
				beruf: {
					required: true
				}
			},
			// ausgeben der error messages
			messages: premiumAccountErrorMessages,
			submitHandler: function(form) {
				jQuery("#cheupdateaccount_success").hide();
				jQuery(form).ajaxSubmit({success: CHE.showResponse });
			}
		}
		jQuery("#premiumAccount").validate(premiumAccountErrorObj);
		// premium account end
		
		
		// premium registrieren
		var premiumRegistyErrorMessages = {
			name: cheerror.errorMessages.name,
			nachname: cheerror.errorMessages.nachname,
			beruf: cheerror.errorMessages.beruf,
			premiumAccountPwd: cheerror.errorMessages.pwd,
			premiumAccountPwd2: cheerror.errorMessages.pwd2,
			premiumAccountEmail: cheerror.errorMessages.standard_email
		}
	
		var premium_registry_error_container = $('div#cheupdateaccount_error');
		CHE.premiumRegistryErrorObject = {
			
			errorContainer: premium_registry_error_container,
			errorLabelContainer: $("div", premium_registry_error_container),
			meta: "validate",
			wrapper: "p",
			
			rules: {
				name: {
					required: true
				},
				nachname: {
					required: true
				},
				beruf: {
					required: true
				},
				premiumAccountEmail: {
					required: true
				},
				premiumAccountPwd: {
					required: true,
					minlength:6
				},
				premiumAccountPwd2: {
					required: true,
					minlength:6,
					equalTo: '#premiumAccountPwd'
				}
			},
			// ausgeben der error messages
			messages: premiumRegistyErrorMessages
		}
		jQuery("#premiumRegistry").validate(CHE.premiumRegistryErrorObject);
		// premium registry end
		
		
		// newsletter box
		var newsletterboxErrorMessages = {
			chenewsletter: {
				required: cheerror.errorMessages.standard_email.required,
				email: cheerror.errorMessages.standard_email.email
			}
		}
		
		var newsletterbox_error_container = $('div#chenewsletterform_error');
		var newsletterboxErrorObj = {
			errorContainer: newsletterbox_error_container,
			errorLabelContainer: $("p", newsletterbox_error_container),
			meta: "validate",
			
			rules: {
				chenewsletter: {
					required: true
				}
			},
			// ausgeben der error messages
			messages: newsletterboxErrorMessages,
			submitHandler: function(form) {
				var timer = 
				// email zwischenspeichern
				checonfig.currentEmail = jQuery("#chenewsletter").val();
				
				// newsletterform im layer oeffnen
				jQuery.fn.colorbox({
					opacity: checonfig.modalOpacity,
					speed: checonfig.modalSpeed,
					close: checonfig.closeLayer,
					width:600,
					height:530,
					href: form.action
					}, function() {
						// email im hidden field #email ablegen
						jQuery('#email').val(checonfig.currentEmail);
						CHE.removeColorboxFooter();
						return false;
					}
				);
			}
			
		}
		jQuery("#chenewsletterform").validate(newsletterboxErrorObj);
		// newsletter end
        
		
		// recommendation box
		var recommendationErrorMessages = {
			// spiegelt die id des elements wieder bsp.: input id="cheto"
			cheto: {
				required: cheerror.errorMessages.to_email.required,
				email: cheerror.errorMessages.to_email.email
			},
			chefrom: {
				required: cheerror.errorMessages.from_email.required,
				email: cheerror.errorMessages.from_email.email
			}
		}
		
		var recommendation_error_container = $('div#cherecommendation_error');
		var recommendationErrorObj = {
			errorContainer: recommendation_error_container,
			errorLabelContainer: $("div", recommendation_error_container),
			meta: "validate",
			wrapper: 'p',
			
			rules: {
				cheto: {
					required: true
				},
				chefrom: {
					required: true
				}
			},
			// ausgeben der error messages
			messages: recommendationErrorMessages
			
		}
		jQuery("#cherecommendation").validate(recommendationErrorObj);
		// recommendation end
		
		
		// lost pw
		
		var lostpwErrorMessages = {
			// spiegelt die id des elements wieder bsp.: input id="cheto"
			chelostpw: {
				required: cheerror.errorMessages.standard_email.required,
				email: cheerror.errorMessages.standard_email.email
			}
		}
		
		var lostpw_error_container = $('div#chepwform_error');
		var lostpwErrorObj = {
			errorContainer: lostpw_error_container,
			errorLabelContainer: $("div", lostpw_error_container),
			meta: "validate",
			wrapper: 'p',
			
			rules: {
				chelostpw: {
					required: true
				}
			},
			// ausgeben der error messages
			messages: lostpwErrorMessages
		}
		jQuery("#chepwform").validate(lostpwErrorObj);
		// recommendation end
		
        
		// mehr informationen einblenden
		jQuery(".toggletext").click(function(e) {
			jQuery(this).hide().next().css('display', 'block').slideDown();
			jQuery(".toggletextless").show();
			e.preventDefault();
		});
		
		// weniger informationen einblenden
		jQuery(".toggletextless").click(function(e) {
			jQuery(this).hide().prev().slideUp();
			jQuery(".toggletext").show();
			e.preventDefault();
		});
		
		
		// profilseite selectboxen
		jQuery('#fach_hinzu').change(function() {
			var obj = jQuery(this);
			var name = jQuery("#fach_hinzu option:selected").text();
			jQuery.get(checonfig.actionRoot + 'ajax/profilAddFach?id=' + obj.val() + '&name=' + name, function(data) {
				jQuery('#'+obj.attr('id')+'_container').append('<li>'+data+'</\li>');
			});
		});
		
		jQuery('#ort_hinzu').change(function() {
			var obj = jQuery(this);
			var name = jQuery("#ort_hinzu option:selected").text();
			jQuery.get(checonfig.actionRoot + 'ajax/profilAddOrt?id=' + obj.val() + '&name=' + name, function(data) {
				jQuery('#'+obj.attr('id')+'_container').append('<li>'+data+'</\li>');
			});
		});
		
		jQuery('#abschluss_hinzu').change(function() {
			var obj = jQuery(this);
			jQuery.get(checonfig.actionRoot + 'ajax/profilAddAbschlussart?key=' + obj.val(), function(data) {
				jQuery('#'+obj.attr('id')+'_container').append('<li>'+data+'</\li>');
			});
		});
		
		$('#profil_form_submit').click(
			function() {
				$('#profil_form').submit();
			}
		);
		
		$('#premiumAccount_submit').click(
			function() {
				$('#premiumAccount').submit();
			}
		);
		
		$('#indikatoren_submit').click(
			function() {
				$('#indikatoren').submit();
			}
		);
		
		// info layer select
		jQuery('#indikid').livequery('change', function() {
			var obj = jQuery(this);
			CHE.updateIndikatorBrowser(obj.val());
		});
		
		jQuery('#merklink').click(function(e) {
			e.preventDefault();
			var obj = jQuery(this);
			jQuery.get(obj.attr('href'), function() {
				obj.hide();
				jQuery('#merklinkMsg').fadeIn('slow');
			});
		});
		
		// merklink loeschen
		jQuery('.merklinkRemove').livequery('click', function(e) {
			e.preventDefault();
			var obj = jQuery(this);
			jQuery.get(obj.attr('href'), function() {
				obj.parent().remove();
			});
		});
		
		// faq toggle
		jQuery('.faqtoggle__event').click(function() {
			var obj = jQuery(this);
			jQuery('.faqtoggle__event').removeClass('cheblack').addClass('chered');
			obj.removeClass('chered').removeClass('cheblack').addClass('cheblack');
			jQuery('.faqtoggle_container').slideUp();
			obj.next().slideDown();
		});
		
		// bem rem felder
		jQuery('.bem_remlayer').click(function() {
			var obj = jQuery(this);
			var html = obj.next().html();
			jQuery.fn.colorbox({
				opacity: checonfig.modalOpacity,
				speed: checonfig.modalSpeed,
				close: checonfig.closeLayer,
				preloading: false,
				photo:false,
				scrolling:false,
				width: 500,
				html: html
				}, function() {
					// ausblenden des title attr und des footers
					CHE.removeColorboxFooter();
					return false;
			});
		});
	}
	
	// end events
	
	this.unescapeHtml = function(string) {
		var name = jQuery("<div>"+string+"</div>").html();
		return name;
	}
	
	this.setRankScopeToOption = function(rank_scope_typ, select_num, text) {
		jQuery(document.createElement("option")).val(rank_scope_typ).text(CHE.unescapeHtml(text)).appendTo("#quick_ranking_select_"+select_num);
	}
	
	this.getQrData = function(select_num) {
		
		if(CHE.qrObj.url_param == "") {
			jQuery.getJSON(CHE.qrObj.json_url,
				function(data){
					jQuery.each(data.fachliste, function(i, fach){
						// html unescaped
						jQuery(document.createElement("option")).val(fach.id).text(CHE.unescapeHtml(fach.name)).addClass('realData').appendTo("#quick_ranking_select_"+select_num);
			         });
			    }
			);
		}
		else {
			if(select_num == 2) {
				jQuery.getJSON(CHE.qrObj.json_url+CHE.qrObj.url_param,
					function(data){
						jQuery.each(data.rankScopes, function(i, scope) {
							jQuery(document.createElement("option")).val(scope.params).text(CHE.unescapeHtml(scope.name)).addClass('realData').appendTo("#quick_ranking_select_"+select_num);
						});
					}
				);
			}
		
			if(select_num == 3) {
				jQuery.getJSON(CHE.qrObj.json_url+CHE.qrObj.url_param, 
					function(data){
						jQuery.each(data.bausteine, function(i, baustein){
							jQuery(document.createElement("option")).val(baustein.params).text(CHE.unescapeHtml(baustein.name)).addClass('realData').appendTo("#quick_ranking_select_"+select_num);
						});
				    }
				);
			}
		}
	}
	
	this.showNextSelect = function(btnNum, select_num) {
		
		var select_row_num=jQuery("#select_row_"+select_num);
		var selectbox = jQuery("#quick_ranking_select_"+select_num);
		var btn = jQuery("#weiter_btn_"+btnNum);
		
		btn.hide();
		select_row_num.show();
		
		// wenn nicht ausgewaehlt dann nehme den ersten wert
		if(!CHE.isFirstSelect) { 
			if(CHE.qrObj.esb_id =="" && btnNum == 1) { 
				CHE.qrObj.esb_id = jQuery("#quick_ranking_select_1 option:first").val();
			}
			
			// behandeln als ob die erste selectbox geklickt wurde
			jQuery("#weiter_btn_2").show();
			
			CHE.isFirstSelect=true;
			
			CHE.qrObj.url_param = "?esb="+CHE.qrObj.esb_id;
			CHE.getQrData(2);
		}
		
		if(CHE.qrObj.rank_scope_typ =="" && btnNum ==2 ) { 
			CHE.qrObj.rank_scope_typ = jQuery("#quick_ranking_select_2 option:first").val();
			
			CHE.qrObj.url_param = "?esb="+CHE.qrObj.esb_id+"&"+CHE.qrObj.rank_scope_typ;
			CHE.getQrData(3);
		}
		
		if(CHE.qrObj.url_params =="") { 
			CHE.qrObj.url_params = jQuery("#quick_ranking_select_3 option:first").val();
			CHE.qrObj.url_param = "?esb="+CHE.qrObj.esb_id+"&"+CHE.qrObj.rank_scope_typ+"&"+CHE.qrObj.url_params;
		}
		
	}
	
	this.sendQuickRanking = function() {
		CHE.qrObj.rank_scope_typ = jQuery("#quick_ranking_select_2 option:selected").val();
		CHE.qrObj.url_param = CHE.qrObj.rank_scope_typ;
		
		// url zusammenbauen	
		// auslesen der parameter aus dem aktiven option feld
		CHE.qrObj.url_params = jQuery("#quick_ranking_select_3 option:selected").val();
		
		url = CHE.qrObj.quick_ranking_url+CHE.qrObj.url_param+CHE.qrObj.url_params;
	
		if (CHE.qrObj.rank_scope_typ != '--' && CHE.qrObj.url_params != '--') {
			window.location.href = url;
		} else {
			$('#quickRankingError').slideDown();
		}
	}
	
	this.absLeft = function absLeft(el) {
		return (el.offsetParent)? 
		el.offsetLeft+absLeft(el.offsetParent) : el.offsetLeft;
	}

	this.absTop = function absTop(el) {
		return (el.offsetParent)? 
		el.offsetTop+absTop(el.offsetParent) : el.offsetTop;
	}
	
	this.goDirection = function goDirection(dir){
		var form = document.forms["confAssistent"];
		form.elements["dir"].value=dir;
		form.submit();
	}
	
	/*
	 * meinranking indikatoren
	 */
	
	this.getSelectedIndik = function()	{
	    var val = "";
	    val = document.myPop.indikid.options[document.myPop.indikid.options.selectedIndex].value;
		return val;
	}
	
	/** 
	 * aktualisiert das indikatorPopup  indikatorInfo?indikid=41&esb=44&hstyp=
	 */
	this.updateIndikatorBrowser = function(params) {	
		jQuery.fn.colorbox({
			href: checonfig.actionRoot+'indikatorInfo'+params,
			close: checonfig.closeLayer
		})
	}
	
	
	// sortbox ix hat eine neue auswahl.
	// input-feld indikorder aendern und
	// auwahlen zwischen den selects hin-
	// und her tauschen.
	this.order = function(ix){
		var form = document.forms["confAssistent"];
		var sortbox = form.elements["sortbox"+ix];
		var currentorder = form.elements["indikorder"].value.split("-");
		var oldKey = currentorder[ix];
		var newKey = sortbox.options[sortbox.selectedIndex].value;
		var neworder= "";
		for(var i = 0; i < currentorder.length; i++){
			if( i > 0) neworder +="-";
			
			var item = currentorder[i];
			if (item == oldKey)neworder += newKey;
			else if(item == newKey){
				neworder += oldKey;
				this.selectValueInBox(oldKey, form.elements["sortbox"+i]);
			}
			else
				neworder += item;
		}
		// neue reihenfolge speichern
		form.elements["indikorder"].value = neworder;
	}
	
	
	this.selectValueInBox = function(value, box){
		for(var i = 0; i < box.length; i++){
			if(box.options[i].value == value){
				box.selectedIndex = i;
				return;
			}
		}
	}
	
	/**
	Der User hat auf einen Indikator geklickt und 
	der soll in die naechste freie selectbox eingefuegt werden */
	this.selectIndik = function(value){
		var form = document.forms["indikatoren"];
		if(this.insertIfFree(form, "left_f1", value)) return;
		if(this.insertIfFree(form, "left_f2", value)) return;
		if(this.insertIfFree(form, "left_f3", value)) return;
		if(this.insertIfFree(form, "left_f4", value)) return;
		if(this.insertIfFree(form, "left_f5", value)) return;
			
	}
	
	this.insertIfFree = function(form, selectBoxName, value){
		if(form.elements[selectBoxName].selectedIndex == 0){
			this.selectValueInBox(value, form.elements[selectBoxName]);
			return true;
		}
		return false;	
	}
	
	
	/*
	 * toggle login
	 */
	this.toggleLogin = function(loggedIn) {
		if (loggedIn) {
			if(checonfig.pageUrl.indexOf("?" ) == -1 ) {
				window.location = checonfig.pageUrl+'?logout=true';
			}
			else {	
				window.location = checonfig.pageUrl+'&logout=true';
			}
		} 
		else {		
			window.location = checonfig.actionRoot+'?module=Registration&tmpl=p400_meine_wahl';
		}
	 }
	 
	 this.toggleAbc = function(letter) {
		jQuery('#cheabckey_'+CHE.currentLetter).hide();
		jQuery('#cheabckey_'+letter).show();
		CHE.currentLetter=letter;
	 }
	 
	/*
	 * graustufen
	 */
	this.graustufen=false;
	
	this.toggleGraustufen = function(lang, size){
		if(this.graustufen) this.showRankIcons('icons',lang, size);
		else this.showRankIcons('icons_pr',lang, size);
		this.graustufen = ! this.graustufen;
	}
	// graue icons und legende
	this.showRankIcons = function(folder,lang, size){		
		
		var legendImagePath = checonfig.imageRoot+lang+"/legende.gif";
		
		jQuery('.r1').attr("src", checonfig.imageRoot+folder+"/kreis1.png");
		jQuery('.r1_auf').attr("src", checonfig.imageRoot+folder+"/kreis1_auf.png");
		jQuery('.r1_ab').attr("src", checonfig.imageRoot+folder+"/kreis1_ab.png");
		jQuery('.r2').attr("src", checonfig.imageRoot+folder+"/kreis2.png");
		jQuery('.r2_auf').attr("src", checonfig.imageRoot+folder+"/kreis2_auf.png");
		jQuery('.r2_ab').attr("src", checonfig.imageRoot+folder+"/kreis2_ab.png");
		jQuery('.r3').attr("src", checonfig.imageRoot+folder+"/kreis3.png");
		jQuery('.r3_ab').attr("src", checonfig.imageRoot+folder+"/kreis3_ab.png");
		jQuery('.r3_auf').attr("src", checonfig.imageRoot+folder+"/kreis3_auf.png");
		jQuery('.r100').attr("src", checonfig.imageRoot+folder+"/kreis100.png");
		
		
		if(this.graustufen){
			if(jQuery('.legendg').hasClass('_no_auf_ab')) {
				legendImagePath = checonfig.imageRoot+lang+"/legende_no_auf_ab.gif";
			}
			jQuery('.legendg').attr("src", legendImagePath);
		}
		else{
			if(jQuery('.legendg').hasClass('_no_auf_ab')) {
				legendImagePath = checonfig.imageRoot+lang+"/legende_sw_no_auf_ab.gif";
			} else {
				legendImagePath = checonfig.imageRoot+lang+"/legende_sw.gif";
			}
			jQuery('.legendg').attr("src", legendImagePath);
		}
	}

	
// quickranking toggle graustufen

	this.toggleGraustufenQr = function(lang, size){
		if(this.graustufen) this.showRankIconsQr('icons',lang, size);
		else this.showRankIconsQr('icons_pr',lang, size);
		this.graustufen = ! this.graustufen;
	}
	// graue icons und legende
	this.showRankIconsQr = function(folder,lang, size){		
		
		var legendImagePath = checonfig.imageRoot+'quickranking/'+lang+"/qr_legende.gif";
		var indikatorenBox = $('.infoContainer');
		
		if(this.graustufen){
			indikatorenBox.removeClass('pr');
			if(jQuery('.legendg').hasClass('_no_auf_ab')) {
				legendImagePath = checonfig.imageRoot+lang+"/legende_no_auf_ab.gif";
			}
			jQuery('.legendg').attr("src", legendImagePath);
		}
		else{
			indikatorenBox.addClass('pr');
			jQuery('.legendg').attr("src", legendImagePath);
		}
	}
	
	
	
	
	/* 
	 * choose layer 
	 */
	this.changeLocation = function(url) {
		if(url) {
			window.location = url;
		}
		else {
			jQuery("#cboxLoadedContent").css({'height': '330px'})
			jQuery("#chooseErrorMessage").show('slow');
		}
	}
	
	
	
	/*

	// show a simple loading indicator
	var loader = jQuery('<div id="loader"><img src="images/loading.gif" alt="loading..." /></div>')
		.css({position: "relative", top: "1em", left: "25em"})
		.appendTo("body")
		.hide();
	jQuery().ajaxStart(function() {
		loader.show();
	}).ajaxStop(function() {
		loader.hide();
	}).ajaxError(function(a, b, e) {
		throw e;
	});
	*/
	
	/*
	 * helper
	 **********************************************************************************/
	this.removeColorboxFooter = function() {
		jQuery('#cboxTitle, #cboxNext, #cboxBottomLeft, #cboxBottomCenter, #cboxBottomRight, #cboxPrevious, #cboxCurrent').hide();
	}
	// checkt auf [[url]] wird fuer den scopeSelection layer verwendet
	// bei erfolg wird weiter geleitet auf die gefundene url
	this.hasRedirectUrl = function(str) {
		var pattern = /\[\[(.+)\]\]/g;
		var result = pattern.test(str);
		if (result == false) {
		  return false
		}
		else {
			window.location.href = RegExp.$1;
			return true;
		}
	}
	
	// versendet ajax forms und gibt json zurueck json format { "errorMessage, successMessage, redirectUrl ": "value"}
	this.doSubmit = function(form, replace) {
		var formname = form.attr('id');
		var url = form.attr('action');
		var params = jQuery("#"+formname).formToArray();
		jQuery.post(url, params,
			function(data){
				if (data.redirectUrl != null && data.redirectUrl != "") {
					window.location = data.redirectUrl;
				} else if (data.errorMessage != null && data.errorMessage != "") {
					jQuery("#"+formname+"_success").html("").hide();
					jQuery("#"+formname+"_error").html(data.errorMessage).slideDown();
				} else if (data.successMessage != null && data.successMessage != "") {
					jQuery("#"+formname+"_error").html("").hide();
					// wenn replace true dann replace form mit message
					if(replace) {
						jQuery("#"+formname+"_replace").html(data.successMessage);
					}
					else {
						jQuery("#"+formname+"_success").html(data.successMessage).slideDown();
					}
				}
			}, "json"
		);
	}
	
	// newsletter datenschutz input
	this.checkDatenschutz = function(form) {
		
		 if (jQuery('#datenschutz').is(':checked')) {
			 jQuery('#datenschutz_error_message').slideUp();
			 jQuery('#newsletter_send_message').slideDown();
			 form.submit();
			 window.setTimeout('jQuery.fn.colorbox.close()', 4000);
		 } 
		 else {
			 jQuery('#datenschutz_error_message').slideDown();
			 return false;
		 }   
	}
	
	
	this.clearText = function(field){
	    if (field.defaultValue == field.value) field.value = '';
	    else if (field.value == '') field.value = field.defaultValue;
	}
	
	// imagebutton submit und validate
	this.premiumRegistrySubmit = function() {
		jQuery("#premiumRegistry").submit();
		jQuery("#premiumRegistry").validate(CHE.premiumRegistryErrorObject);
	}
	
	
	// new registry 2011
	// imagebutton submit und validate
	this.newRegistrySubmit = function(e) {
		jQuery("#new_registry_form").submit();
		//jQuery("#new_registry_form").validate(CHE.newRegistryErrorObj);
	}
	
	
	this.showJsonResponse = function(redirectUrl, errorMessage, successMessage, containerid, replace) {
		if (redirectUrl != null && redirectUrl != "") {
				window.location = redirectUrl;
		}
		else if (errorMessage != null && errorMessage != "") {
				jQuery("#"+containerid+"_success").html("").hide();
				jQuery("#"+containerid+"_error").html(errorMessage).slideDown();
		} 
		else if (successMessage != null && successMessage != "") {
				jQuery("#"+containerid+"_error").html("").hide();
				// wenn replace true dann replace container mit message
				if(replace) {
					jQuery("#"+containerid+"_replace").html(successMessage);
				}
				else {
					jQuery("#"+containerid+"_success").html(successMessage).slideDown();
				}
		}
	}

	
	this.showJsonResponse = function(redirectUrl, errorMessage, successMessage, containerid) {
		if (redirectUrl != null && redirectUrl != "") {
				window.location = redirectUrl;
		}
		else if (errorMessage != null && errorMessage != "") {
				jQuery("#"+containerid+"_success").html("").hide();
				jQuery("#"+containerid+"_error").html(errorMessage).slideDown();
		} 
		else if (successMessage != null && successMessage != "") {
				jQuery("#"+containerid+"_error").html("").hide();
				// wenn replace true dann replace form mit message
				if(replace) {
					jQuery("#"+containerid+"_replace").html(successMessage);
				}
				else {
					jQuery("#"+containerid+"_success").html(successMessage).slideDown();
				}
		}
	}
	
	// premiumprofil success message  
	this.showResponse = function(responseText, statusText, xhr, $form)  { 
		jQuery('#cheupdateaccount_success').html(responseText).slideDown();	
	} 

	this.showVideoLayer = function() {
		jQuery.fn.colorbox(
			{
				href:'#videobox',
				open: true,
				inline: true,
				opacity: checonfig.modalOpacity,
				speed: checonfig.modalSpeed,
				close: checonfig.closeLayer,
				innerWidth: '550px',
				innerHeight: '310px',
				onCleanup: function() {
					jQuery("#videobox").hide();
				}
			}, function() {
				// ausblenden des title attr und des footers
				CHE.removeColorboxFooter();
				jQuery('#videobox').show();
				return false; 
			}
		);
	}
	
	/*
	* status von checkboxen checken  
	*/
	this.checkboxCheck = function() {
		var n = $("#chewrapper .only_five input:checked").length; 
		if(n < 5) {
			$("#chewrapper .only_five input:enabled").removeAttr('disabled');
			$("#chewrapper .only_five input:checkbox:not(:checked)").removeAttr('disabled');
		}else {
			$("#chewrapper .only_five input:checkbox:not(:checked)").attr('disabled', 'disabled');
		}
	} 
}


var CHE = new CHECLASS();
jQuery(document).ready(function() {
	CHE.init();
	$("#chewrapper .only_five input:checkbox").click(CHE.checkboxCheck); 
})
