// JavaScript Document
var PropertyTypeEnum = {
    singleFamily:1,
    townhouseCondo:2,
    highriseCondominium:6,
    residentialLotsLand:3,
    multiFamily:4,
    homesAndOrAcreage:5
};

var buyLeaseEnum = {none:0,buy:1,lease:2};
var PropertyTypeFlag = {
    singleFamilyHomes:1,
    townhouseCondo:2,
    highriseCondominium:4,
    residentialLots:8,
    multiFamily:16,
    homesAndOrAcreage:32
};

var formGroups = {
    propertyType:{
        wrappers:[
            {
                id:'buyLease',
                ptFilter:63,
                blFilter:3,
                inputs:[
                    {id:'forSaleBuy',name:'For_Sale',defVal:true},
                    {id:'forSaleLease',name:'For_Sale',defVal:null}
                ]
            },
            {
                id:'buy_wrpr',
                ptFilter:63,
                blFilter:1,
                inputs:[
                    {id:'pcSFH',name:'Property_Class_ID',defVal:null},
                    {id:'pcTC',name:'Property_Class_ID',defVal:null},
                    {id:'pcHC',name:'Property_Class_ID',defVal:null},
                    {id:'pcLand',name:'Property_Class_ID',defVal:null},
                    {id:'pcMFH',name:'Property_Class_ID',defVal:null},
                    {id:'pcAcreage',name:'Property_Class_ID',defVal:null}
                ]
            },
			  {
                id:'lease_wrpr',
                ptFilter:63,
                blFilter:2,
                inputs:[
                    {id:'prop_type_sgl',name:'PROP_TYPE',defVal:null},
                    {id:'prop_type_thc',name:'PROP_TYPE',defVal:null},
                    {id:'prop_type_hir',name:'PROP_TYPE',defVal:null},
                    {id:'prop_type_lot',name:'PROP_TYPE',defVal:null},
                    {id:'prop_type_mlt',name:'PROP_TYPE',defVal:null},
                    {id:'prop_type_acr',name:'PROP_TYPE',defVal:null}
                ]
            },
				{
					 id:'property_status_wrpr',
					 ptFilter:63,
                blFilter:3,
                inputs:[
                    {id:'property_status',name:'PROPERTY_STATUS',defVal:null}
					]
				}
        ]
    },
    location:{
        groupEnum:{mls_area:0,location:1,school_dist_id:2,subdivision:3,keymap:4,zip_code:5},
        wrappers:[
            {
                id:'mls_area_wrpr',
                ptFilter:63,
                blFilter:3,
                inputs:[
                    {id:'mls_area',name:'MLS_AREA',defVal:null}
                ]
            },
            {
                id:'location_wrpr',
                ptFilter:63,
                blFilter:3,
                inputs:[
                    {id:'location',name:'LOCATION',defVal:null}
                ]
            },
            {
                id:'school_dist_id_wrpr',
                ptFilter:63,
                blFilter:3,
                inputs:[
                    {id:'school_dist_id',name:'SCHOOL_DIST_ID',defVal:''}
                ]
            },
            {
                id:'subdivision_wrpr',
                ptFilter:63,
                blFilter:3,
                inputs:[
                    {id:'subdivision',name:'SUBDIVISION',defVal:''},
                    {id:'subdivision2',name:'SUBDIVISION2',defVal:''},
                    {id:'subdivision3',name:'SUBDIVISION3',defVal:''}
                ]
            },
            {
                id:'keymap_wrpr',
                ptFilter:63,
                blFilter:3,
                inputs:[
                    {id:'keymap',name:'KEYMAP',defVal:''},
                    {id:'keymap2',name:'KEYMAP2',defVal:''},
                    {id:'keymap3',name:'KEYMAP3',defVal:''}
                ]
            },
            {
                id:'zip_code_wrpr',
                ptFilter:63,
                blFilter:3,
                inputs:[
                    {id:'zip_code',name:'ZIP_CODE',defVal:''}
                ]
            }
        ]
    },
    criteria:{
        wrappers:[
            {
                id:'listing_price_wrpr',
                ptFilter:63,
                blFilter:1,
                inputs:[
                    {id:'listing_price_min',name:'LISTING_PRICE_MIN',defVal:[]},
                    {id:'listing_price_max',name:'LISTING_PRICE_MAX',defVal:[]}
                ]
            },
            {
                id:'lease_price_wrpr',
                ptFilter:63,
                blFilter:2,
                inputs:[
                    {id:'lease_price_min',name:'LEASE_PRICE_MIN',defVal:[]},
                    {id:'lease_price_max',name:'LEASE_PRICE_MAX',defVal:[]}
                ]
            },
            {
                id:'estimatedAcreage_wrpr',
                ptFilter:40,
                blFilter:3,
                inputs:[
                    {id:'acreage',name:'ACREAGE',defVal:''}
                ]
            },
            {
                id:'roadFrontage_wrpr',
                ptFilter:32,
                blFilter:3,
                inputs:[
                    {id:'ac_road_frontage',name:'AC_ROAD_FRONTAGE',defVal:''}
                ]
            },
            {
                id:'ac_house_wrpr',
                ptFilter:32,
                blFilter:3,
                inputs:[
                    {id:'ac_house',name:'AC_HOUSE',defVal:''}
                ]
            },
            {
                id:'bedroom_num_wrpr',
                ptFilter:39,
                blFilter:3,
                inputs:[
                    {id:'bedroom_num',name:'BEDROOM_NUM',defVal:''}
                ]
            },
            {
                id:'full_bath_num_wrpr',
                ptFilter:39,
                blFilter:3,
                inputs:[
                    {id:'full_bath_num',name:'FULL_BATH_NUM',defVal:''}
                ]
            },
            {
                id:'squre_feet_wrpr',
                ptFilter:55,
                blFilter:3,
                inputs:[
                    {id:'squre_feet_min',name:'SQURE_FEET_MIN',defVal:''},
                    {id:'squre_feet_max',name:'SQURE_FEET_MAX',defVal:''}
                ]
            },
            {
                id:'lotsize_wrpr',
                ptFilter:19,
                blFilter:3,
                inputs:[
                    {id:'lotsize_min',name:'LOTSIZE_MIN',defVal:''},
                    {id:'lotsize_max',name:'LOTSIZE_MAX',defVal:''}
                ]
            },
            {
                id:'garage_wrpr',
                ptFilter:35,
                blFilter:3,
                inputs:[
                    {id:'garage_num',name:'GARAGE_NUM',defVal:''},
                    {id:'garage_desc',name:'GARAGE_DESC',defVal:''},
					{id:'roombeddesc',name:'ROOMBEDDESC',defVal:''}
                ]
            },
            {
                id:'buildingName_wrpr',
                ptFilter:4,
                blFilter:3,
                inputs:[
                    {id:'buildingname',name:'BuildingName',defVal:''}
                ]
            },
            {
                id:'buildingType_wrpr',
                ptFilter:16,
                blFilter:3,
                inputs:[
                    {id:'mfac_building_type',name:'MFAC_BUILDING_TYPE',defVal:''}
                ]
            },
            {
                id:'loft_wrpr',
                ptFilter:4,
                blFilter:3,
                inputs:[
                    {id:'loft',name:'LOFT',defVal:''}
                ]
            },
            {
                id:'stories_wrpr',
                ptFilter:19,
                blFilter:3,
                inputs:[
                    {id:'stories',name:'STORIES',defVal:''}
                ]
            },
				{
                id:'quicksearch_wrpr',
                ptFilter:63,
                blFilter:3,
                inputs:[
                    {id:'mlnum',name:'MLNUM',defVal:''},
						  {id:'address',name:'ADDRESS',defVal:''}
                ]
            },
				
            {
                id:'unitLevel_wrpr',
                ptFilter:2,
                blFilter:3,
                inputs:[
                    {id:'hrcd_unit_level',name:'HRCD_UNIT_LEVEL',defVal:''}
                ]
            },
            {
                id:'year_built_wrpr',
                ptFilter:55,
                blFilter:3,
                inputs:[
					{id:'year_built_min',name:'YEAR_BUILT_MIN',defVal:''},
                    {id:'year_built_max',name:'YEAR_BUILT_MAX',defVal:''}
               ]
            },
				{
                id:'sort_wrpr',
                ptFilter:63,
                blFilter:1,
                inputs:[
                    {id:'sort',name:'SORT',defVal:''}
                ]
            },
            {
                id:'new_constr_wrpr',
                ptFilter:7,
                blFilter:3,
                inputs:[
                    {id:'new_constr',name:'NEW_CONSTR',defVal:''}
                ]
            }
        ]
    },
    other:{
        wrappers:[
            {
                id:'amenities_wrpr',
                inputs:[]
            },
            {
                id:'private_pool_wrpr',
                ptFilter:35,
                blFilter:3,
                inputs:[
                  {id:'private_pool_yes',name:'PRIVATE_POOL',defVal:null},
						{id:'private_pool_no',name:'PRIVATE_POOL',defVal:null}
                ]
            },
            {
                id:'area_pool_wrpr',
                ptFilter:63,
                blFilter:3,
                inputs:[
                    {id:'area_pool',name:'AREA_POOL',defVal:null}
                ]
            },
            {
                id:'areatennis_wrpr',
                ptFilter:31,
                blFilter:3,
                inputs:[
                    {id:'areatennis',name:'AREATENNIS',defVal:null}
                ]
            },
            {
                id:'sprinkle_wrpr',
                ptFilter:19,
                blFilter:3,
                inputs:[
                    {id:'sprinkle',name:'SPRINKLE',defVal:null}
                ]
            },
            {
                id:'patiodeck_wrpr',
                ptFilter:19,
                blFilter:3,
                inputs:[
                    {id:'patiodeck',name:'PATIODECK',defVal:null}
                ]
            },
            {
                id:'partyRoom_wrpr',
                ptFilter:4,
                blFilter:3,
                inputs:[
                    {id:'partyroom',name:'PARTYROOM',defVal:null}
                ]
            },
            {
                id:'dish_wrpr',
                ptFilter:4,
                blFilter:3,
                inputs:[
                    {id:'dish',name:'DISH',defVal:null}
                ]
            },
            {
                id:'spahottub_wrpr',
                ptFilter:23,
                blFilter:3,
                inputs:[
                    {id:'spahottub',name:'SPAHOTTUB',defVal:null}
                ]
            },
				{
                id:'pets_wrpr',
                ptFilter:55,
                blFilter:2,
                inputs:[
                    {id:'pets_yes',name:'PETS',defVal:null},
						  {id:'pets_no',name:'PETS',defVal:null},
						  {id:'pets_cbc',name:'PETS',defVal:null}
                ]
            },
            {
                id:'ld_wrpr',
                inputs:[]
            },
            {
                id:'ingolfcom_wrpr',
                ptFilter:9,
                blFilter:3,
                inputs:[
                    {id:'ingolfcom',name:'INGOLFCOM',defVal:null}
                ]
            },
            {
                id:'ongolfcourse_wrpr',
                ptFilter:9,
                blFilter:3,
                inputs:[
                    {id:'ongolfcourse',name:'ONGOLFCOURSE',defVal:null}
                ]
            },
            {
                id:'waterview_wrpr',
                ptFilter:63,
                blFilter:3,
                inputs:[
                    {id:'waterview',name:'WATERVIEW',defVal:null}
                ]
            },
            {
                id:'waterfront_wrpr',
                ptFilter:63,
                blFilter:3,
                inputs:[
                    {id:'waterfront',name:'WATERFRONT',defVal:null}
                ]
            },
            {
                id:'culdesac_wrpr',
                ptFilter:9,
                blFilter:3,
                inputs:[
                    {id:'culdesac',name:'CULDESAC',defVal:null}
                ]
            },
            {
                id:'corner_wrpr',
                ptFilter:9,
                blFilter:3,
                inputs:[
                    {id:'corner',name:'CORNER',defVal:null}
                ]
            },
            {
                id:'wooded_wrpr',
                ptFilter:25,
                blFilter:3,
                inputs:[
                    {id:'wooded',name:'WOODED',defVal:null}
                ]
            },
            {
                id:'lake_wrpr',
                ptFilter:63,
                blFilter:3,
                inputs:[
                    {id:'lake',name:'LAKE',defVal:null}
                ]
            },
            {
                id:'listingFeatures_wrpr',
                inputs:[]
            },
            {
                id:'virtual_tours_wrpr',
                ptFilter:63,
                blFilter:3,
                inputs:[
                    {id:'virtual_tours',name:'VIRTUAL_TOURS',defVal:null}
                ]
            },
            {
                id:'open_houses_wrpr',
                ptFilter:23,
                blFilter:3,
                inputs:[
                    {id:'open_houses',name:'OPEN_HOUSES',defVal:null}
                ]
            },
			{
                id:'stype_wrpr',
                ptFilter:63,
                blFilter:3,
                inputs:[
                    {id:'stype',name:'STYPE',defVal:null},
						  {id:'pricereduced',name:'PriceReduced',defVal:null}
                ]
            },
			{
                id:'ownership_wrpr',
                ptFilter:7,
                blFilter:1,
                inputs:[
                    {id:'ownership',name:'OWNERSHIP',defVal:null}
                ]
            },
			{
                id:'forcl_wrpr',
                ptFilter:63,
                blFilter:1,
                inputs:[
                    {id:'forcl',name:'FORCL',defVal:null}
                ]
            }
        ]
    }
}

