var NCompatListData = new Object;

/* COMPATIBILITY LIST */
(function($) {
	$.extend({		
		compatListInit : function (param) {
			var defvals = {
				'selprepend': 'clist_', 
				'debug': false,
				'showparam': false,
				'searchdiv': 'clist_search',
				'sel': {
					'header': '<select name="clist_##level##" id="clist_##level##" class="compatibility_list"><option value="">Select an option</option>',
					'body': '<option value="##compatcat_id##">##compatcat_name##</option>',
					'footer': '</select>',
					'loading_notification': '<span class="loading_span"><img src="/assets/loading.gif" /></span>'
				}
			};
			param = $.soap_default_data(param ,defvals);
			
			if(param['showparam']) 
				alert($.js_var_dump(param));
			
			NCompatListData['param'] = param;
		},
		
		getCompatListParam : function () {
			return NCompatListData;
		},
		
		setCompatMatch : function(l, s) {
			var fn = 'compatibilitylist';
			var nobj = $.getCompatListParam();
			if(nobj != null ) {
				var param = nobj['param'];
				var compatlist = new Object;
							
				if (s) {
					$("."+s+" input:checked").each(function() {
						if ($(this).attr('id').match(/^compatselect/)) {
							var tmp = $(this).attr('id').replace("compatselect","");
							if (tmp != '') {
								compatlist[tmp] = 1;
							}
						}
					});
					
					$.do_ajax(
						fn,
						{'proc': 'setCompatMatch' , 'list': l, 'compatlist':compatlist},
						true,
						{
							'SUCCESS': {
								'def' : {},
								'fn' : function (code, data) {							
									$('.loading_span').remove();
									$('.compatcat_desc').html(data['description']);
									$('#addvehicle').hide('slow');
								}
							},
							'FAIL': {
								'def' : { 'msg': '' },
								'fn' : function (code, data) {
									if(data['msg']) {
										var msg = $.parse_ntemplate(data['msg']);
									}
								}
							},
							'ERROR' : { 
								'def' : { 'response': '' },
								'fn' : function (code, data) {  
								}
							}
						});
				}
			}		
		},
				
		buildCompatList : function (s) {
			var fn = 'compatibilitylist';
			var nobj = $.getCompatListParam();
			
			if(nobj != null ) {
				var param = nobj['param'];
				var a = s.val();
				var b = s.parent("div");
				var e = $('#'+param['searchdiv']).val();
				
				b.append(param['sel']['loading_notification']);
				
				if (a) {
					$.do_ajax(
						fn,
						{'proc': 'getSubList' , 'cl': a, 'cls': e},
						true,
						{
							'SUCCESS': {
								'def' : {},
								'fn' : function (code, data) {							
									if (data['compatlist'] && data['compatlist'].length > 0) {
										$('.loading_span').remove();
										html = $.parse_ntemplate(param['sel']['header'], data);
										var ctr = data['compatlist'];
										for (var i=0; i<ctr.length; i++) {
											html += $.parse_ntemplate(param['sel']['body'], ctr[i]);
										}
										html += param['sel']['footer'];
										$('select[id^="'+param['selprepend']+'"]').each(function() {
											var c = $(this).attr('id').replace(param['selprepend'], "");
											if (c >= data['level']) 
												$(this).remove();
										});
										b.append(html);
										$(".compatibility_list").unbind("change");
										$(".compatibility_list").change(function() {
											$.buildCompatList($(this));	
										});
									}
									else if (data['description']) {
										$('.loading_span').remove();
										$('.compatcat_desc').html(data['description']);
										$('.newcompatitems').append('<input type="checkbox" id="compatselect'+data['compatcat_id']+'" checked />'+data['description']+'<br />');
										$('#addvehicle').hide('slow');
									}
									else {
										if (data['url'])
											$('.loading_span').remove();
											document.location.href = encodeURI(data['url']);
									}
								}
							},
							'FAIL': {
								'def' : { 'msg': '' },
								'fn' : function (code, data) {
									if(data['msg']) {
										var msg = $.parse_ntemplate(data['msg']);
									}
								}
							},
							'ERROR' : { 
								'def' : { 'response': '' },
								'fn' : function (code, data) {  
								}
							}
						});
				}
				else {
					var d = s.attr('id').replace(param['selprepend'], "");
					$('select[id^="'+param['selprepend']+'"]').each(function() {
						var c = $(this).attr('id').replace(param['selprepend'], "");
						if (c > d) 
							$(this).remove();
					});
				}
			}
		}
	});
})(jQuery);

/* END COMPATIBILITY_LIST */
