jQuery.noConflict();
jQuery(document).ready(function(){
	var defaultPLZVal = jQuery('#defaultPLZ').val();
        
	jQuery.fn.initLoaded = function() {
		jQuery("#selector_filterview").change(function(){
			var id_filterVal = jQuery('#selector_filterview').val();
			jQuery('#cndbl_currentFilter').val(id_filterVal);
                        jQuery.fn.resetFilterView(id_filterVal,0,0);
			
		});
		
		jQuery.fn.initFilterArea = function(){
			jQuery("#selector_branchen").change(function(){
				var id_filterVal = jQuery('#cndbl_currentFilter').val();
				var val1Val = jQuery(this).val();
				var val2Val = jQuery("#selector_bereiche").val();
				jQuery.fn.resetFilterView(id_filterVal,val1Val,val2Val);
			});
			
			jQuery("#selector_bereiche").change(function(){
				var id_filterVal = jQuery('#cndbl_currentFilter').val();
				var val1Val = jQuery("#selector_branchen").val();
				var val2Val = jQuery(this).val();
				jQuery.fn.resetFilterView(id_filterVal,val1Val,val2Val);		
			});
			
			jQuery("#selector_artikeltypen").change(function(){
				var id_filterVal = jQuery('#cndbl_currentFilter').val();
				var val1Val = jQuery(this).val();
				var val2Val = jQuery("#selector_artikelfarben").val();
				jQuery.fn.resetFilterView(id_filterVal,val1Val,val2Val);
			});
			
			jQuery("#selector_artikelnormen").change(function(){
				var id_filterVal = jQuery('#cndbl_currentFilter').val();
				var val1Val = jQuery(this).val();
				var val2Val = jQuery("#selector_artikelfarben").val();
				jQuery.fn.resetFilterView(id_filterVal,val1Val,val2Val);
			});
			
			jQuery("#selector_artikelfarben").change(function(){
				var id_filterVal = jQuery('#cndbl_currentFilter').val();
				var val1Val = 0;
				var val2Val = jQuery(this).val();
			
				switch(id_filterVal){
					case '2':
						//Artikeltyp
						val1Val = jQuery("#selector_artikeltypen").val();
					break;
					case '3':
						//Norm
						val1Val = jQuery("#selector_artikelnormen").val();
					break;
				}
				
				jQuery.fn.resetFilterView(id_filterVal,val1Val,val2Val);
			});
		};
		jQuery(".cndbl_vwRedirectSubmit").click(function(){
			var vwURLTemp = jQuery('#selector_vertragswerk').val();
                        var vwURL = '';
			if(vwURLTemp!=0){
                            var selectorType = jQuery('#vwURLSelectorType').val();
                            
                            switch(selectorType){
                                case '0':
                                    vwURL = vwURLTemp;
                                break;
                                case '1':
                                    //not implemented here
                                break;
                                case '2':
                                    
                                    vwURL = jQuery('#vwURL'+vwURLTemp).val();
                                    
                                break;
                            }
                            jQuery.fn.setVWSelectArea(false,'Sie werden weitergeleitet ...');
                            window.location.href = vwURL;
			}else{
				var plzVal = jQuery('#plz_input').val();
				if(getTrimLen(plzVal)>4 && plzVal!=defaultPLZVal){
					if(!jQuery.fn.isInt(plzVal)){
						jQuery.fn.showPLZError('PLZ ung&uuml;ltig - Bitte &uuml;berpr&uuml;fen Sie Ihre Eingabe.');
					}else{
						jQuery.fn.doPLZRedirect(plzVal);
					}		
				}else{
					jQuery.fn.showPLZError('Bitte geben Sie eine f&uuml;nfstellige PLZ ein oder w&auml;hlen Sie Ihr Vertragswerk aus.');
				}	
			}
		});
		var errTimer;
		jQuery.fn.showPLZError = function(errText) {
			jQuery('#errInfo_plz').css('display','none');
			jQuery('#errInfo_plz').css('opacity','1');
			clearTimeout(errTimer);
			jQuery('#errInfo_plz').html(errText);
			jQuery('#errInfo_plz')
			   .fadeIn('fast', function() 
			   {
				  errTimer = setTimeout( function()
			      {
			      jQuery('#errInfo_plz').fadeOut("fast", function() {
			    		jQuery('#errInfo_plz').html('');
			    	  });
			      }, 3000);
			   });
			
		};
		jQuery('#plz_input').focus(function() {
			var currVal = jQuery(this).val();
			if(currVal==defaultPLZVal){
				jQuery(this).val('');
			}
		});
		
		jQuery('#plz_input').focusout(function() {
			var currValTemp = jQuery(this).val();
			var currVal = jQuery.trim(currValTemp);
			
			if(currVal==''){
				jQuery(this).val(defaultPLZVal);
			}
		});

		
		jQuery("#cndbl_filterSubmit").click(function(){
			 var id_filterVal = jQuery('#cndbl_currentFilter').val();
			 
			 var val1Val = 0;
			 var val2Val = 0;
			 
			 switch(id_filterVal){
			 	case '1':
					//Artikeltyp
					val1Val = jQuery("#selector_branchen").val();
					val2Val = jQuery("#selector_bereiche").val();
					
				break;
				case '2':
					//Artikeltyp
					val1Val = jQuery("#selector_artikeltypen").val();
					val2Val = jQuery("#selector_artikelfarben").val();
				break;
				case '3':
					//Norm
					val1Val = jQuery("#selector_artikelnormen").val();
					val2Val = jQuery("#selector_artikelfarben").val();
				break;
				case '4':
					//Textsuche
					
				break;
			} 
			jQuery.fn.doRedirect(id_filterVal,val1Val,val2Val);
		});
		
		jQuery.fn.setVWSelectArea = function(doEnable,actionInfoText) {
			if(doEnable){
				
				jQuery('#plz_input').attr('disabled', false);
				jQuery('#selector_vertragswerk').attr('disabled', false);
				jQuery('#cndbl_redirect_actionInfo').html('');
				jQuery('#cndbl_plz_loader').css('display','none');
				jQuery('#cndbl_vwRedirect').removeClass('cndbl_vwRedirectSubmit_disabled');
				jQuery('#cndbl_vwRedirect').addClass('cndbl_vwRedirectSubmit');
			}else{
				jQuery('#errInfo_plz').css('display','none');
				jQuery('#errInfo_plz').css('opacity','1');
				clearTimeout(errTimer);
				
				jQuery('#plz_input').attr('disabled', true);
				jQuery('#selector_vertragswerk').attr('disabled', true);
				jQuery('#cndbl_redirect_actionInfo').html(actionInfoText);
				jQuery('#cndbl_plz_loader').css('display','block');
				jQuery('#cndbl_vwRedirect').removeClass('cndbl_vwRedirectSubmit');
				jQuery('#cndbl_vwRedirect').addClass('cndbl_vwRedirectSubmit_disabled');
			}
		};
		jQuery.fn.doPLZRedirect = function(plzInputVal) {
			
			jQuery.fn.setVWSelectArea(false,'Suche Vertragswerk in '+plzInputVal+' ...');
			
			jQuery.ajax({
				type: "post",			
				url: "index.php",		
				async: true, 
				data: {
					eID: "tx_cndbl_web_fe_ajax",	
					piID:3,
					actionID:4,
					dataTypeID:2,
					plzInput:plzInputVal
				},
				dataType: "json",
				success: function(response) {
					if(response!=null && response.length > 0 ) {
						 var isValid = response[0].isValid;
						 if(isValid==true){
							//do the redirect here
							var redirectURL = response[0].redirectURL; 
							jQuery.fn.setVWSelectArea(false,'Sie werden umgeleitet ...');
							window.location.href = redirectURL;
						 }else{
							var errText = response[0].errText;
							//jAlert('Der Vorgang konnte nicht ausgef&uuml;hrt werden.<br/>'+errText,'Responseerror');
							jQuery.fn.showPLZError(errText+'&nbsp;<br/>');
							jQuery.fn.setVWSelectArea(true,'');
						 }
						 
					}else{
						jQuery.fn.showPLZError('Der Vorgang konnte aufgrund eines internen Fehlers nicht ausgef&uuml;hrt werden.'+response);
						//jAlert('Der Vorgang konnte aufgrund eines internen Fehlers nicht ausgef&uuml;hrt werden.', 'Responseerror');
						jQuery.fn.setVWSelectArea(true,'');
					}
					
				},
			   	error: function(x,e) {
					errStatusText = '';
					if(x.status==0){
						errStatusText ='Server Connection Error.';
					}else if(x.status==404){
						errStatusText ='Requested URL not found.';
					}else if(x.status==500){
						errStatusText ='Internal Server Error.';
					}else if(e=='parsererror'){
						errStatusText ='Error:\nParsing JSON Request failed.';
					}else if(e=='timeout'){
						errStatusText ='Request Time out.';
					}else {
						errStatusText ='Unknow Error:\n'+x.responseText;
					}
					//jAlert('Der Vorgang konnte aufgrund eines internen Fehlers nicht ausgef&uuml;hrt werden.<br />'+errStatusText, 'Servererror');
					jQuery.fn.showPLZError('Der Vorgang konnte aufgrund eines internen Fehlers nicht ausgef&uuml;hrt werden.');
					jQuery.fn.setVWSelectArea(true,'');
				}
			});
		
		};
		
		jQuery.fn.doRedirect = function(id_filterVal,val1Val,val2Val) {
			var uid_kollektionstypVal = jQuery('#cndbl_uid_kollektionstyp').val();
			var currentRootVal = jQuery('#cndbl_currentRoot').val();
			var targetPIDVal = jQuery('#cndbl_targetPID'+id_filterVal).val();
			
			jQuery.ajax({
				type: "post",			
				url: "index.php",		
				async: true, 
				data: {
					eID: "tx_cndbl_web_fe_ajax",	
					piID:3,
					actionID:3,
					dataTypeID:2,
					val1:val1Val,
					val2:val2Val,
					uid_kollektionstyp:uid_kollektionstypVal,
					currentRoot:currentRootVal,
					targetPID:targetPIDVal,
					id_filter:id_filterVal
				},
				dataType: "json",
				success: function(response) {
					if(response!=null && response.length > 0) {
						 var isValid = response[0].isValid;
						 if(isValid){
							//do the redirect here
							var redirectURL = response[0].redirectURL; 
							window.location.href = '../'+redirectURL;
						 }else{
							var errText = response[0].errText;
							jAlert('Der Vorgang konnte nicht ausgef&uuml;hrt werden.<br/>'+errText,'Responseerror');	 
						 }
						 
					}else{
						jAlert('Der Vorgang konnte aufgrund eines internen Fehlers nicht ausgef&uuml;hrt werden.', 'Responseerror');
					}
				},
			   	error: function(x,e) {
					errStatusText = '';
					if(x.status==0){
						errStatusText ='Server Connection Error.';
					}else if(x.status==404){
						errStatusText ='Requested URL not found.';
					}else if(x.status==500){
						errStatusText ='Internal Server Error.';
					}else if(e=='parsererror'){
						errStatusText ='Error:\nParsing JSON Request failed.';
					}else if(e=='timeout'){
						errStatusText ='Request Time out.';
					}else {
						errStatusText ='Unknow Error:\n'+x.responseText;
					}
					jAlert('Der Vorgang konnte aufgrund eines internen Fehlers nicht ausgef&uuml;hrt werden.<br />'+errStatusText, 'Servererror');
				}
			});
		
		};
		
		jQuery.fn.resetFilterView = function(id_filterVal,val1Val,val2Val) {
			var uid_kollektionstypVal = jQuery('#cndbl_uid_kollektionstyp').val();
			var currentRootVal = jQuery('#cndbl_currentRoot').val();
			var loaderClass = '#dblboxen_mainLoaderpi1';
			jQuery(loaderClass).css('display','block');
			jQuery('#dblbox_contentReloadArea').css('opacity','0.6');
			jQuery.ajax({
				type: "post",			
				url: "index.php",		
				async: true, 
				data: {
					eID: "tx_cndbl_web_fe_ajax",	
					piID:3,
					actionID:2,
					dataTypeID:1,
					val1:val1Val,
					val2:val2Val,
					uid_kollektionstyp:uid_kollektionstypVal,
					currentRoot:currentRootVal,
					id_filter:id_filterVal
				},
			   	dataType: "text/xml",
				success: function(response) {
					
					if(response!=null && response.length > 0) {
						 var new_content = response;
						/*
						 jQuery("#cndblfilter_mainContent").html(new_content);
						 jQuery.fn.filterInit_byBranche();
						 if(viewLevelVal>0){
								jQuery.fn.initFilterSlider(uid_kollektionVal);
						 }
						 */
						 jQuery('#dblbox_contentReloadArea').html(new_content);
						 jQuery.fn.initFilterArea();			 
					}else{
						jAlert('Der Vorgang konnte aufgrund eines internen Fehlers nicht ausgef&uuml;hrt werden.', 'Responseerror');
					}
					jQuery(loaderClass).css('display','none');
					jQuery('#dblbox_contentReloadArea').css('opacity','1');
				},
			   	error: function(x,e) {
					errStatusText = '';
					if(x.status==0){
						errStatusText ='Server Connection Error.';
					}else if(x.status==404){
						errStatusText ='Requested URL not found.';
					}else if(x.status==500){
						errStatusText ='Internal Server Error.';
					}else if(e=='parsererror'){
						errStatusText ='Error:\nParsing JSON Request failed.';
					}else if(e=='timeout'){
						errStatusText ='Request Time out.';
					}else {
						errStatusText ='Unknow Error:\n'+x.responseText;
					}
					jQuery(loaderClass).css('display','none');
					jQuery('#dblbox_contentReloadArea').css('opacity','1');
					jAlert('Der Vorgang konnte aufgrund eines internen Fehlers nicht ausgef&uuml;hrt werden.<br />'+errStatusText, 'Servererror');
				}
			});
		
		};//end resetFilterView
		

	};
	jQuery.fn.initLoaded();
	jQuery.fn.initFilterArea();
});