function setProductTypeVisibility(){

    var fsb = Ext.get('forSaleBuy');
    var fsl = Ext.get('forSaleLease');
    
    var pcSFH = Ext.get('pcSFH');
    var pcTC = Ext.get('pcTC');
    var pcLand = Ext.get('pcLand');
    var pcMFH = Ext.get('pcMFH');
    var pcAcreage = Ext.get('pcAcreage');
    var pcHC = Ext.get('pcHC');
    
	var pcSFH2 = Ext.get('prop_type_sgl');
    var pcTC2 = Ext.get('prop_type_thc');
    var pcLand2 = Ext.get('prop_type_lot');
    var pcMFH2 = Ext.get('prop_type_mlt');
    var pcAcreage2 = Ext.get('prop_type_acr');
    var pcHC2 = Ext.get('prop_type_hir');
	
    var blFlag = 0;
    var ptFlag = 0;
	
	if(fsb.dom.checked){
		Ext.get('lease_price_min').dom.selectedIndex = 0;
		Ext.get('lease_price_max').dom.selectedIndex = 0;
		var inputs = Ext.DomQuery.select('input', Ext.get('lease_wrpr').dom);
		for (var i=0; i < inputs.length; i++ ) {
			inputs[i].checked = false;
		}
	}
    if(fsl.dom.checked){
		Ext.get('listing_price_min').dom.selectedIndex = 0;
		Ext.get('listing_price_max').dom.selectedIndex = 0;
		var inputs = Ext.DomQuery.select('input', Ext.get('buy_wrpr').dom);
		for (var i=0; i < inputs.length; i++ ) {
			inputs[i].checked = false;
		}
	}
	
    blFlag = blFlag | ( fsb.dom.checked ? buyLeaseEnum.buy : 0 )
    blFlag = blFlag | ( fsl.dom.checked ? buyLeaseEnum.lease : 0 )
   
   	if (blFlag == 1) {
		ptFlag = ptFlag | ( pcSFH.dom.checked ? PropertyTypeFlag.singleFamilyHomes : 0 )
		ptFlag = ptFlag | ( pcTC.dom.checked ? PropertyTypeFlag.townhouseCondo : 0 )
		ptFlag = ptFlag | ( pcLand.dom.checked ? PropertyTypeFlag.residentialLots : 0 )
		ptFlag = ptFlag | ( pcMFH.dom.checked ? PropertyTypeFlag.multiFamily : 0 )
		ptFlag = ptFlag | ( pcAcreage.dom.checked ? PropertyTypeFlag.homesAndOrAcreage : 0 )
		ptFlag = ptFlag | ( pcHC.dom.checked ? PropertyTypeFlag.highriseCondominium : 0 )
	} else {
		ptFlag = ptFlag | ( pcSFH2.dom.checked ? PropertyTypeFlag.singleFamilyHomes : 0 )
		ptFlag = ptFlag | ( pcTC2.dom.checked ? PropertyTypeFlag.townhouseCondo : 0 )
		ptFlag = ptFlag | ( pcLand2.dom.checked ? PropertyTypeFlag.residentialLots : 0 )
		ptFlag = ptFlag | ( pcMFH2.dom.checked ? PropertyTypeFlag.multiFamily : 0 )
		ptFlag = ptFlag | ( pcAcreage2.dom.checked ? PropertyTypeFlag.homesAndOrAcreage : 0 )
		ptFlag = ptFlag | ( pcHC2.dom.checked ? PropertyTypeFlag.highriseCondominium : 0 )
	}
	
    set_ptFrmPnl(blFlag, ptFlag);
    set_locFrmPnl(blFlag, ptFlag);
    set_lcFrmPnl(blFlag, ptFlag);
    set_ldaFrmPnl(blFlag, ptFlag);
   
    function set_ptFrmPnl(blf, ptf){
        var grp = formGroups.propertyType;
        for(var index=0;index<grp.wrappers.length;index++){
            showHideWrpr(grp.wrappers[index], blFlag, ptFlag);
        }
    }

    function set_locFrmPnl(blf, ptf){
        var grp = formGroups.location;
        for(var index=0;index<grp.wrappers.length;index++){
            showHideWrpr(grp.wrappers[index], blFlag, ptFlag);
        }
    }

    function set_lcFrmPnl(){
        var grp = formGroups.criteria;
        for(var index=0;index<grp.wrappers.length;index++){
            showHideWrpr(grp.wrappers[index], blFlag, ptFlag);
        }
    }

    function set_ldaFrmPnl(){
        var grp = formGroups.other;
        for(var index=0;index<grp.wrappers.length;index++){
            if(grp.wrappers[index].ptFilter != undefined ){
                showHideWrpr(grp.wrappers[index], blFlag, ptFlag);
            }
        }
        
    }
    
    function showHideWrpr(ctrl, blf, ptf){
        
        var isDisplayed = false;
        if(!ctrl){ return isDisplayed; }
        
        var wrprEl;
        wrprEl = Ext.get(ctrl.id);
        
        if(!wrprEl){ return isDisplayed; }
        wrprEl.setVisibilityMode( Ext.Element.DISPLAY );
        
        if( (ctrl.blFilter & blf) && ((ctrl.ptFilter & ptf || ptf == 0)) ){
            wrprEl.setVisible(true);
            isDisplayed = true;
        }else{
            wrprEl.setVisible(false);
        }
        
        return isDisplayed;
    }

}
