﻿$jq.namespace('MatchCore');

$jq(document).ready(function() {
	MatchCore.QuickSearchMSNCA.init();
});

MatchCore.QuickSearchMSNCA = function() {
	var deepLink = {
		gc:'',
		tr:'',
		age:'',
		uage:'',
		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:'',
		msno:'',
		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;
	    
	    $jq('#formSearch INPUT[@name="gc"][@value="' + gc + '"]').attr("checked", "checked");
		$jq('#formSearch INPUT[@name="tr"][@value="'+ tr + '"]').attr("checked", "checked");
		
		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");
		        }
		    }
		}
		
		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.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.msno = $jq('#formSearch INPUT[@name="msno"]').val();
		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.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('.btnQuickSearchMSNCA').bind('click', this.submit);
			populateForm(function(response){
			return;
			});
		},
		
		submit : function() {
			consumeForm();
			var searchString = "";
			var baseURL = "/qsearch/qsearchdl.aspx";
			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);
		}
	};
}();
