var countcheckedcateg=0;
var countcheckedcateg_bottom=0;
  function disableForm(location,activator){
    var status=true;
    if($("#refopt"+location).attr('checked')==true){
      status=true;
      var elem=obj('ref'+location);
      if(elem.value==elem.defaultValue){
        elem.value='';
        elem.focus();
      }
    }else{
      status=false;
      if(activator=='checkbox'){
          var elem=obj('ref'+location);
          elem.value=elem.defaultValue;
      }
    }
    if(activator=='text'){
      status=true;
    }
    $("#search_form"+location+" input[type=text], #search_form"+location+" input[type=checkbox], #search_form"+location+" input[type=radio], #search_form"+location+" select").each(
        function(e) {
            if(this.id!='refopt'+location && this.id!='ref'+location){
              this.disabled=status;
            }
        }
    );
    if(activator=='text'){
      $("#refopt"+location).attr('checked','true');
    }
  }
  
  function obj(id){
  	return document.getElementById(id);
  }
  
  var myIniFieldVals={};
  
  function formValidator_refinedSearch(location){
	//Current fields' values - To compare width init fields' values - Spring the advanced search box open
	var mySubmitFieldVals={
	  'areamin':$('#areamin'+location).val(),
	  'areamax':$('#areamax'+location).val(),
	  'cert_energ_min':$('#sl_cert_energ_min').val(),
	  'cert_energ_max':$('#sl_cert_energ_max').val(),
	  'nlastdays':$('#nlastdays'+location).val(),
	  'empimo1':$('#empimo1'+location).is(':checked'),
	  'empimo2':$('#empimo2'+location).is(':checked'),
	  'imovj':$('#imovj'+location).is(':checked'),
	  'imobpi':$('#imobpi'+location).is(':checked'),
	  'imoleilao':$('#imoleilao'+location).is(':checked'),
	  'advertiser1':$('#advertiser1'+location).is(':checked'),
	  'advertiser2':$('#advertiser2'+location).is(':checked')
	}
	
	var cert_min='';
	var cert_max='';
	
	//Tranalating Energetic Certification into Numbers so it will be translated into an interval
	var cert_energ_equiv={'A+':8,'A':7,'B':6,'B-':5,'C':4,'D':3,'E':2,'F':1,'G':0};
	
	for(i in cert_energ_equiv){
	  if(i==mySubmitFieldVals['cert_energ_min'])cert_min=cert_energ_equiv[i];
	  if(i==mySubmitFieldVals['cert_energ_max'])cert_max=cert_energ_equiv[i];
	}
	
	var advChanged=false;
	
	for(i in mySubmitFieldVals){
	  if(myIniFieldVals[i]!=mySubmitFieldVals[i]){
		advChanged=true;
		break;
	  }
	}
	
    if(obj('typmax'+location).selectedIndex<obj('typmin'+location).selectedIndex && obj('typmax'+location).selectedIndex>0 && obj('typmin'+location).selectedIndex>0){
    	alert('Tipologia máxima tem que ser maior ou igual à tipologia mínima!');
    	obj('typmax').focus();
    	return false;
    } 
    	
    if(obj('pricemin'+location).value!='Mínimo...' && obj('pricemin'+location).value!='Mínimo ...' && obj('pricemin'+location).value!='' && isNaN(obj('pricemin'+location).value)){
    	alert('O preço mínimo tem que ser um número');
    	obj('pricemin'+location).focus();
    	return false;
    }  
    	
    if(obj('pricemax'+location).value!='Máximo...' && obj('pricemax'+location).value!='Máximo ...' && obj('pricemax'+location).value!='' && isNaN(obj('pricemax'+location).value)){
      alert('O preço máximo tem que ser um número');
    	obj('pricemax'+location).focus();
    	return false;
    }

    if(!isNaN(parseInt(obj('pricemin'+location).value)) && !isNaN(parseInt(obj('pricemax'+location).value)) && (parseInt(obj('pricemax'+location).value)<parseInt(obj('pricemin'+location).value))){
    	alert('Preço máximo tem que ser maior ou igual ao preço mínimo!');
    	obj('pricemax'+location).focus();
    	return false;
    }
	
	if(cert_min>cert_max){
	  alert('A classe energética mínima não pode ser superior à máxima!');
      return false;
	}
	
	if(cert_max<cert_min){
	  alert('A classe energética máxima não pode ser inferior à mínima!');
      return false;
	}
	
    if(document.getElementById('sortBox')){
		var sortSelect=document.getElementById('sortBox').options[document.getElementById('sortBox').selectedIndex].value.split('orderby=')[1];
		sortSelect=sortSelect.split('&')[0];
		createHiddenField(obj('search_form'+location),"orderby",sortSelect);
	}
    
    if(typeof(sch_partner)!='undefined'){
      if(sch_partner!='')createHiddenField(obj('search_form'+location),'ent',sch_partner);
    }
    
    if(typeof(sch_empreendimento)!='undefined'){
      if(sch_empreendimento!='')createHiddenField(obj('search_form'+location),'emp',sch_empreendimento);
    }
	
	if(advChanged==true){$('#advChangedFlag'+location).val('1')};
 	$(':input[value="Mínimo..."],:input[value="Máximo..."],:input[value="Mínima ..."],:input[value="Máxima ..."]').attr('disabled','disabled');
	$(':input[value="Pesquisar por Referência"],:input[value="Palavra Chave"]').attr('disabled','disabled');
	var cnty = $('#count'+location).val();
	if(cnty == 0){
	  $('#count'+location).attr('disabled','disabled');
	}
	
	var dist = $('#dist'+location).val();
	if(dist == 0){
	  $('#dist').attr('disabled','disabled');
	}
	
	var advf = $('#advChangedFlag'+location).val();
	if(advf == ''){
	  $('#advChangedFlag'+location).attr('disabled','disabled');
	}
	
	var freg = $('#realFreg'+location).val();
	if(freg == ''){
	  $('#realFreg'+location).attr('disabled','disabled');
	}
	
	var loc = $('#sch_locality'+location).val();
	if(loc == ''){
	  $('#sch_locality'+location).attr('disabled','disabled');
	}
	
	var loc = $('#idlocality'+location).val();
	if(loc == ''){
	  $('#idlocality'+location).attr('disabled','disabled');
	}
	
	if($('#refopt'+location).is(':checked')){
	  createHiddenField(obj('search_form'+location),"image",'0');
	}
	
	
// 	alert("Teste"+$('#empimo1').value());
//  	$('#empimo1[value=1]').attr('disabled','disabled');;
// 	alert('TESTE: '+ $('#empimo1').val() );
// 	var emp1 = $('#empimo1').val();
// 	var emp2 = $('#empimo2').val();
//============================================================================
// 	var chkemp1 = $('#empimo1').is(':checked');
// 	var chkemp2 = $('#empimo2').is(':checked');
// 	alert('EMP1: '+chkemp1+' Emp2: '+chkemp2);
// 	if((chkemp1 == true) && ( chkemp2 == true)){
// 	  $('#empimo1').attr('disabled','disabled');
// 	  $('#empimo2').attr('disabled','disabled');
// 	}
// 	var chkadv1 = $('#advertiser1').is(':checked');
// 	var chkadv2 = $('#advertiser2').is(':checked');
// 	if((chkadv1 == true)&&( chkadv2 == true)){
// 	  $('#advertiser1').attr('disabled','disabled');
// 	  $('#advertiser2').attr('disabled','disabled');
// 	}
//============================================================================
	
    return true;			
    //if(createHidden()==true)return true;
    //else return false;																																																										
  }
  
  
  
  //Returns value of variable from URL 
  function urlVal(name){
    var originalUrl=window.location.href;
    var noBaseURL=originalUrl.split('?');
    if(noBaseURL[1]!=null){
      var args=noBaseURL[1].split('&');
      var found=false;
                          
      for(var i=0;i<args.length;i++){
        var argsSplitter=args[i].split('=');
        if(argsSplitter[0]==name){
          return replaceChars(argsSplitter[1]);
        }
      }
      return '';
    }
  }
  
  function fillRef(location){
    var refVal=urlVal('reference'); 
    if(refVal!=null){
	if(refVal!='' && refVal.match(/Pesquisar/g)==null){
		obj('ref'+location).value=refVal;
		obj('refopt'+location).checked=true;
		disableForm(location,'text');
	}
    }
  }
  
  //Replaces weird chars
  function replaceChars(string){
    var stringChanged='';
    stringChanged=string.replace('+',' ');
    stringChanged=stringChanged.replace(/%E1/g,'á');
    stringChanged=stringChanged.replace(/#/g,'í');
    stringChanged=stringChanged.replace(/%E3/g,'ã');
    stringChanged=stringChanged.replace(/%E9/g,'é');
    stringChanged=stringChanged.replace(/%20/g,' ');
    stringChanged=stringChanged.replace(/%ED/g,'í');
    stringChanged=stringChanged.replace(/%2F/g,'/');
	stringChanged=stringChanged.replace(/%2C/g,',');
    return stringChanged;
  }
  		  
  function createHiddenField(target,name,value){
    var field=document.createElement('input');
    field.type="hidden";
    field.name=name;
    field.value=value;
    target.appendChild(field);     
  }
       
  function differentSearch(searchType){
    document.form_search.p.value=searchType;
  }
  
  function fillFields(id){
    var elemento=obj(id);
	if(elemento!=null){
	  var originalUrl=window.location.href;
	  var noBaseURL=originalUrl.split('?');
	  if(noBaseURL[1]!=null){
		var args=noBaseURL[1].split('&');
		var found=false;
						  
		for(var i=0;i<args.length;i++){
		  var argsSplitter=args[i].split('=');
		  if(argsSplitter[0]==elemento.name){
			return argsSplitter[1];
		  }
		}
		return false;
	  }else return false;
	}else return false;
  }
      	
  function createHidden(){
    var form=obj('search_form');
  
    if(obj('refopt').checked){
      if(obj('ref') && obj('ref').value!=obj('ref').defaultValue){createHiddenField(form,'ref',obj('ref').value);return true;}
      else{alert('Deve inserir um valor válido de referência se desejar efectuar uma pesquisa por referência'); return false;}
    }else{
      var initLength=form.elements.length;
      for(var i=0;i<initLength;i++){
        
        var name=form.elements[i].name;
        var element=form.elements[i];
        var value=form.elements[i].value;
        var type=form.elements[i].type;
        if(name && !value){
          if(fillFields(element.id)!=false){
            var formatedString=replaceChars(fillFields(element.id));
            element.value=formatedString;
            if(type=="text"){
              element.defaultValue=formatedString;
            }
          }
        }
        if(type!="select-one" && name && value && value!="" && value!="0"){
          if(type=="radio" && element.checked){
            createHiddenField(form,name,value);
          }else if(type=="checkbox" && element.checked){
            createHiddenField(form,name,value);
          }else if(type=="text" && name!="ref" && element.value!=element.defaultValue){
            createHiddenField(form,name,value);
          }
        }else if(type=="select-one" && value!="0"){
            createHiddenField(form,name,value);
        }       
      }
      return true;
    }
    return false;
  }
  
  function blurSpecial(location){
    var elem=obj('ref'+location);
    var checkelem=('refopt'+location);
    if(elem.value == elem.defaultValue){
      checkelem.checked=false;
      disableForm(location,'checkbox')
    }
  }
  
	function searchSort(baseUrl,page,op,urlquery){
		var urlOriginal=window.location.href;
		var sortSelect=document.getElementById('sortBox').options[document.getElementById('sortBox').selectedIndex].value;
		if(urlOriginal.indexOf('gen.pl')>0){
			var baseUrl=urlOriginal.split('?')[0]+'?';
			//alert('BaseURL: '+baseUrl);
			//alert('URLQuery : '+urlquery);
			baseUrl=baseUrl+'gen.pl?p='+page+'&op='+op+'&';
			alert('BaseURL: '+baseUrl);
			var args=[];
			//var urlquery = urlOriginal.split('?')[1];
			if(urlquery != null){
				args=urlquery.split('&');
			}
			//var args=urlOriginal.split('?')[1].split('&');
			var found=false;
			for(i in args){
			  var splitArg=args[i].split('=')[0];
				if(splitArg=='orderby'){
					found=true;
					baseUrl=baseUrl+'orderby='+sortSelect+'&';
				}else{
					if(splitArg=='totalObj')continue;
					else if(splitArg=='totalObjemp')continue;
					else if(splitArg=='totalObjimo')continue;
					else if(splitArg=='offset')continue;
					else if(splitArg=='nprel')continue;
					else if(splitArg=='rtpgs')continue;
					else if(splitArg=='page')continue;
					else if(splitArg=='num')continue;
					else if(splitArg=='cacheid')continue;
					else baseUrl=baseUrl+args[i]+'&';
				}
			}
			if(!found){
				baseUrl=baseUrl+'orderby='+sortSelect;
			}
			if(baseUrl.substr(baseUrl.length-1,baseUrl.length)=='&'){
				baseUrl=baseUrl.substr(0,(baseUrl.length-1));
			}
			window.location.href=baseUrl;
		}else{
			//alert('No gen.pl');
			//It has a question mark, therefore, at least one argument
			if(urlOriginal.indexOf('?')>=0){
				//alert('It has a question mark, therefore, at least one argument');
				var split2=urlOriginal.split('?');
				//It has an ampersand, therefore, more than one argument
				if(split2[1].indexOf('&')>=0){
					//alert('It has an ampersand, therefore, more than one argument');
					var found=false;
					var args=split2[1].split('&');
					//Check if it has the orderby argument
					for(i in args){
						//It has the orderby argument, change it
						if(args[i].split('=')[0]=='orderby'){
							//alert('It has the orderby argument, change it');
							args[i]="orderby="+sortSelect;//Change this arg
							found=true;
							break;
						}
					}
					//If it had the orderby argument
					if(found==true){
						//alert('If it had the orderby argument');
						window.location.href=split2[0]+'?'+args.join('&');
					//If it had no orderby argument
					}else{
						//alert('If it had no orderby argument');
						window.location.href=urlOriginal+'&orderby='+sortSelect;
					}
					
				//It has no more than one arg
				}else{
					//alert('It has no more than one arg');
					//The arg is orderby
					if(urlOriginal.split('?')[1].indexOf('orderby')>=0){
						//alert('The arg is orderby');
						window.location.href=urlOriginal.split('?')[0]+'?orderby='+sortSelect;
					}
					//The arg is NOT orderby
					else{
						//alert('The arg is NOT orderby');
						window.location.href=urlOriginal.split('?')[0]+'?'+urlOriginal.split('?')[1]+'&orderby='+sortSelect;
					}
				}
			}else{
				//alert('Has no args at all');
				//Has no args at all
				window.location.href=urlOriginal+'?orderby='+sortSelect;
			}
		}
	}
  
  jQuery(function(){      
      jQuery('#empimo1,#empimo2,#imovj,#imobpi,#imoleilao').each(function(){
        if(jQuery(this).attr('checked')){
          countcheckedcateg++;
        }
      });
	  
	  jQuery('#empimo1_bottom,#empimo2_bottom,#imovj_bottom,#imobpi_bottom,#imoleilao_bottom').each(function(){
        if(jQuery(this).attr('checked')){
          countcheckedcateg_bottom++;
        }
      });
	  
      jQuery('#empimo1, #empimo2, #imovj, #imobpi, #imoleilao').click(function(){
        if((jQuery(this).attr('checked'))){
            countcheckedcateg++;
        }else countcheckedcateg--;
        if(countcheckedcateg<1){
          jQuery(this).attr('checked',true);
          alert('Tem de seleccionar, pelo menos, uma opção de "Categoria"');
          countcheckedcateg=1;
        }
      })
	  
	  jQuery('#empimo1_bottom, #empimo2_bottom, #imovj_bottom, #imobpi_bottom, #imoleilao_bottom').click(function(){
        if((jQuery(this).attr('checked'))){
            countcheckedcateg_bottom++;
        }else countcheckedcateg_bottom--;
        if(countcheckedcateg_bottom<1){
          jQuery(this).attr('checked',true);
          alert('Tem de seleccionar, pelo menos, uma opção de "Categoria"');
          countcheckedcateg_bottom=1;
        }
      })	  
	  
	  //Init fields - To compare later if changed on submit - Spring the advanced search box open
	  myIniFieldVals={
		  'areamin':$('#areamin').val(),
		  'areamax':$('#areamax').val(),
		  'cert_energ_min':$('#sl_cert_energ_min').val(),
		  'cert_energ_max':$('#sl_cert_energ_max').val(),
		  'nlastdays':$('#nlastdays').val(),
		  'empimo1':$('#empimo1').is(':checked'),
		  'empimo2':$('#empimo2').is(':checked'),
		  'imovj':$('#imovj').is(':checked'),
		  'imobpi':$('#imobpi').is(':checked'),
		  'imoleilao':$('#imoleilao').is(':checked'),
		  'advertiser1':$('#advertiser1').is(':checked'),
		  'advertiser2':$('#advertiser2').is(':checked')
	  }
	  
	  var toggle=true;
	  $("#toggleAdvance, #advSearchLink").click(function (){
		$("#advancedMenu").slideToggle("slow");
		if(toggle==true){
		  toggle=false;
		  $("#buttToggle").attr("src","/images/button_arrowup.gif");
		}else{
		  toggle=true;
		  $("#buttToggle").attr("src","/images/button_arrowdown.gif");
		}
	  });
	  
	  var toggle_bottom=true;
	  $("#toggleAdvance_bottom, #advSearchLink_bottom").click(function (){
		$("#advancedMenu_bottom").slideToggle("slow");
		if(toggle_bottom==true){
		  toggle_bottom=false;
		  $("#buttToggle_bottom").attr("src","/images/button_arrowup.gif");
		}else{
		  toggle_bottom=true;
		  $("#buttToggle_bottom").attr("src","/images/button_arrowdown.gif");
		}
	  });
	  
	  if($('#advChangedFlag').val()=='1'){
		$('#toggleAdvance').trigger('click');
		$('#toggleAdvance_bottom').trigger('click');
	  }
   });						

