﻿$jq.namespace('MatchCore.CP');

$jq(document).ready(function() {
	MatchCore.CP.QuickSearch.init();
});

MatchCore.CP.QuickSearch = function() {
    var deepLink = {
      gc:'',
	    tr:'',
	    age:'',
	    uage:'',
	    ua:'',
	    pc:'',
	    dist:'',
	    po:'',
	    cl:'',
	    et:'',
	    oln:'',
	    lfeet:'',
	    linches:'',
	    ufeet:'',
	    uinches:'',
	    bd:'',
	    hr:'',
	    ey:'',
	    ms:'',
	    rel:'',
	    hc:'',
	    wc:'',
	    hp:'',
	    lp:'',
	    lv:'',
	    inc:'',
	    job:'',
	    pol:'',
	    dt:'',
	    dt:'',
	    bf:'',
	    dk:'',
	    sk:'',
	    ed:'',
	    ex:'',
	    as:'',
	    r2s:'',
	    cpp:''
    };
	var _failureDelegate = new MatchCore.Delegate();
	var _successDelegate = new MatchCore.Delegate();
	var _busy = false;
	
	var populateForm = function(){
	    var gc = ($jq.readCookie('MatchSearch') != undefined && $jq.readCookie('MatchSearch')['SC01'] != undefined) ? $jq.readCookie('MatchSearch')['SC01'] : "2";
	    var tr = ($jq.readCookie('MatchSearch') != undefined && $jq.readCookie('MatchSearch')['SC02'] != undefined) ? $jq.readCookie('MatchSearch')['SC02'] : "1"
	    var lage = ($jq.readCookie('MatchSearch') != undefined) ? $jq.readCookie('MatchSearch')['SC03'] : null;
	    var uage = ($jq.readCookie('MatchSearch') != undefined) ? $jq.readCookie('MatchSearch')['SC04'] : null;
	    var po = ($jq.readCookie('MatchSearch') != undefined) ? $jq.readCookie('MatchSearch')['SC05'] : null;
	    var oln = ($jq.readCookie('OLN') != undefined) ? $jq.readCookie('OLN')['OLNVAL'] : null;   

	    $jq('#formSearch INPUT[@name="gc"][@value="' + gc + '"]').attr("checked", "checked");
		  $jq('#formSearch INPUT[@name="tr"][@value="'+ tr + '"]').attr("checked", "checked");
		
		  //PhotoOnly
		  if(($jq('#formSearch INPUT[@name="po"]:hidden').length) != 1){
		    if(($jq('#formSearch INPUT[@name="po"]').length) == 1){
		        $jq('#formSearch INPUT[@name="po"]').removeAttr("checked");
		        if(po == null){
    		        $jq('#formSearch INPUT[@name="po"]').attr("checked", "checked");
		        }
		        else if(po == "1"){
    		        $jq('#formSearch INPUT[@name="po"]').attr("checked", "checked");
		        }
		    }
		    
		    //OnlineNow
		    if(($jq('#formSearch INPUT[@name="oln"]:hidden').length) != 1){
		      if(($jq('#formSearch INPUT[@name="oln"]').length) == 1){
		        $jq('#formSearch INPUT[@name="oln"]').removeAttr("checked");
		        if(oln == "1"){
    		      $jq('#formSearch INPUT[@name="oln"]').attr("checked", "checked");
		        }
		      }   
		    }
		}
		
		if (($jq('#formSearch select[@name="lage"]').length) == 1)
		    $jq('#formSearch select[@name="lage"]').val(lage).selected = true;
		else
		    $jq('#formSearch INPUT[@name="lage"]').val(lage);
		    
		if (($jq('#formSearch select[@name="uage"]').length)== 1)
		    $jq('#formSearch select[@name="uage"]').val(uage).selected = true;
		else 
		    $jq('#formSearch INPUT[@name="uage"]').val(uage);
		
		try {   
			$jq('#formSearch select[@name="gc"]').val(gc).selected = true;
			$jq('#formSearch select[@name="tr"]').val(tr).selected = true;
		}
		catch (e) { }
		
		$jq('#formSearch INPUT[@name="pc"]').val($jq.readCookie('MatchSearch') != undefined ? $jq.readCookie('MatchSearch')['SC08'] : '');
		if ($jq('#formSearch INPUT[@name="dist"]:hidden').length == 0)
		$jq('#formSearch INPUT[@name="dist"]').val($jq.readCookie('MatchSearch') != undefined ? $jq.readCookie('MatchSearch')['SC07'] : '');
	}
	
	var consumeForm = function() {
		deepLink.gc = ($jq('#formSearch SELECT[@name="gc"]').length) == 1 ? ($jq('#formSearch SELECT[@name="gc"]').val()) : ($jq('#formSearch INPUT[@name="gc"][@checked]').val());
		deepLink.tr = ($jq('#formSearch SELECT[@name="tr"]').length) == 1 ? ($jq('#formSearch SELECT[@name="tr"]').val()) : ($jq('#formSearch INPUT[@name="tr"][@checked]').val());
		
		deepLink.lage = ($jq('#formSearch SELECT[@name="lage"]').length) == 1 ? ($jq('#formSearch SELECT[@name="lage"]').val()) : ($jq('#formSearch INPUT[@name="lage"][@checked]').val());
		deepLink.uage = ($jq('#formSearch SELECT[@name="uage"]').length) == 1 ? ($jq('#formSearch SELECT[@name="uage"]').val()) : ($jq('#formSearch INPUT[@name="uage"][@checked]').val());
		deepLink.ua = deepLink.uage;
		
		deepLink.pc = $jq('#formSearch INPUT[@name="pc"]').val();
		deepLink.dist = ($jq('#formSearch INPUT[@name="dist"]').length) == 1 ? ($jq('#formSearch INPUT[@name="dist"]').val()) : '';
		deepLink.po = ($jq('#formSearch INPUT[@name="po"]:hidden').length) == 1 ? ($jq('#formSearch INPUT[@name="po"]').val()) : ($jq('#formSearch INPUT[@name="po"][@checked]').val() != null ? "1" : "0");
		deepLink.cl = $jq('#formSearch INPUT[@name="cl"]').val();
		deepLink.et = $jq('#formSearch INPUT[@name="et"]').val();
		deepLink.oln = ($jq('#formSearch INPUT[@name="oln"]:hidden').length) == 1 ? ($jq('#formSearch INPUT[@name="oln"]').val()) : ($jq('#formSearch INPUT[@name="oln"][@checked]').val() != null ? "1" : "0");
	    deepLink.lfeet = $jq('#formSearch select[@name="lfeet"]').val();
	    deepLink.linches = $jq('#formSearch select[@name="linches"]').val();
	    deepLink.ufeet = $jq('#formSearch select[@name="ufeet"]').val();
	    deepLink.uinches = $jq('#formSearch select[@name="uinches"]').val();
	    deepLink.bd = deli($jq('#formSearch INPUT[@name="bd"][@checked]'));
	    deepLink.hr = deli($jq('#formSearch INPUT[@name="hr"][@checked]'));
	    deepLink.ey = deli($jq('#formSearch INPUT[@name="ey"][@checked]'));
	    deepLink.ms = deli($jq('#formSearch INPUT[@name="ms"][@checked]'));
	    deepLink.rel = deli($jq('#formSearch INPUT[@name="rel"][@checked]'));
	    deepLink.hc = deli($jq('#formSearch INPUT[@name="hc"][@checked]'));
	    deepLink.wc = deli($jq('#formSearch INPUT[@name="wc"][@checked]'));
	    deepLink.hp = deli($jq('#formSearch INPUT[@id="hp"][@checked]'));
	    deepLink.lp = deli($jq('#formSearch INPUT[@id="lp"][@checked]'));
	    deepLink.lv = deli($jq('#formSearch INPUT[@name="lv"][@checked]'));
	    deepLink.inc = deli($jq('#formSearch INPUT[@name="inc"][@checked]'));
	    deepLink.job = deli($jq('#formSearch INPUT[@name="job"][@checked]'));
	    deepLink.pol = deli($jq('#formSearch INPUT[@name="pol"][@checked]'));
	    deepLink.dt = deli($jq('#formSearch INPUT[@name="dt"][@checked]'));
	    deepLink.dt = deli($jq('#formSearch INPUT[@name="da"][@checked]'));
	    deepLink.bf = deli($jq('#formSearch INPUT[@name="bf"][@checked]'));
	    deepLink.dk = deli($jq('#formSearch INPUT[@name="dk"][@checked]'));
	    deepLink.sk = deli($jq('#formSearch INPUT[@name="sk"][@checked]'));
	    deepLink.ed = deli($jq('#formSearch INPUT[@name="ed"][@checked]'));
	    deepLink.ex = deli($jq('#formSearch INPUT[@name="ex"][@checked]'));
	    deepLink.as = deli($jq('#formSearch INPUT[@name="as"][@checked]'));
	    deepLink.r2s = $jq('#formSearch INPUT[@name="r2s"]').val();
	    deepLink.cpp = $jq('#formSearch INPUT[@name="cpp"]').val();
	}
	
	var failure = function (response) {
		if (_failureDelegate.count() > 0)
			_failureDelegate.fire(response);
		else 
			MatchCore.CP.Messaging.show(response.Messages);
	}
	
	var success = function (response) {
		if (_successDelegate.count() > 0)
			_successDelegate.fire(response);
	}
	
	var deli = function(opts) {
		var deliString = '';
		if (opts != undefined){
			for (var i = 0; i < opts.length; i++) {
				if (i== 0)
					deliString = $jq(opts[i]).val();
				else
					deliString = deliString +"," + $jq(opts[i]).val();
			}
		}
		return deliString;
	}
	
	return {
		init : function(opts) {
			if (opts) {
				if (opts.fail)
					_failureDelegate.add(opts.fail);
					
				if (opts.success)
					_successDelegate.add(opts.success);
			}
				
			$jq('.btnQuickSearch').bind('click', this.submit);
			populateForm(function(response){
			return;
			});
		},
		
		submit : function() {
			consumeForm();
			var searchString = "";
	        var baseURL = "/search/search.aspx?EXEC=GO&SB=radius";
	        searchString = "&lid=107&cl=" + deepLink.cl;
	        for(key in deepLink) {
               if(deepLink[key] != undefined && deepLink[key] != "" && deepLink[key] != ''){
                    if (key == "cl"){
                        continue;
                    }
                    else{
                        searchString = searchString +"&"+ key + "=" + deepLink[key];
                    }
                }
             }
	        window.location.href=baseURL + searchString;
		},
		
		onSuccess : function (handler) {
			_successDelegate.add(handler);
		},
		
		onFailure : function (handler) {
			_failureDelegate.add(handler);
		}
	};
}();
