/*****************************************************************************************************/
/*                                                                                                   */
/*                                     'ADS SEARCH PANEL' CLASS                                      */          
/*                                                                                                   */
/*****************************************************************************************************/

function SEARCH(){
	var JSObject = this;
	this.type = "searchproduct"; 
	this.arr_inputs = ["_inp_ProductType",
					   "_inp_LocationCity",
					   "_inp_NoRooms",
					   "_inp_NoBedrooms",
					   "_inp_LivingSpaceMin",
					   "_inp_LivingSpaceMax",
					   "_inp_PriceMin",
					   "_inp_PriceMax"];
	
	this.arr_advanced_inputs = ["_inp_LivingTaxMin",
							   "_inp_LivingTaxMax",
							   "_inp_AdvaloremTaxMin",
							   "_inp_AdvaloremTaxMax",
							   "_inp_Exposure",
							   "_inp_NoBathrooms",
							   "_inp_NoTerrasse",
							   "_inp_NoBalconies",
							   "_inp_LandsurfaceMin",
							   "_inp_LandsurfaceMax",
							   "_inp_Furnished",
							   "_inp_Swimmingpool",
							   "_inp_DisabledPersonsAccess",
							   "_inp_Elevator",
							   "_inp_HeatingSource"];
	/*
	this.arr_advanced_inputs = ["_inp_LivingTaxMin",
							   "_inp_LivingTaxMax",
							   "_inp_AdvaloremTaxMin",
							   "_inp_AdvaloremTaxMax",
							   "_inp_RealestateFeeMin",
							   "_inp_RealestateFeeMax",
							   "_inp_ConstructionYearMin",
							   "_inp_ConstructionYearMax",
							   "_inp_Construction",
							   "_inp_Coverage",
							   "_inp_Ownership",
							   "_inp_Standing",
							   "_inp_Exposure",
							   "_inp_NoFloors",
							   "_inp_NoBathrooms",
							   "_inp_NoCellars",
							   "_inp_NoLevels",
							   "_inp_NoTerrasse",
							   "_inp_NoBalconies",
							   "_inp_Othercellars",
							   "_inp_LandsurfaceMin",
							   "_inp_LandsurfaceMax",
							   "_inp_DependenciesSpaceMin",
							   "_inp_DependenciesSpaceMax",
							   "_inp_Furnished",
							   "_inp_Swimmingpool",
							   "_inp_DisabledPersonsAccess",
							   "_inp_Elevator",
							   "_inp_HeatingSource",
							   "_inp_HeatingMachine",
							   "_inp_Hotwater"];
	*/
	
	this.form;
	this.DOMDoc; //document object from thickbox window
	this.logged_in; //if user is logged in: true
	
	this.productType;    //selling or renting
	this.buildingType;   //apartment or house
	
	this.save_btn;
	
	this.search_modify_link;
	this.search_reset_link;
	this.search_alerts_link;
	this.advancedsearch_link;
	
	this.sendValues = false;
	
	
	/*****************************************************************************************************/
	/*                                                                                                   */
	/*                                      FUNCTION INIT                                                */          
	/*                                                                                                   */
	/*****************************************************************************************************/
	this.init = function(){
		/*****************************************************************************************************/
		/*                                                                                                   */
		/*                                          INFORMATION                                              */          
		/*                                                                                                   */
		/*****************************************************************************************************/
		this._inp_ProductType = new INPUTFIELD(this, this.DOMDoc.getElementById(this.type+'_producttype'));
		this._inp_BuildingType = new INPUTFIELD(this, this.DOMDoc.getElementsByName(this.type+'_buildingtype'));
		this._inp_LocationCity = new INPUTFIELD(this, this.DOMDoc.getElementById(this.type+'_locationcity'));
		this._inp_NoRooms = new INPUTFIELD(this, this.DOMDoc.getElementById(this.type+'_norooms'));
		this._inp_NoBedrooms = new INPUTFIELD(this, this.DOMDoc.getElementById(this.type+'_nobedrooms'));
		this._inp_LivingSpaceMin = new INPUTFIELD(this, this.DOMDoc.getElementById(this.type+'_livingspace_min'));
		this._inp_LivingSpaceMax = new INPUTFIELD(this, this.DOMDoc.getElementById(this.type+'_livingspace_max'));
		this._inp_PriceMin = new INPUTFIELD(this, this.DOMDoc.getElementById(this.type+'_price_min'));
		this._inp_PriceMax = new INPUTFIELD(this, this.DOMDoc.getElementById(this.type+'_price_max'));
		
		
		/* advanced fields*/
		this._inp_LivingTaxMin = new INPUTFIELD(this, this.DOMDoc.getElementById(this.type+'_livingtax_min'));
		this._inp_LivingTaxMax = new INPUTFIELD(this, this.DOMDoc.getElementById(this.type+'_livingtax_max'));
		this._inp_AdvaloremTaxMin = new INPUTFIELD(this, this.DOMDoc.getElementById(this.type+'_advaloremtax_min'));
		this._inp_AdvaloremTaxMax = new INPUTFIELD(this, this.DOMDoc.getElementById(this.type+'_advaloremtax_max'));
		//this._inp_RealestateFeeMin = new INPUTFIELD(this, this.DOMDoc.getElementById(this.type+'_realestatefee_min'));
		//this._inp_RealestateFeeMax = new INPUTFIELD(this, this.DOMDoc.getElementById(this.type+'_realestatefee_max'));
		//this._inp_ConstructionYearMin = new INPUTFIELD(this, this.DOMDoc.getElementById(this.type+'_constructionyear_min'));
		//this._inp_ConstructionYearMax = new INPUTFIELD(this, this.DOMDoc.getElementById(this.type+'_constructionyear_max'));
		//this._inp_Construction = new INPUTFIELD(this, this.DOMDoc.getElementById(this.type+'_construction'));
		//this._inp_Coverage = new INPUTFIELD(this, this.DOMDoc.getElementById(this.type+'_coverage'));
		//this._inp_Ownership = new INPUTFIELD(this, this.DOMDoc.getElementById(this.type+'_ownership'));
		//this._inp_Standing = new INPUTFIELD(this, this.DOMDoc.getElementById(this.type+'_standing'));
		this._inp_Exposure = new INPUTFIELD(this, this.DOMDoc.getElementById(this.type+'_exposure'));
		//this._inp_NoFloors = new INPUTFIELD(this, this.DOMDoc.getElementsByName(this.type+'_nofloors'));
		this._inp_NoBathrooms = new INPUTFIELD(this, this.DOMDoc.getElementsByName(this.type+'_nobathrooms'));
		//this._inp_NoCellars = new INPUTFIELD(this, this.DOMDoc.getElementsByName(this.type+'_nocellars'));
		//this._inp_NoLevels = new INPUTFIELD(this, this.DOMDoc.getElementById(this.type+'_nolevels'));
		this._inp_NoTerrasse = new INPUTFIELD(this, this.DOMDoc.getElementsByName(this.type+'_noterrasse'));
		this._inp_NoBalconies = new INPUTFIELD(this, this.DOMDoc.getElementsByName(this.type+'_nobalconies'));
		//this._inp_Othercellars = new INPUTFIELD(this, this.DOMDoc.getElementsByName(this.type+'_othercellars'));
		this._inp_LandsurfaceMin = new INPUTFIELD(this, this.DOMDoc.getElementById(this.type+'_landsurface_min'));
		this._inp_LandsurfaceMax = new INPUTFIELD(this, this.DOMDoc.getElementById(this.type+'_landsurface_max'));
		//this._inp_DependenciesSpaceMin = new INPUTFIELD(this, this.DOMDoc.getElementById(this.type+'_dependenciesspace_min'));
		//this._inp_DependenciesSpaceMax = new INPUTFIELD(this, this.DOMDoc.getElementById(this.type+'_dependenciesspace_max'));
		this._inp_Furnished = new INPUTFIELD(this, this.DOMDoc.getElementsByName(this.type+'_furnished'));
		this._inp_Swimmingpool = new INPUTFIELD(this, this.DOMDoc.getElementsByName(this.type+'_swimmingpool'));
		this._inp_DisabledPersonsAccess = new INPUTFIELD(this, this.DOMDoc.getElementsByName(this.type+'_disabledpersonsaccess'));
		this._inp_Elevator = new INPUTFIELD(this, this.DOMDoc.getElementsByName(this.type+'_elevator'));
		this._inp_HeatingSource = new INPUTFIELD(this, this.DOMDoc.getElementById(this.type+'_heatingsource'));
		//this._inp_HeatingMachine = new INPUTFIELD(this, this.DOMDoc.getElementById(this.type+'_heatingmachine'));
		//this._inp_Hotwater = new INPUTFIELD(this, this.DOMDoc.getElementById(this.type+'_hotwater'));
		
		
		this.save_btn = $('#'+this.type+'_send',this.DOMDoc).get(0);
		
		this.form = this._inp_LocationCity.input.form;
		$("#"+this.form.id,this.DOMDoc).bind("submit",function(){return false;});
		
		//modify, reset, alert links
		this.search_modify_link = $('#results_search_modify',this.DOMDoc).get(0);
		this.search_reset_link = $('#results_search_reset',this.DOMDoc).get(0);
		
		
		//advanced search link
		this.advancedsearch_link = $('#advanced_search_link',this.DOMDoc).get(0);
		
		this.initCreate();
		this.initResultsActions();
		
		
		this.setupTypes();
		
		
		//init animated divs
		animatedcollapse.addDiv('search_form_container');
		animatedcollapse.addDiv('advanced_search_container');
		animatedcollapse.addDiv('search_briefresults_container');
		animatedcollapse.init();
	}
	
	
	/*****************************************************************************************************/
	/*                                                                                                   */
	/*                              FUNCTION SETUP PRODUCT AND BUILDING TYPE                             */          
	/*                                                                                                   */
	/*****************************************************************************************************/
	this.setupTypes = function(){
		
		if (this.productType == null || this.productType == "undefined" || this.productType == ""){
			this.productType = "renting";	
		}
		
		
		if (this.buildingType == null || this.buildingType == "undefined" || this.buildingType == ""){
			this.buildingType = "apartment";
		}
		
		
		$('div[id='+this.type+'_renting]',this.DOMDoc).each(function(){
																	$(this).css('display','none');
																	})
		$('div[id='+this.type+'_selling]',this.DOMDoc).each(function(){
																	$(this).css('display','none');
																	})
		$('div[id='+this.type+'_'+this.productType+']',this.DOMDoc).each(function(){
																	$(this).css('display','block');
																	})
		
		
		$('div[id='+this.type+'_apartment]',this.DOMDoc).each(function(){
																	$(this).css('display','none');
																	})
		$('div[id='+this.type+'_house]',this.DOMDoc).each(function(){
																	$(this).css('display','none');
																	})
		$('div[id='+this.type+'_'+this.buildingType+']',this.DOMDoc).each(function(){
																	$(this).css('display','block');
																	})
	}
	
	
	
	/*****************************************************************************************************/
	/*                                                                                                   */
	/*                                  FUNCTION CREATE PANEL                                            */          
	/*                                                                                                   */
	/*****************************************************************************************************/
	this.initCreate = function(){
		
		/*****************************************************************************************************/
		/*                                                                                                   */
		/*                             INPUT RADIO 'BUILDING TYPE' ACTIONS                                   */          
		/*                                                                                                   */
		/*****************************************************************************************************/
		this._inp_BuildingType.setRequired("yes"); 
		this._inp_BuildingType.setReadySubmit(true);
		var err_1 = JSInterface.MultiLanguage.translate('Building type')+" : "+JSInterface.MultiLanguage.translate('This field is required');
		var errors = [err_1,""];
		this._inp_BuildingType.addErrors(errors);
		this._inp_BuildingType.setErrorsContainer(this.type+"_buildingtype_container");
		this._inp_BuildingType.initActions();
		var BuildingType = this._inp_BuildingType;
		for (var i=0; i<this._inp_BuildingType.input.length; i++){
			this._inp_BuildingType.input[i].onclick = function(){
				BuildingType.hideError();
				BuildingType.setReadySubmit(true);	
				BuildingType.addData(this.value);
				
				$("*[id="+$(this).data("error_row")+"]",JSObject.DOMDoc).each(function(){
																					$(this).removeClass("error");
																					});  
				
				JSObject.buildingType = this.value;
				
				JSObject.setupTypes();
			}
			
			
			if (this._inp_BuildingType.input[i].checked){
				BuildingType.addData(this._inp_BuildingType.input[i].value);	
			}
			
			
			$(this._inp_BuildingType.input[i]).data("error_row",this.type+"_buildingtype_row");
		}
		
		
		
		/*****************************************************************************************************/
		/*                                                                                                   */
		/*                                      INPUT 'LOCATION CITY' ACTIONS                                */          
		/*                                                                                                   */
		/*****************************************************************************************************/
		var input = this._inp_LocationCity.input;
		$(input).data("error_row",this.type+"_locationcity_row");
		this._inp_LocationCity.setRequired("yes"); 
		if (input.value.toLowerCase() != "ex. :  amiens, paris, nice, 80000, 75008, 06600"){
			this._inp_LocationCity.addData(input.value);
		}
		this._inp_LocationCity.setReadySubmit(false);
		this._inp_LocationCity.setValidationType("alphanumeric_extended");
		var extentedChars = String(" .-',()/Ã€Ã?Ã‚Ã„Ã†Ã‡Ã‰ÃˆÃŠÃ‹ÃŒÃ?ÃŽÃ Ã¡Ã¢Ã£Ã¤Ã¦Ã§Ã¨Ã©ÃªÃ«Ã¬Ã­Ã®Ã¯Ã²Ã³Ã´ÃµÃ¶Ã¹Ã»Ã¼ÃºÃ½").split("");
		this._inp_LocationCity.addExtendedChars(extentedChars);
		var err_1 = "Le champ localisation(s) doit &ecirc;tre renseign&eacute;.";
		var err_2 = JSInterface.MultiLanguage.translate('Location city')+" : "+JSInterface.MultiLanguage.translate("Only letters, numbers, spaces, slashes(/), hyphens(-), commas(,), dots(.), apostrophes(') and round brackets are allowed")
		var errors = [err_1,err_2];
		this._inp_LocationCity.addErrors(errors);
		this._inp_LocationCity.setErrorsContainer(this.type+"_locationcity_container");
		this._inp_LocationCity.setBeforeBlurFunction(function(){JSObject.runBeforeBlur(this);});
		this._inp_LocationCity.setAfterBlurFunction(function(){JSObject.runAfterBlur(this);});
		this._inp_LocationCity.initActions();
		this._inp_LocationCity.input.onfocus = function(){
			if (this.value.toLowerCase() == "ex. :  amiens, paris, nice, 80000, 75008, 06600"){
				this.value = "";
				JSObject._inp_LocationCity.addData(this.value);
				$(JSObject._inp_LocationCity.input).addClass('inputTextEdit');
			}
			
		}
		$(JSObject._inp_LocationCity.input).removeClass('inputTextEdit');
		
		/*****************************************************************************************************/
		//ADD AUTOCOMPLETE SCRIPT
		$(this._inp_LocationCity.input).autocomplete(JSInterface.localpath+'ads/ad/locationarr', {
			dataType: 'jsonp',
			width: 280,
			max: 10,
			selectFirst: false,
			multiple: true,
			matchContains: true,
			matchSubset: true,
			filterSubset: true,
			cache: false,
			cacheLength:0,
			highlight: false,
			parse: function(data) {
				var rows = new Array();
				data = data.geonames;
				for(var i=0; i<data.length; i++){
					rows[i] = { data:data[i], value:data[i].fullname, result:data[i].name };
				}
				return rows;
			},
			formatItem: function(row, i, n) {
				return row.fullname;
			},
			formatResult: function(row) {
				return row.name;
			},
			extraParams: {
				limit: 10,
				q: function(){ var newCity = $(JSObject._inp_LocationCity.input).val().split(","); return newCity[newCity.length-1] }
			}
		});
		
		
		
		
		/*****************************************************************************************************/
		/*                                                                                                   */
		/*                                      INPUT 'LIVING SPACE MIN' ACTIONS                             */          
		/*                                                                                                   */
		/*****************************************************************************************************/
		var input = this._inp_LivingSpaceMin.input;
		$(input).data("error_row",this.type+"_livingspace_row");
		this._inp_LivingSpaceMin.setRequired("no"); 
		this._inp_LivingSpaceMin.addData(input.value);
		this._inp_LivingSpaceMin.setReadySubmit(true);
		this._inp_LivingSpaceMin.setValidationType("float");
		var errors = [""];
		this._inp_LivingSpaceMin.addErrors(errors);
		this._inp_LivingSpaceMin.setErrorsContainer(this.type+"_livingspace_container");
		//this._inp_LivingSpaceMin.setBeforeBlurFunction(function(){JSObject.runBeforeBlur(this);});
		//this._inp_LivingSpaceMin.setAfterBlurFunction(function(){JSObject.runAfterBlur(this);});
		this._inp_LivingSpaceMin.decimals = 2;
		this._inp_LivingSpaceMin.maxval = 999999;
		this._inp_LivingSpaceMin.minval = 0;
		this._inp_LivingSpaceMin.setOnKeyUpFunction(function(){
													var LivingSpaceMin = this;
													var LivingSpaceMax = JSObject._inp_LivingSpaceMax;
													
													if (LivingSpaceMax.input.value == "" || LivingSpaceMax.input.value == 0 || isNaN(LivingSpaceMax.input.value)){
														LivingSpaceMax.input.value = LivingSpaceMin.input.value;	
														LivingSpaceMax.addData(parseFloat(LivingSpaceMax.input.value));
													}
													if (parseFloat(LivingSpaceMax.input.value) < parseFloat(this.input.value)){
														LivingSpaceMax.input.value = LivingSpaceMin.input.value;	
														LivingSpaceMax.addData(parseFloat(LivingSpaceMax.input.value));	
													}
													
													LivingSpaceMin.addData(parseFloat(this.input.value));
													
													});
		this._inp_LivingSpaceMin.setOnBlurFunction(function(){
													
													if (this.input.value > this.maxval) this.input.value = this.maxval;
													if (this.input.value < this.minval) this.input.value = this.minval;
													
													var newVal = Math.abs(parseFloat(this.input.value));
													if (isNaN(newVal)) this.input.value = '';
													else this.input.value = newVal;
													
													this.onkeyupF();
													
													});
		this._inp_LivingSpaceMin.initActions();
		
		
		/*****************************************************************************************************/
		/*                                                                                                   */
		/*                                      INPUT 'LIVING SPACE MAX' ACTIONS                             */          
		/*                                                                                                   */
		/*****************************************************************************************************/
		var input = this._inp_LivingSpaceMax.input;
		$(input).data("error_row",this.type+"_livingspace_row");
		this._inp_LivingSpaceMax.setRequired("no"); 
		this._inp_LivingSpaceMax.addData(input.value);
		this._inp_LivingSpaceMax.setReadySubmit(true);
		this._inp_LivingSpaceMax.setValidationType("float");
		var errors = [""];
		this._inp_LivingSpaceMax.addErrors(errors);
		this._inp_LivingSpaceMax.setErrorsContainer(this.type+"_livingspace_container");
		//this._inp_LivingSpaceMax.setBeforeBlurFunction(function(){JSObject.runBeforeBlur(this);});
		//this._inp_LivingSpaceMax.setAfterBlurFunction(function(){JSObject.runAfterBlur(this);});
		this._inp_LivingSpaceMax.decimals = 2;
		this._inp_LivingSpaceMax.maxval = 999999;
		this._inp_LivingSpaceMax.minval = 0;
		this._inp_LivingSpaceMax.setOnKeyUpFunction(function(){
													var LivingSpaceMax = this;
													var LivingSpaceMin = JSObject._inp_LivingSpaceMin;
													
													LivingSpaceMax.addData(parseFloat(this.input.value));
													
													});
		this._inp_LivingSpaceMax.setOnBlurFunction(function(){
													var LivingSpaceMin = JSObject._inp_LivingSpaceMin;
													
													if (this.input.value > this.maxval) this.input.value = this.maxval;
													if (this.input.value < this.minval) this.input.value = this.minval;
													
													var newVal = Math.abs(parseFloat(this.input.value));
													if (isNaN(newVal)) this.input.value = '';
													else this.input.value = newVal;
													
													this.onkeyupF();
													
													if (parseFloat(LivingSpaceMin.input.value) > parseFloat(this.input.value)){
														LivingSpaceMin.input.value = this.input.value;	
														LivingSpaceMin.addData(parseFloat(this.input.value));	
													}
													
													});
		this._inp_LivingSpaceMax.initActions();
		
		
		
		/*****************************************************************************************************/
		/*                                                                                                   */
		/*                                      INPUT 'PRICE MIN' ACTIONS                                    */          
		/*                                                                                                   */
		/*****************************************************************************************************/
		var input = this._inp_PriceMin.input;
		$(input).data("error_row",this.type+"_price_row");
		this._inp_PriceMin.setRequired("no"); 
		this._inp_PriceMin.addData(input.value);
		this._inp_PriceMin.setReadySubmit(true);
		this._inp_PriceMin.setValidationType("float");
		var errors = [""];
		this._inp_PriceMin.addErrors(errors);
		this._inp_PriceMin.setErrorsContainer(this.type+"_price_container");
		//this._inp_PriceMin.setBeforeBlurFunction(function(){JSObject.runBeforeBlur(this);});
		//this._inp_PriceMin.setAfterBlurFunction(function(){JSObject.runAfterBlur(this);});
		this._inp_PriceMin.decimals = 2;
		this._inp_PriceMin.maxval = 9999999;
		this._inp_PriceMin.minval = 0;
		this._inp_PriceMin.setOnKeyUpFunction(function(){
													var PriceMin = this;
													var PriceMax = JSObject._inp_PriceMax;
													
													if (PriceMax.input.value == "" || PriceMax.input.value == 0 || isNaN(PriceMax.input.value)){
														PriceMax.input.value = PriceMin.input.value;	
														PriceMax.addData(parseFloat(PriceMax.input.value));
													}
													if (parseFloat(PriceMax.input.value) < parseFloat(this.input.value)){
														PriceMax.input.value = PriceMin.input.value;	
														PriceMax.addData(parseFloat(PriceMax.input.value));	
													}
													
													PriceMin.addData(parseFloat(this.input.value));
													
													});
		this._inp_PriceMin.setOnBlurFunction(function(){
													
													if (this.input.value > this.maxval) this.input.value = this.maxval;
													if (this.input.value < this.minval) this.input.value = this.minval;
													
													var newVal = Math.abs(parseFloat(this.input.value));
													if (isNaN(newVal)) this.input.value = '';
													else this.input.value = newVal;
													
													this.onkeyupF();
													
													});
		this._inp_PriceMin.initActions();
		
		
		/*****************************************************************************************************/
		/*                                                                                                   */
		/*                                      INPUT 'PRICE MAX' ACTIONS                                    */          
		/*                                                                                                   */
		/*****************************************************************************************************/
		var input = this._inp_PriceMax.input;
		$(input).data("error_row",this.type+"_price_row");
		this._inp_PriceMax.setRequired("no"); 
		this._inp_PriceMax.addData(input.value);
		this._inp_PriceMax.setReadySubmit(true);
		this._inp_PriceMax.setValidationType("float");
		var errors = [""];
		this._inp_PriceMax.addErrors(errors);
		this._inp_PriceMax.setErrorsContainer(this.type+"_price_container");
		//this._inp_PriceMax.setBeforeBlurFunction(function(){JSObject.runBeforeBlur(this);});
		//this._inp_PriceMax.setAfterBlurFunction(function(){JSObject.runAfterBlur(this);});
		this._inp_PriceMax.decimals = 2;
		this._inp_PriceMax.maxval = 9999999;
		this._inp_PriceMax.minval = 0;
		this._inp_PriceMax.setOnKeyUpFunction(function(){
													var PriceMax = this;
													var PriceMin = JSObject._inp_PriceMin;
													
													PriceMax.addData(parseFloat(this.input.value));
													
													});
		this._inp_PriceMax.setOnBlurFunction(function(){
													var PriceMin = JSObject._inp_PriceMin;
													
													if (this.input.value > this.maxval) this.input.value = this.maxval;
													if (this.input.value < this.minval) this.input.value = this.minval;
													
													var newVal = Math.abs(parseFloat(this.input.value));
													if (isNaN(newVal)) this.input.value = '';
													else this.input.value = newVal;
													
													this.onkeyupF();
													
													if (parseFloat(PriceMin.input.value) > parseFloat(this.input.value)){
														PriceMin.input.value = this.input.value;	
														PriceMin.addData(parseFloat(this.input.value));	
													}
													
													});
		this._inp_PriceMax.initActions();
		
		
		
		/*****************************************************************************************************/
		/*                                            ADVANCED FIELDS                                        */
		/*****************************************************************************************************/
		
		/*****************************************************************************************************/
		/*                                                                                                   */
		/*                                      INPUT 'LIVING TAX MIN' ACTIONS                               */          
		/*                                                                                                   */
		/*****************************************************************************************************/
		var input = this._inp_LivingTaxMin.input;
		$(input).data("error_row",this.type+"_livingtax_row");
		this._inp_LivingTaxMin.setRequired("no"); 
		this._inp_LivingTaxMin.addData(input.value);
		this._inp_LivingTaxMin.setReadySubmit(true);
		this._inp_LivingTaxMin.setValidationType("float");
		var errors = [""];
		this._inp_LivingSpaceMin.addErrors(errors);
		this._inp_LivingSpaceMin.setErrorsContainer(this.type+"_livingtax_container");
		//this._inp_LivingSpaceMin.setBeforeBlurFunction(function(){JSObject.runBeforeBlur(this);});
		//this._inp_LivingSpaceMin.setAfterBlurFunction(function(){JSObject.runAfterBlur(this);});
		this._inp_LivingTaxMin.decimals = 2;
		this._inp_LivingTaxMin.maxval = 999999;
		this._inp_LivingTaxMin.minval = 0;
		this._inp_LivingTaxMin.setOnKeyUpFunction(function(){
													var LivingTaxMin = this;
													var LivingTaxMax = JSObject._inp_LivingTaxMax;
													
													if (LivingTaxMax.input.value == "" || LivingTaxMax.input.value == 0 || isNaN(LivingTaxMax.input.value)){
														LivingTaxMax.input.value = LivingTaxMin.input.value;	
														LivingTaxMax.addData(parseFloat(LivingTaxMax.input.value));
													}
													if (parseFloat(LivingTaxMax.input.value) < parseFloat(this.input.value)){
														LivingTaxMax.input.value = LivingTaxMin.input.value;	
														LivingTaxMax.addData(parseFloat(LivingTaxMax.input.value));	
													}
													
													LivingTaxMin.addData(parseFloat(this.input.value));
													
													});
		this._inp_LivingTaxMin.setOnBlurFunction(function(){
													
													if (this.input.value > this.maxval) this.input.value = this.maxval;
													if (this.input.value < this.minval) this.input.value = this.minval;
													
													var newVal = Math.abs(parseFloat(this.input.value));
													if (isNaN(newVal)) this.input.value = '';
													else this.input.value = newVal;
													
													this.onkeyupF();
													
													});
		this._inp_LivingTaxMin.initActions();
		
		
		/*****************************************************************************************************/
		/*                                                                                                   */
		/*                                      INPUT 'LIVING TAX MAX' ACTIONS                               */          
		/*                                                                                                   */
		/*****************************************************************************************************/
		var input = this._inp_LivingTaxMax.input;
		$(input).data("error_row",this.type+"_livingtax_row");
		this._inp_LivingTaxMax.setRequired("no"); 
		this._inp_LivingTaxMax.addData(input.value);
		this._inp_LivingTaxMax.setReadySubmit(true);
		this._inp_LivingTaxMax.setValidationType("float");
		var errors = [""];
		this._inp_LivingTaxMax.addErrors(errors);
		this._inp_LivingTaxMax.setErrorsContainer(this.type+"_livingtax_container");
		//this._inp_LivingTaxMax.setBeforeBlurFunction(function(){JSObject.runBeforeBlur(this);});
		//this._inp_LivingTaxMax.setAfterBlurFunction(function(){JSObject.runAfterBlur(this);});
		this._inp_LivingTaxMax.decimals = 2;
		this._inp_LivingTaxMax.maxval = 999999;
		this._inp_LivingTaxMax.minval = 0;
		this._inp_LivingTaxMax.setOnKeyUpFunction(function(){
													var LivingTaxMax = this;
													var LivingTaxMin = JSObject._inp_LivingTaxMin;
													
													LivingTaxMax.addData(parseFloat(this.input.value));
													
													});
		this._inp_LivingTaxMax.setOnBlurFunction(function(){
													var LivingTaxMin = JSObject._inp_LivingTaxMin;
													
													if (this.input.value > this.maxval) this.input.value = this.maxval;
													if (this.input.value < this.minval) this.input.value = this.minval;
													
													var newVal = Math.abs(parseFloat(this.input.value));
													if (isNaN(newVal)) this.input.value = '';
													else this.input.value = newVal;
													
													this.onkeyupF();
													
													if (parseFloat(LivingTaxMin.input.value) > parseFloat(this.input.value)){
														LivingTaxMin.input.value = this.input.value;	
														LivingTaxMin.addData(parseFloat(this.input.value));	
													}
													
													});
		this._inp_LivingTaxMax.initActions();
		
		
		
		/*****************************************************************************************************/
		/*                                                                                                   */
		/*                                      INPUT 'ADVALOREM TAX MIN' ACTIONS                            */          
		/*                                                                                                   */
		/*****************************************************************************************************/
		var input = this._inp_AdvaloremTaxMin.input;
		$(input).data("error_row",this.type+"_advaloremtax_row");
		this._inp_AdvaloremTaxMin.setRequired("no"); 
		this._inp_AdvaloremTaxMin.addData(input.value);
		this._inp_AdvaloremTaxMin.setReadySubmit(true);
		this._inp_AdvaloremTaxMin.setValidationType("float");
		var errors = [""];
		this._inp_AdvaloremTaxMin.addErrors(errors);
		this._inp_AdvaloremTaxMin.setErrorsContainer(this.type+"_advaloremtax_container");
		//this._inp_AdvaloremTaxMin.setBeforeBlurFunction(function(){JSObject.runBeforeBlur(this);});
		//this._inp_AdvaloremTaxMin.setAfterBlurFunction(function(){JSObject.runAfterBlur(this);});
		this._inp_AdvaloremTaxMin.decimals = 2;
		this._inp_AdvaloremTaxMin.maxval = 999999;
		this._inp_AdvaloremTaxMin.minval = 0;
		this._inp_AdvaloremTaxMin.setOnKeyUpFunction(function(){
													var AdvaloremTaxMin = this;
													var AdvaloremTaxMax = JSObject._inp_AdvaloremTaxMax;
													
													if (AdvaloremTaxMax.input.value == "" || AdvaloremTaxMax.input.value == 0 || isNaN(AdvaloremTaxMax.input.value)){
														AdvaloremTaxMax.input.value = AdvaloremTaxMin.input.value;	
														AdvaloremTaxMax.addData(parseFloat(AdvaloremTaxMax.input.value));
													}
													if (parseFloat(AdvaloremTaxMax.input.value) < parseFloat(this.input.value)){
														AdvaloremTaxMax.input.value = AdvaloremTaxMin.input.value;	
														AdvaloremTaxMax.addData(parseFloat(AdvaloremTaxMax.input.value));	
													}
													
													AdvaloremTaxMin.addData(parseFloat(this.input.value));
													
													});
		this._inp_AdvaloremTaxMin.setOnBlurFunction(function(){
													
													if (this.input.value > this.maxval) this.input.value = this.maxval;
													if (this.input.value < this.minval) this.input.value = this.minval;
													
													var newVal = Math.abs(parseFloat(this.input.value));
													if (isNaN(newVal)) this.input.value = '';
													else this.input.value = newVal;
													
													this.onkeyupF();
													
													});
		this._inp_AdvaloremTaxMin.initActions();
		
		
		/*****************************************************************************************************/
		/*                                                                                                   */
		/*                                      INPUT 'ADVALOREM TAX MAX' ACTIONS                            */          
		/*                                                                                                   */
		/*****************************************************************************************************/
		var input = this._inp_AdvaloremTaxMax.input;
		$(input).data("error_row",this.type+"_advaloremtax_row");
		this._inp_AdvaloremTaxMax.setRequired("no"); 
		this._inp_AdvaloremTaxMax.addData(input.value);
		this._inp_AdvaloremTaxMax.setReadySubmit(true);
		this._inp_AdvaloremTaxMax.setValidationType("float");
		var errors = [""];
		this._inp_AdvaloremTaxMax.addErrors(errors);
		this._inp_AdvaloremTaxMax.setErrorsContainer(this.type+"_advaloremtax_container");
		//this._inp_AdvaloremTaxMax.setBeforeBlurFunction(function(){JSObject.runBeforeBlur(this);});
		//this._inp_AdvaloremTaxMax.setAfterBlurFunction(function(){JSObject.runAfterBlur(this);});
		this._inp_AdvaloremTaxMax.decimals = 2;
		this._inp_AdvaloremTaxMax.maxval = 999999;
		this._inp_AdvaloremTaxMax.minval = 0;
		this._inp_AdvaloremTaxMax.setOnKeyUpFunction(function(){
													var AdvaloremTaxMax = this;
													var AdvaloremTaxMin = JSObject._inp_AdvaloremTaxMin;
													
													AdvaloremTaxMax.addData(parseFloat(this.input.value));
													
													});
		this._inp_AdvaloremTaxMax.setOnBlurFunction(function(){
													var AdvaloremTaxMin = JSObject._inp_AdvaloremTaxMin;
													
													if (this.input.value > this.maxval) this.input.value = this.maxval;
													if (this.input.value < this.minval) this.input.value = this.minval;
													
													var newVal = Math.abs(parseFloat(this.input.value));
													if (isNaN(newVal)) this.input.value = '';
													else this.input.value = newVal;
													
													this.onkeyupF();
													
													if (parseFloat(AdvaloremTaxMin.input.value) > parseFloat(this.input.value)){
														AdvaloremTaxMin.input.value = this.input.value;	
														AdvaloremTaxMin.addData(parseFloat(this.input.value));	
													}
													
													});
		this._inp_AdvaloremTaxMax.initActions();
		
		
		
		/*****************************************************************************************************/
		/*                                                                                                   */
		/*                                      INPUT 'REALESTATE FEE MIN' ACTIONS                           */          
		/*                                                                                                   */
		/*****************************************************************************************************/
		/*var input = this._inp_RealestateFeeMin.input;
		$(input).data("error_row",this.type+"_realestatefee_row");
		this._inp_RealestateFeeMin.setRequired("no"); 
		this._inp_RealestateFeeMin.addData(input.value);
		this._inp_RealestateFeeMin.setReadySubmit(true);
		this._inp_RealestateFeeMin.setValidationType("float");
		var errors = [""];
		this._inp_RealestateFeeMin.addErrors(errors);
		this._inp_RealestateFeeMin.setErrorsContainer(this.type+"_realestatefee_container");
		//this._inp_RealestateFeeMin.setBeforeBlurFunction(function(){JSObject.runBeforeBlur(this);});
		//this._inp_RealestateFeeMin.setAfterBlurFunction(function(){JSObject.runAfterBlur(this);});
		this._inp_RealestateFeeMin.decimals = 2;
		this._inp_RealestateFeeMin.maxval = 999999;
		this._inp_RealestateFeeMin.minval = 0;
		this._inp_RealestateFeeMin.setOnKeyUpFunction(function(){
													var RealestateFeeMin = this;
													var RealestateFeeMax = JSObject._inp_RealestateFeeMax;
													
													if (RealestateFeeMax.input.value == "" || RealestateFeeMax.input.value == 0 || isNaN(RealestateFeeMax.input.value)){
														RealestateFeeMax.input.value = RealestateFeeMin.input.value;	
														RealestateFeeMax.addData(parseFloat(RealestateFeeMax.input.value));
													}
													if (parseFloat(RealestateFeeMax.input.value) < parseFloat(this.input.value)){
														RealestateFeeMax.input.value = RealestateFeeMin.input.value;	
														RealestateFeeMax.addData(parseFloat(RealestateFeeMax.input.value));	
													}
													
													RealestateFeeMin.addData(parseFloat(this.input.value));
													
													});
		this._inp_RealestateFeeMin.setOnBlurFunction(function(){
													
													if (this.input.value > this.maxval) this.input.value = this.maxval;
													if (this.input.value < this.minval) this.input.value = this.minval;
													
													var newVal = Math.abs(parseFloat(this.input.value));
													if (isNaN(newVal)) this.input.value = '';
													else this.input.value = newVal;
													
													this.onkeyupF();
													
													});
		this._inp_RealestateFeeMin.initActions();*/
		
		
		/*****************************************************************************************************/
		/*                                                                                                   */
		/*                                      INPUT 'REALESTATE FEE MAX' ACTIONS                           */          
		/*                                                                                                   */
		/*****************************************************************************************************/
		/*var input = this._inp_RealestateFeeMax.input;
		$(input).data("error_row",this.type+"_realestatefee_row");
		this._inp_RealestateFeeMax.setRequired("no"); 
		this._inp_RealestateFeeMax.addData(input.value);
		this._inp_RealestateFeeMax.setReadySubmit(true);
		this._inp_RealestateFeeMax.setValidationType("float");
		var errors = [""];
		this._inp_RealestateFeeMax.addErrors(errors);
		this._inp_RealestateFeeMax.setErrorsContainer(this.type+"_realestatefee_container");
		//this._inp_RealestateFeeMax.setBeforeBlurFunction(function(){JSObject.runBeforeBlur(this);});
		//this._inp_RealestateFeeMax.setAfterBlurFunction(function(){JSObject.runAfterBlur(this);});
		this._inp_RealestateFeeMax.decimals = 2;
		this._inp_RealestateFeeMax.maxval = 999999;
		this._inp_RealestateFeeMax.minval = 0;
		this._inp_RealestateFeeMax.setOnKeyUpFunction(function(){
													var RealestateFeeMax = this;
													var RealestateFeeMin = JSObject._inp_RealestateFeeMin;
													
													RealestateFeeMax.addData(parseFloat(this.input.value));
													
													});
		this._inp_RealestateFeeMax.setOnBlurFunction(function(){
													var RealestateFeeMin = JSObject._inp_RealestateFeeMin;
													
													if (this.input.value > this.maxval) this.input.value = this.maxval;
													if (this.input.value < this.minval) this.input.value = this.minval;
													
													var newVal = Math.abs(parseFloat(this.input.value));
													if (isNaN(newVal)) this.input.value = '';
													else this.input.value = newVal;
													
													this.onkeyupF();
													
													if (parseFloat(RealestateFeeMin.input.value) > parseFloat(this.input.value)){
														RealestateFeeMin.input.value = this.input.value;	
														RealestateFeeMin.addData(parseFloat(this.input.value));	
													}
													
													});
		this._inp_RealestateFeeMax.initActions();*/
		
		
		
		/*****************************************************************************************************/
		/*                                                                                                   */
		/*                                  INPUT 'CONSTRUCTION YEAR MIN' ACTIONS                            */          
		/*                                                                                                   */
		/*****************************************************************************************************/
		/*var input = this._inp_ConstructionYearMin.input;
		$(input).data("error_row",this.type+"_constructionyear_row");
		this._inp_ConstructionYearMin.setRequired("no"); 
		this._inp_ConstructionYearMin.addData(input.value);
		this._inp_ConstructionYearMin.setReadySubmit(true);
		this._inp_ConstructionYearMin.setValidationType("float");
		var errors = [""];
		this._inp_ConstructionYearMin.addErrors(errors);
		this._inp_ConstructionYearMin.setErrorsContainer(this.type+"_constructionyear_container");
		//this._inp_ConstructionYearMin.setBeforeBlurFunction(function(){JSObject.runBeforeBlur(this);});
		//this._inp_ConstructionYearMin.setAfterBlurFunction(function(){JSObject.runAfterBlur(this);});
		this._inp_ConstructionYearMin.decimals = 2;
		this._inp_ConstructionYearMin.maxval = new Date().getFullYear();
		this._inp_ConstructionYearMin.minval = 0;
		this._inp_ConstructionYearMin.setOnKeyUpFunction(function(){
													var ConstructionYearMin = this;
													var ConstructionYearMax = JSObject._inp_ConstructionYearMax;
													
													if (ConstructionYearMax.input.value == "" || ConstructionYearMax.input.value == 0 || isNaN(ConstructionYearMax.input.value)){
														ConstructionYearMax.input.value = ConstructionYearMin.input.value;	
														ConstructionYearMax.addData(parseFloat(ConstructionYearMax.input.value));
													}
													if (parseFloat(ConstructionYearMax.input.value) < parseFloat(this.input.value)){
														ConstructionYearMax.input.value = ConstructionYearMin.input.value;	
														ConstructionYearMax.addData(parseFloat(ConstructionYearMax.input.value));	
													}
													
													ConstructionYearMin.addData(parseFloat(this.input.value));
													
													});
		this._inp_ConstructionYearMin.setOnBlurFunction(function(){
													
													if (this.input.value > this.maxval) this.input.value = this.maxval;
													if (this.input.value < this.minval) this.input.value = this.minval;
													
													var newVal = Math.abs(parseFloat(this.input.value));
													if (isNaN(newVal)) this.input.value = '';
													else this.input.value = newVal;
													
													this.onkeyupF();
													
													});
		this._inp_ConstructionYearMin.initActions();*/
		
		
		/*****************************************************************************************************/
		/*                                                                                                   */
		/*                                    INPUT 'CONSTRUCTION YEAR MAX' ACTIONS                          */          
		/*                                                                                                   */
		/*****************************************************************************************************/
		/*var input = this._inp_ConstructionYearMax.input;
		$(input).data("error_row",this.type+"_constructionyear_row");
		this._inp_ConstructionYearMax.setRequired("no"); 
		this._inp_ConstructionYearMax.addData(input.value);
		this._inp_ConstructionYearMax.setReadySubmit(true);
		this._inp_ConstructionYearMax.setValidationType("float");
		var errors = [""];
		this._inp_ConstructionYearMax.addErrors(errors);
		this._inp_ConstructionYearMax.setErrorsContainer(this.type+"_constructionyear_container");
		//this._inp_ConstructionYearMax.setBeforeBlurFunction(function(){JSObject.runBeforeBlur(this);});
		//this._inp_ConstructionYearMax.setAfterBlurFunction(function(){JSObject.runAfterBlur(this);});
		this._inp_ConstructionYearMax.decimals = 2;
		this._inp_ConstructionYearMax.maxval = new Date().getFullYear();
		this._inp_ConstructionYearMax.minval = 0;
		this._inp_ConstructionYearMax.setOnKeyUpFunction(function(){
													var ConstructionYearMax = this;
													var ConstructionYearMin = JSObject._inp_ConstructionYearMin;
													
													ConstructionYearMax.addData(parseFloat(this.input.value));
													
													});
		this._inp_ConstructionYearMax.setOnBlurFunction(function(){
													var ConstructionYearMin = JSObject._inp_ConstructionYearMin;
													
													if (this.input.value > this.maxval) this.input.value = this.maxval;
													if (this.input.value < this.minval) this.input.value = this.minval;
													
													var newVal = Math.abs(parseFloat(this.input.value));
													if (isNaN(newVal)) this.input.value = '';
													else this.input.value = newVal;
													
													this.onkeyupF();
													
													if (parseFloat(ConstructionYearMin.input.value) > parseFloat(this.input.value)){
														ConstructionYearMin.input.value = this.input.value;	
														ConstructionYearMin.addData(parseFloat(this.input.value));	
													}
													
													});
		this._inp_ConstructionYearMax.initActions();*/
		
		
		
		/*****************************************************************************************************/
		/*                                                                                                   */
		/*                                     INPUT 'LAND SURFACE MIN' ACTIONS                              */          
		/*                                                                                                   */
		/*****************************************************************************************************/
		var input = this._inp_LandsurfaceMin.input;
		$(input).data("error_row",this.type+"_landsurfacer_row");
		this._inp_LandsurfaceMin.setRequired("no"); 
		this._inp_LandsurfaceMin.addData(input.value);
		this._inp_LandsurfaceMin.setReadySubmit(true);
		this._inp_LandsurfaceMin.setValidationType("float");
		var errors = [""];
		this._inp_LandsurfaceMin.addErrors(errors);
		this._inp_LandsurfaceMin.setErrorsContainer(this.type+"_landsurface_container");
		//this._inp_LandsurfaceMin.setBeforeBlurFunction(function(){JSObject.runBeforeBlur(this);});
		//this._inp_LandsurfaceMin.setAfterBlurFunction(function(){JSObject.runAfterBlur(this);});
		this._inp_LandsurfaceMin.decimals = 2;
		this._inp_LandsurfaceMin.maxval = 999999;
		this._inp_LandsurfaceMin.minval = 0;
		this._inp_LandsurfaceMin.setOnKeyUpFunction(function(){
													var LandsurfaceMin = this;
													var LandsurfaceMax = JSObject._inp_LandsurfaceMax;
													
													if (LandsurfaceMax.input.value == "" || LandsurfaceMax.input.value == 0 || isNaN(LandsurfaceMax.input.value)){
														LandsurfaceMax.input.value = LandsurfaceMin.input.value;	
														LandsurfaceMax.addData(parseFloat(LandsurfaceMax.input.value));
													}
													if (parseFloat(LandsurfaceMax.input.value) < parseFloat(this.input.value)){
														LandsurfaceMax.input.value = LandsurfaceMin.input.value;	
														LandsurfaceMax.addData(parseFloat(LandsurfaceMax.input.value));	
													}
													
													LandsurfaceMin.addData(parseFloat(this.input.value));
													
													});
		this._inp_LandsurfaceMin.setOnBlurFunction(function(){
													
													if (this.input.value > this.maxval) this.input.value = this.maxval;
													if (this.input.value < this.minval) this.input.value = this.minval;
													
													var newVal = Math.abs(parseFloat(this.input.value));
													if (isNaN(newVal)) this.input.value = '';
													else this.input.value = newVal;
													
													this.onkeyupF();
													
													});
		this._inp_LandsurfaceMin.initActions();
		
		
		/*****************************************************************************************************/
		/*                                                                                                   */
		/*                                      INPUT 'LAND SURFACE MAX' ACTIONS                             */          
		/*                                                                                                   */
		/*****************************************************************************************************/
		var input = this._inp_LandsurfaceMax.input;
		$(input).data("error_row",this.type+"_landsurface_row");
		this._inp_LandsurfaceMax.setRequired("no"); 
		this._inp_LandsurfaceMax.addData(input.value);
		this._inp_LandsurfaceMax.setReadySubmit(true);
		this._inp_LandsurfaceMax.setValidationType("float");
		var errors = [""];
		this._inp_LandsurfaceMax.addErrors(errors);
		this._inp_LandsurfaceMax.setErrorsContainer(this.type+"_landsurface_container");
		//this._inp_LandsurfaceMax.setBeforeBlurFunction(function(){JSObject.runBeforeBlur(this);});
		//this._inp_LandsurfaceMax.setAfterBlurFunction(function(){JSObject.runAfterBlur(this);});
		this._inp_LandsurfaceMax.decimals = 2;
		this._inp_LandsurfaceMax.maxval = 999999;
		this._inp_LandsurfaceMax.minval = 0;
		this._inp_LandsurfaceMax.setOnKeyUpFunction(function(){
													var LandsurfaceMax = this;
													var LandsurfaceMin = JSObject._inp_LandsurfaceMin;
													
													LandsurfaceMax.addData(parseFloat(this.input.value));
													
													});
		this._inp_LandsurfaceMax.setOnBlurFunction(function(){
													var LandsurfaceMin = JSObject._inp_LandsurfaceMin;
													
													if (this.input.value > this.maxval) this.input.value = this.maxval;
													if (this.input.value < this.minval) this.input.value = this.minval;
													
													var newVal = Math.abs(parseFloat(this.input.value));
													if (isNaN(newVal)) this.input.value = '';
													else this.input.value = newVal;
													
													this.onkeyupF();
													
													if (parseFloat(LandsurfaceMin.input.value) > parseFloat(this.input.value)){
														LandsurfaceMin.input.value = this.input.value;	
														LandsurfaceMin.addData(parseFloat(this.input.value));	
													}
													
													});
		this._inp_LandsurfaceMax.initActions();
		
		
		
		/*****************************************************************************************************/
		/*                                                                                                   */
		/*                                  INPUT 'DEPENDENCIES SPACE MIN' ACTIONS                           */          
		/*                                                                                                   */
		/*****************************************************************************************************/
		/*var input = this._inp_DependenciesSpaceMin.input;
		$(input).data("error_row",this.type+"_dependenciesspace_row");
		this._inp_DependenciesSpaceMin.setRequired("no"); 
		this._inp_DependenciesSpaceMin.addData(input.value);
		this._inp_DependenciesSpaceMin.setReadySubmit(true);
		this._inp_DependenciesSpaceMin.setValidationType("float");
		var errors = [""];
		this._inp_DependenciesSpaceMin.addErrors(errors);
		this._inp_DependenciesSpaceMin.setErrorsContainer(this.type+"_dependenciesspace_container");
		//this._inp_DependenciesSpaceMin.setBeforeBlurFunction(function(){JSObject.runBeforeBlur(this);});
		//this._inp_DependenciesSpaceMin.setAfterBlurFunction(function(){JSObject.runAfterBlur(this);});
		this._inp_DependenciesSpaceMin.decimals = 2;
		this._inp_DependenciesSpaceMin.maxval = 999999;
		this._inp_DependenciesSpaceMin.minval = 0;
		this._inp_DependenciesSpaceMin.setOnKeyUpFunction(function(){
													var DependenciesSpaceMin = this;
													var DependenciesSpaceMax = JSObject._inp_DependenciesSpaceMax;
													
													if (DependenciesSpaceMax.input.value == "" || DependenciesSpaceMax.input.value == 0 || isNaN(DependenciesSpaceMax.input.value)){
														DependenciesSpaceMax.input.value = DependenciesSpaceMin.input.value;	
														DependenciesSpaceMax.addData(parseFloat(DependenciesSpaceMax.input.value));
													}
													if (parseFloat(DependenciesSpaceMax.input.value) < parseFloat(this.input.value)){
														DependenciesSpaceMax.input.value = DependenciesSpaceMin.input.value;	
														DependenciesSpaceMax.addData(parseFloat(DependenciesSpaceMax.input.value));	
													}
													
													DependenciesSpaceMin.addData(parseFloat(this.input.value));
													
													});
		this._inp_DependenciesSpaceMin.setOnBlurFunction(function(){
													
													if (this.input.value > this.maxval) this.input.value = this.maxval;
													if (this.input.value < this.minval) this.input.value = this.minval;
													
													var newVal = Math.abs(parseFloat(this.input.value));
													if (isNaN(newVal)) this.input.value = '';
													else this.input.value = newVal;
													
													this.onkeyupF();
													
													});
		this._inp_DependenciesSpaceMin.initActions();*/
		
		
		/*****************************************************************************************************/
		/*                                                                                                   */
		/*                                INPUT 'DEPENDENCIES SPACE MAX' ACTIONS                             */          
		/*                                                                                                   */
		/*****************************************************************************************************/
		/*var input = this._inp_DependenciesSpaceMax.input;
		$(input).data("error_row",this.type+"_dependenciesspace_row");
		this._inp_DependenciesSpaceMax.setRequired("no"); 
		this._inp_DependenciesSpaceMax.addData(input.value);
		this._inp_DependenciesSpaceMax.setReadySubmit(true);
		this._inp_DependenciesSpaceMax.setValidationType("float");
		var errors = [""];
		this._inp_DependenciesSpaceMax.addErrors(errors);
		this._inp_DependenciesSpaceMax.setErrorsContainer(this.type+"_dependenciesspace_container");
		//this._inp_DependenciesSpaceMax.setBeforeBlurFunction(function(){JSObject.runBeforeBlur(this);});
		//this._inp_DependenciesSpaceMax.setAfterBlurFunction(function(){JSObject.runAfterBlur(this);});
		this._inp_DependenciesSpaceMax.decimals = 2;
		this._inp_DependenciesSpaceMax.maxval = 999999;
		this._inp_DependenciesSpaceMax.minval = 0;
		this._inp_DependenciesSpaceMax.setOnKeyUpFunction(function(){
													var DependenciesSpaceMax = this;
													var DependenciesSpaceMin = JSObject._inp_DependenciesSpaceMin;
													
													DependenciesSpaceMax.addData(parseFloat(this.input.value));
													
													});
		this._inp_DependenciesSpaceMax.setOnBlurFunction(function(){
													var DependenciesSpaceMin = JSObject._inp_DependenciesSpaceMin;
													
													if (this.input.value > this.maxval) this.input.value = this.maxval;
													if (this.input.value < this.minval) this.input.value = this.minval;
													
													var newVal = Math.abs(parseFloat(this.input.value));
													if (isNaN(newVal)) this.input.value = '';
													else this.input.value = newVal;
													
													this.onkeyupF();
													
													if (parseFloat(DependenciesSpaceMin.input.value) > parseFloat(this.input.value)){
														DependenciesSpaceMin.input.value = this.input.value;	
														DependenciesSpaceMin.addData(parseFloat(this.input.value));	
													}
													
													});
		this._inp_DependenciesSpaceMax.initActions();*/
		
		
		
		
		/*****************************************************************************************************/
		/*                                                                                                   */
		/*                                      ADVANCED SEARCH LINK                                         */          
		/*                                                                                                   */
		/*****************************************************************************************************/
		$(this.advancedsearch_link).click(function(){
			
			var advancedsearch_status = document.getElementById('searchproduct_advanced');
			var icon = $('#advanced_search_icon',JSObject.DOMDoc).get(0);
			
			if (advancedsearch_status.value == 'true'){
				var src = icon.src;
				src = src.replace(/btnMore_up/g,'btnMore_down');
				icon.src = src;
				
				advancedsearch_status.value = 'false';
			}
			else{
				var src = icon.src;
				src = src.replace(/btnMore_down/g,'btnMore_up');
				icon.src = src;	
				
				advancedsearch_status.value = 'true';
			}
			
			animatedcollapse.toggle('advanced_search_container');
			
		});
		
		
		$('#advanced_search_icon',JSObject.DOMDoc).click(function(){
			
			$(JSObject.advancedsearch_link).trigger('click');
			
		})
		
		
		
		/*****************************************************************************************************/
		/*                                                                                                   */
		/*                                    INPUT BUTTON 'SEARCH' ACTIONS                                  */          
		/*                                                                                                   */
		/*****************************************************************************************************/
		var save_mouseDown = false;
		$(this.save_btn).mousedown(function(){
										
										if (JSObject.sendValues == true){ return;}
										
										save_mouseDown = true;
										$(this).unbind("mouseleave");
										$(this).bind("mouseleave",function(){
																		   
																		   //this.form.focus();
																		   
																		   })
										
										
										$(JSObject.DOMDoc.body).mouseup(function(){
																		 
																		 if (save_mouseDown == true){
																			save_mouseDown = false;
																			$(JSObject.save_btn).unbind("mouseleave");
																			$(JSObject.DOMDoc.body).unbind("mouseup");
																			JSObject.sendValues = true;
																			JSObject.validate();
																		 }
																		   })
										
									});
		
		
		
		$(this.save_btn).mouseup(function(){
										if (JSObject.sendValues == true) return;
										
										if (save_mouseDown == true){
											save_mouseDown = false;
											$(this).unbind("mouseleave");
											$(JSObject.DOMDoc.body).unbind("mouseup");
											JSObject.sendValues = true;
											JSObject.validate();
										}
									});
		
		
	}
	
	
	
	/*****************************************************************************************************/
	/*                                                                                                   */
	/*                               FUNCTION INIT RESULTS LINKS ACTIONS                                 */          
	/*                                                                                                   */
	/*****************************************************************************************************/
	this.initResultsActions = function(){
		
		
		/*****************************************************************************************************/
		/*                                                                                                   */
		/*                                     LINK MODIFY SEARCH                                            */          
		/*                                                                                                   */
		/*****************************************************************************************************/
		$(this.search_modify_link).click(function(){
			animatedcollapse.show('search_form_container');									  
		})	
		
		
		
		/*****************************************************************************************************/
		/*                                                                                                   */
		/*                                      LINK RESET SEARCH                                            */          
		/*                                                                                                   */
		/*****************************************************************************************************/
		$(this.search_reset_link).click(function(){
			$.ajax({
						type: "POST",
						url: JSInterface.localpath+"ads/ad/resetsearchsession",
						cache: false,
						async: true,
						success: function(response){
							window.document.location = JSInterface.localpath+'index/index/displaysearch/1';
						},
						error: function(){
							window.document.location = JSInterface.localpath+'index/index/displaysearch/1';
						}
					});
		})
		
		
		/*****************************************************************************************************/
		/*                                                                                                   */
		/*                                     LINK ADD SEARCH ALERT                                         */          
		/*                                                                                                   */
		/*****************************************************************************************************/
		$('a[id="results_search_alerts"]',this.DOMDoc).each(function(){
			
			$(this).click(function(){
			
				//if user is logged in, then save alert
				if (JSObject.logged_in && JSObject.logged_in == true){
					$.ajax({
							type: "POST",
							url: JSInterface.localpath+"usersalerts/useralert/add",
							cache: false,
							async: true,
							success: function(response){
								alert(JSInterface.MultiLanguage.translate('The alert was successfully saved','alert'));
							},
							error: function(){
								alert(JSInterface.MultiLanguage.translate('Our server is busy. Please try again later','alert'));
							}
						});	
				}
				else{
					alert(JSInterface.MultiLanguage.translate('You must be logged in before adding this alert','alert'));
				}
			});
			
		})
	}
	
	
	/*****************************************************************************************************/
	/*                                                                                                   */
	/*                          FUNCTION RUN BEFORE BLUR  -  INPUTS                                      */          
	/*                                                                                                   */
	/*****************************************************************************************************/
	this.runBeforeBlur = function(obj){
		if (obj.validation_type == "integer" || obj.validation_type == "float"){
			//
		}
		else{
			//
		}
	}
	
	/*****************************************************************************************************/
	/*                                                                                                   */
	/*                              FUNCTION RUN AFTER BLUR   -  INPUTS                                  */          
	/*                                                                                                   */
	/*****************************************************************************************************/
	this.runAfterBlur = function(obj){
		if (obj.validation_type == "integer" || obj.validation_type == "float"){
			if (obj.submit_ready == false){
				$("*[id="+$(obj.input).data("error_row")+"]",JSObject.DOMDoc).each(function(){
																					$(this).addClass("error");
																					});
			}
			else{
				$("*[id="+$(obj.input).data("error_row")+"]",JSObject.DOMDoc).each(function(){
																					$(this).removeClass("error");
																					});
			}
			
			if (isNaN(obj.input.value) || $.trim(obj.input.value) == "") obj.input.value = obj.minval;
			
			if (parseFloat(obj.input.value) > obj.maxval) obj.input.value = obj.maxval;
			if (parseFloat(obj.input.value) < obj.minval) obj.input.value = obj.minval;
		}
		else{
			if (obj.submit_ready == false && obj.data.length > 0){
				$("*[id="+$(obj.input).data("error_row")+"]",JSObject.DOMDoc).each(function(){
																					$(this).addClass("error");
																					});
			}
			else{
				$("*[id="+$(obj.input).data("error_row")+"]",JSObject.DOMDoc).each(function(){
																					$(this).removeClass("error");
																					});
			}
		}
		
	}
	
	
	
	
	
	/*****************************************************************************************************/
	/*                                                                                                   */
	/*                                 FUNCTION VALIDATE INFORMATION                                     */          
	/*                                                                                                   */
	/*****************************************************************************************************/
	this.validate = function(){
		
		var newArrInputs = [];
		newArrInputs = $.merge(newArrInputs,this.arr_inputs);
		newArrInputs = $.merge(newArrInputs,this.arr_advanced_inputs);
		
		var countErrors = 0;
		// aflam cate erori sunt in formular
		for (var i=0; i<newArrInputs.length; i++){
			var obj = this[newArrInputs[i]];
			//alert(this.arr_inputs[i])
			if (obj.data.length == 0 && obj.required=="yes"){
				obj.displayError(obj.errors[0]);
				obj.setReadySubmit(false);
				countErrors++;
				//alert("1 "+this.arr_inputs[i]);
			}
			else if (obj.submit_ready == false){ 
				countErrors++;
				//alert("3 "+this.arr_inputs[i]);
			}
			
			if (obj.submit_ready == false){
				$("*[id="+$(obj.input).data("error_row")+"]",JSObject.DOMDoc).each(function(){
																					$(this).addClass("error");
																					});	
			}
			else{
				$("*[id="+$(obj.input).data("error_row")+"]",JSObject.DOMDoc).each(function(){
																					$(this).removeClass("error");
																					});	
			}
		}
		
		//alert(countErrors);
		if (countErrors == 0){
			//server validation
			this.sendData();
		}
		else{
			JSObject.sendValues = false;
		}
	}
	
	
	/*****************************************************************************************************/
	/*                                                                                                   */
	/*                                      FUNCTION SUBMIT FORM                                         */          
	/*                                                                                                   */
	/*****************************************************************************************************/
	this.submitForm = function(){
		
		//return JSInterface.AjaxUpload.dosubmit(JSObject.form, {'onStart' : JSObject.startUploadingData, 'onComplete' : JSObject.completeUploadingData});
		return true;
	}
	
	
	/*****************************************************************************************************/
	/*                                                                                                   */
	/*                                      FUNCTION SEND DATA                                           */          
	/*                                                                                                   */
	/*****************************************************************************************************/
	this.sendData = function(){
		$("#"+this.form.id,this.DOMDoc).unbind("submit");
		$("#"+this.form.id,this.DOMDoc).bind("submit",function(){JSObject.submitForm();});
		$("#"+this.form.id,this.DOMDoc).submit();
		JSObject.sendValues = false;
		
	}
	
}
