var StoreLocatorSearch = new Class({

    ajaxReqUrl : "/StoreLocatorSearchResultsAjax.aspx",
    action : "",
    type : "",
    updateTarget : null,
    storeName : "",
    zipCode : "",
    city :  "",
    street : "",
    country : "",
    distance : "",
    promoOpt1 : "",
    promoOpt2 : "",
    promoOpt3 : "",
    geoLat: "",
    geoLng: "",

	initialize: function(action,type,updateTarget,zipCode,city,street,country,storeName,distance,promoOpt1,promoOpt2,promoOpt3,promoOpt4,promoOpt5,promoOpt6,promoOpt7,promoOpt8,promoOpt9,promoOpt10,promoOpt11,promoOpt12,promoOpt13,promoOpt14,promoOpt15,promoOpt16,promoOpt17,promoOpt18,promoOpt19,promoOpt20,geoLat,geoLng){
	
	    this.action = action;
	    this.type = type;
	    this.updateTarget = updateTarget;	
	    this.storeName = storeName;    
	    this.zipCode = zipCode;
	    this.city = city;
	    this.street = street;
	    this.country = country;
	    this.distance = distance;
	    this.promoOpt1 = promoOpt1;
	    this.promoOpt2 = promoOpt2;
	    this.promoOpt3 = promoOpt3;	
        this.promoOpt4 = promoOpt4;	
        this.promoOpt5 = promoOpt5;	
        this.promoOpt6 = promoOpt6;	
        this.promoOpt7 = promoOpt7;	
        this.promoOpt8 = promoOpt8;	
        this.promoOpt9 = promoOpt9;	
        this.promoOpt10 = promoOpt10;
        this.promoOpt11 = promoOpt11;	
        this.promoOpt12 = promoOpt12;	
        this.promoOpt13 = promoOpt13;	
        this.promoOpt14 = promoOpt14;	
        this.promoOpt15 = promoOpt15;	
        this.promoOpt16 = promoOpt16;	
        this.promoOpt17 = promoOpt17;	
        this.promoOpt18 = promoOpt18;	
        this.promoOpt19 = promoOpt19;	
        this.promoOpt20 = promoOpt20;		
	    this.geoLat = geoLat;
	    this.geoLng = geoLng;    
	   
	    
	    switch(this.action) {
	    
	    case "QuickSearch":         this.StoreLocatorSearch_QickSearch();
	                                break;
	    case "DefaultSearch":       this.StoreLocatorSearch_DefaultSearch();
	                                break;	                            
	    case "GeoDistanceSearch":   this.StoreLocatorSearch_GeoDistanceSearch();
	                                break;	    
	    
	    }
	    

	},
	
	StoreLocatorSearch_blobIt:function(html)
	{
	    if($('rightcol')) $('rightcol').removeClass('loading');
	    if($('map')) $('map').removeClass('loading');
	    if($('sresult')) new Fx.Style('sresult', 'opacity').start(0,1);
	    if($('extSearchLeftColumnTxt')) new Fx.Style('extSearchLeftColumnTxt', 'opacity').start(0,1);
	},

    StoreLocatorSearch_QickSearch:function(html)
    {        
        new Ajax(this.ajaxReqUrl, {
            method: 'post',
            update: this.updateTarget,
            data:'action=Quicksearch&type=' + this.type + '&zipCode=' + this.zipCode + '&cityName=' + this.city,
            evalScripts: 'true' ,
            onRequest:function(){
                if($('sresult')) $('sresult').setText('');
                if($('rightcol')) $('rightcol').addClass('loading');                
                if($('map')) $('map').addClass('loader');
            },
            onComplete: this.StoreLocatorSearch_blobIt
        }).request();
    },
    
    StoreLocatorSearch_DefaultSearch:function(html)
    {      
        
        new Ajax(this.ajaxReqUrl, {
            method: 'post',
            update: this.updateTarget,
            data:'action=DefaultSearch&storeName=' + this.storeName + '&street=' + this.street + '&zipCode=' + this.zipCode + '&cityName=' + this.city + '&country=' + this.country + '&distance=' + this.distance + '&promoOpt1=' + this.promoOpt1 + '&promoOpt2=' + this.promoOpt2 + '&promoOpt3=' + this.promoOpt3 + '&promoOpt4=' + this.promoOpt4 + '&promoOpt5=' + this.promoOpt5 + '&promoOpt6=' + this.promoOpt6 + '&promoOpt7=' + this.promoOpt7 + '&promoOpt8=' + this.promoOpt8 + '&promoOpt9=' + this.promoOpt9 + '&promoOpt10=' + this.promoOpt10 + '&promoOpt11=' + this.promoOpt11 + '&promoOpt12=' + this.promoOpt12 + '&promoOpt13=' + this.promoOpt13 + '&promoOpt14=' + this.promoOpt14 + '&promoOpt15=' + this.promoOpt15 + '&promoOpt16=' + this.promoOpt16 + '&promoOpt17=' + this.promoOpt17 + '&promoOpt18=' + this.promoOpt18 + '&promoOpt19=' + this.promoOpt19 + '&promoOpt20=' + this.promoOpt20 + '&type=' + this.type ,
            evalScripts: 'true' ,
            onRequest:function(){
                if($('sresult')) $('sresult').setText('');
                if($('rightcol')) $('rightcol').addClass('loading');                
                if($('map')) $('map').addClass('loader');
            },
            onComplete: this.StoreLocatorSearch_blobIt
        }).request();
    },
    
    StoreLocatorSearch_GeoDistanceSearch:function(html)
    {       
        
        new Ajax(this.ajaxReqUrl, {
            method: 'post',
            update: this.updateTarget,
            data:'action=GeoDistanceSearch&storeName=' + this.storeName + '&country=' + this.country + '&distance=' + this.distance + '&promoOpt1=' + this.promoOpt1 + '&promoOpt2=' + this.promoOpt2 + '&promoOpt3=' + this.promoOpt3 + '&promoOpt4=' + this.promoOpt4 + '&promoOpt5=' + this.promoOpt5 + '&promoOpt6=' + this.promoOpt6 + '&promoOpt7=' + this.promoOpt7 + '&promoOpt8=' + this.promoOpt8 + '&promoOpt9=' + this.promoOpt9 + '&promoOpt10=' + this.promoOpt10 + '&promoOpt11=' + this.promoOpt11 + '&promoOpt12=' + this.promoOpt12 + '&promoOpt13=' + this.promoOpt13 + '&promoOpt14=' + this.promoOpt14 + '&promoOpt15=' + this.promoOpt15 + '&promoOpt16=' + this.promoOpt16 + '&promoOpt17=' + this.promoOpt17 + '&promoOpt18=' + this.promoOpt18 + '&promoOpt19=' + this.promoOpt19 + '&promoOpt20=' + this.promoOpt20 + '&geoLat=' + this.geoLat + '&geoLng=' + this.geoLng + '&type=' + this.type,
            evalScripts: 'true' ,
            onRequest:function(){
                if($('sresult')) $('sresult').setText('');
                if($('rightcol')) $('rightcol').addClass('loading');                
                if($('map')) $('map').addClass('loader');
            },
            onComplete: this.StoreLocatorSearch_blobIt
        }).request();
    }
    
    
});
