(function($){$.conxit=function(options){var defaults={to_id:'to',to_hidden_field_id:null,to_option_mask:'',to_option_function:null,to_option_list_reset_function:null,to_connector_image_container_id:'to_connector_image',to_sub_attributes_container_id:'to_sub_attributes',post_to_option_render_function:null,from_id:'from',from_hidden_field_id:null,from_option_mask:'',from_option_function:null,from_option_list_reset_function:null,from_connector_image_container_id:'from_connector_image',from_sub_attributes_container_id:'from_sub_attributes',sub_attribute_option_container_mask:'@sub_attribute_text@: ',sub_attribute_option_mask:'',sub_attribute_chooser_selector:'.sub-attribute',connector_image_base:'/media/img/src/',post_from_option_render_function:null,categories_id:'categories',category_option_mask:'',category_option_function:null,web:'',base_url:'http://www.startech.com',base_image_url:'http://sgcdn.startech.com/005329',client_id:'',link_client_id:'',use_startech_id:false,include_regional:true,lang:'EN',results_retriever_id:'results_retriever',results_item_mask:'
',results_item_function:null,results_container_id:'results',filters_container_id:'filters',filters_type_mask:'',filters_type_function:null,filters_option_mask:'-- @value@
',filter_option_class:'filter-opt',filters_option_function:null,applied_filters_container_id:'applied_filters',applied_filters_mask:'--@label@: @selected_value@X
',applied_filters_remove_class:'rem-filter-opt',applied_filters_function:null,paging_container_selector:'.pager',paging_items_per_page:10,paging_current_page_mask:'@page_text@',paging_number_mask:'@page_text@',paging_number_class:'page_numb',paging_next_text:'>',paging_prev_text:'<',paging_view_all_text:'View all',paging_function:null,pre_get_results_function:null,pre_display_results_function:null,post_display_results_function:null,clear_results_function:null,viewing_text_container_selector:'#viewing_text_wrp',viewing_text_mask:'Viewing @start@ to @end@ of @max@ Results
',viewing_text_function:null,sort_options_container_selector:'#sort_options',sort_options_mask:'@sort_type@',sort_options_separator_html:'|',sort_options_current_selected_mask:'@sort_img@ @sort_type@',sort_options_function:null,sort_options_class:'sort-opt',sort_relevance_text:'Relevance',sort_alpha_text:'Alphabetically',sort_newest_text:'Newest',sort_price_text:'Price',sort_ascending_img_html:'',sort_descending_img_html:'',glossary_container_id:'glossary',glossary_categories_id:'glossary_categories',glossary_categories_mask:'',glossary_categories_function:null,glossary_show_glossary_event_selector:'.show-glossary',glossary_categories_event_selector:'#glossary_categories',glossary_categories_event_type:'change',glossary_connectors_container_id:'glossary_connectors',glossary_connectors_mask:'',glossary_connectors_function:null,glossary_connectors_wrap_class:'connector',glossary_connectors_link_class:'connector-link',glossary_select_function:null};var settings=$.extend(defaults,options);for(var key in settings)
{if(settings[key]!==null&&settings[key]!==undefined&&typeof settings[key]=='string')
{var r=new RegExp('@base_url@','gi');settings[key]=settings[key].replace(r,settings.base_url);r=new RegExp('@base_image_url@','gi');settings[key]=settings[key].replace(r,settings.base_image_url);r=new RegExp('@connector_image_base@','gi');settings[key]=settings[key].replace(r,settings.connector_image_base);}}
var has_errors=false;if(settings.client_id===undefined||settings.client_id===null)settings.client_id='';settings.categories=$('#'+settings.categories_id);settings.to=$('#'+settings.to_id);settings.to_value=$('#'+settings.to_id);settings.from=$('#'+settings.from_id);settings.from_value=$('#'+settings.from_id);if(settings.from_sub_attributes_container_id!==null){settings.from_sub_attributes=$('#'+settings.from_sub_attributes_container_id);}
else{settings.from_sub_attributes=null;}
if(settings.to_sub_attributes_container_id!==null){settings.to_sub_attributes=$('#'+settings.to_sub_attributes_container_id);}
else{settings.to_sub_attributes=null;}
if(settings.from_connector_image_container_id!==null){settings.from_connector_image_container=$('#'+settings.from_connector_image_container_id);}
else{settings.from_connector_image_container=null;}
if(settings.to_connector_image_container_id!==null){settings.to_connector_image_container=$('#'+settings.to_connector_image_container_id);}
else{settings.to_connector_image_container=null;}
settings.results_retriever=$('#'+settings.results_retriever_id);settings.results_container=$('#'+settings.results_container_id);settings.filters_container=$('#'+settings.filters_container_id);settings.applied_filters_container=$('#'+settings.applied_filters_container_id);settings.paging_container=$(settings.paging_container_selector);settings.viewing_text_container=$(settings.viewing_text_container_selector);settings.sort_options_container=$(settings.sort_options_container_selector);settings.glossary_container=$('#'+settings.glossary_container_id);settings.glossary_categories=$('#'+settings.glossary_categories_id);settings.glossary_connectors_container=$('#'+settings.glossary_connectors_container_id);settings.glossary_show_glossary_event_obj=$(settings.glossary_show_glossary_event_selector);settings.current_page=1;settings.sort_id=0;settings.sort_dir='';settings.filters=[];settings.sub_attributes_list=[];settings.sub_attributes_auto_selected=[];settings.removed_connector_categories={};if(settings.from_hidden_field_id!==null)
{settings.from_value=$('#'+settings.from_hidden_field_id);if(!settings.from_value.length){$.error('From hidden field "'+settings.from_hidden_field_id+'" was specified but not found');has_errors=true;}}
if(settings.to_hidden_field_id!==null)
{settings.to_value=$('#'+settings.to_hidden_field_id);if(!settings.to_value.length){$.error('To hidden field "'+settings.to_hidden_field_id+'" was specified but not found');has_errors=true;}}
if(settings.glossary_container===undefined||settings.glossary_categories===undefined||settings.glossary_connectors_container===undefined)
{settings.use_glossary=false;}
else
{settings.use_glossary=true;settings.glossary_container.css('display','none');}
if(is_empty(settings.web)&&is_empty(settings.client_id)){$.error('Web code or Client ID must be provided');has_errors=true;}
if(is_empty(settings.lang)){$.error('Language code must be provided');has_errors=true;}
if(!settings.to.length){$.error('To List ID "'+settings.to_id+'" not found');has_errors=true;}
if(!settings.from.length){$.error('From List ID "'+settings.from_id+'" not found');has_errors=true;}
if(!settings.results_retriever.length){$.error('Results retriever "'+settings.results_retriever_id+'" not found');has_errors=true;}
if(!settings.results_container.length){$.error('Results container "'+settings.results_container_id+'" not found');has_errors=true;}
if(!settings.filters_container.length){$.error('Filters container "'+settings.filters_container_id+'" not found');has_errors=true;}
if(!settings.applied_filters_container.length){$.error('Applied Filters container "'+settings.applied_filters_container_id+'" not found');has_errors=true;}
if(!settings.paging_container.length){$.error('Paging container "'+settings.paging_container_selector+'" not found');has_errors=true;}
if(!settings.viewing_text_container.length){$.error('Viewing Text container "'+settings.viewing_text_container_selector+'" not found');has_errors=true;}
if(!settings.sort_options_container.length){$.error('Sort Options container "'+settings.sort_options_container_selector+'" not found');has_errors=true;}
var methods={reset_from_list:function()
{var sets=$.data(document.body,'conxit');sets.from.html(sets.from_list_init);sets.from_value.val('');sets.from_sub_attributes_list=[];if(sets.from_option_list_reset_function!==null)sets.from_option_list_reset_function.apply();},reset_to_list:function()
{var sets=$.data(document.body,'conxit');sets.to.html(sets.to_list_init);sets.to_value.val('').trigger('change');if(sets.to_option_list_reset_function!==null)sets.to_option_list_reset_function.apply();},get_from_list:function()
{var sets=$.data(document.body,'conxit');methods.clear_results.apply();if(sets.from_value.val()=='')
{sets.to.html('');}
$.ajax({url:sets.base_url+'/ConXit/API/GetFromList?web='+sets.web+'&lang='+sets.lang+'&cat_id='+sets.categories.val()+'&cid='+sets.client_id,cache:false,dataType:'jsonp',success:function(data)
{if(sets.from_value.val()!='')
{methods.reset_to_list.apply();}
methods.reset_from_list.apply();sets.from_imgs=[];if(sets.from_option_function!==null)
{sets.from.append(sets.from_option_function.apply(this,[data]));for(var i=0;idata.results.length)end_point=data.results.length;starting_point=sets.paging_items_per_page*(sets.current_page-1);number_of_pages=Math.floor(data.results.length/sets.paging_items_per_page);if(data.results.length%sets.paging_items_per_page>0)
{number_of_pages++;}}
data.number_of_pages=number_of_pages;if(sets.viewing_text_function!==null)
{sets.viewing_text_container.append(sets.viewing_text_function.apply(this,[starting_point+1,end_point,data.results.length]));}
else
{sets.viewing_text_container.append(replace_mask(sets.viewing_text_mask,{start:starting_point+1,end:end_point,max:data.results.length}));}
if(sets.results_item_function!==null)
{sets.results_container.append(sets.results_item_function.apply(this,[starting_point,end_point,data.results]));}
else
{for(var i=starting_point;i=5)
{page_start=parseInt(sets.current_page)-3;}
var page_end=number_of_pages;if(number_of_pages>parseInt(sets.current_page)+3)
{page_end=parseInt(sets.current_page)+3;}
for(var page=page_start;page<=page_end;page++)
{if(page==sets.current_page)
{paging_html+=replace_mask(sets.paging_current_page_mask,{page:page,page_text:page});}
else
{paging_html+=replace_mask(sets.paging_number_mask,{page:page,page_text:page});}}
if(!is_empty(sets.paging_next_text)&&sets.current_page1)
{paging_html+=replace_mask(sets.paging_number_mask,{page:'all',page_text:sets.paging_view_all_text});}
sets.paging_container.append(paging_html);}
$('.'+sets.paging_number_class).click(function()
{var sets=$.data(document.body,'conxit');sets.current_page=$(this).attr('rel');$.data(document.body,'conxit',sets);methods.reset_containers.apply();methods.display_results.apply();return false;});for(var i=0;i1)
{var filter_html;if(sets.filters_type_function!==null)
{filter_html=sets.filters_type_function.apply(this,[data.filters[i]]);}
else
{filter_html=replace_mask(sets.filters_type_mask,data.filters[i],['options']);}
var filter_option_html='';for(var j=0;j0)
{settings.sub_attributes_list=[];for(var i=0;i');if(settings.from_sub_attributes!==null)
{methods.display_sub_attributes();}}
else
{settings.from_connector_image_container.html('');}}
methods.clear_results.apply();});settings.to_value.change(function()
{if(settings.to_value.val()!='')
{if(settings.to_connector_image_container!==null)
{settings.to_connector_image_container.html('');}
if(settings.to_sub_attributes!==null)
{methods.display_sub_attributes();}
methods.clear_filters.apply();methods.get_results.apply();}
else
{settings.to_sub_attributes.html('');if(settings.to_connector_image_container!==null)
{settings.to_connector_image_container.html('');}}});settings.results_retriever.click(function(){methods.clear_filters.apply();methods.get_results.apply();});if(settings.categories.length)settings.categories.change(function(){var sets=$.data(document.body,'conxit');sets.from_value.val('');methods.get_from_list.apply();});settings.glossary_show_glossary_event_obj.click(function(){var mode=$(this).attr('rel');if(is_empty(mode)){mode='from';}methods.get_glossary_connectors.apply(this,[mode]);});}};})(jQuery);function auto_select_sub_attrs()
{var settings=$.data(document.body,'conxit');$(settings.sub_attribute_chooser_selector).each(function()
{var sub_attr_id=$(this).attr('sub_attribute_id');var connector_type=$(this).attr('connector_type');if($(this).find('option[value!=""]:not([disabled]),input[value!=""]:not([disabled])').length==1)
{$(this).val($(this).find('option[value!=""]:not([disabled]),input[value!=""]:not([disabled])').val());settings.sub_attributes_auto_selected[connector_type+'_'+sub_attr_id]=true;}
else if(settings.sub_attributes_auto_selected[connector_type+'_'+sub_attr_id])
{$(this).val('');}});}
function disable_invalid_sub_attrs(sub_attr_id)
{var settings=$.data(document.body,'conxit');var fid=settings.from_value.val();var tid=settings.to_value.val();if(settings.sub_attributes_list[sub_attr_id].raw_options[fid]===undefined)
{return;}
var f_to_t=settings.sub_attributes_list[sub_attr_id].raw_options[fid].to_opts[tid];if(f_to_t===undefined)
{return;}
var from_sub_attr_val=$('#from_sub_attribute_'+sub_attr_id).val();var to_sub_attr_val=$('#to_sub_attribute_'+sub_attr_id).val();if(from_sub_attr_val===undefined)
{from_sub_attr_val='';}
if(to_sub_attr_val===undefined)
{to_sub_attr_val='';}
settings.from_sub_attributes.find('option[value],input[value]').removeAttr('disabled').each(function()
{var this_val=$(this).val();if(this_val!='')
{var found=false;for(var idx in f_to_t)
{var map_opt=f_to_t[idx];if(map_opt.from==this_val&&(to_sub_attr_val==''||map_opt.to==to_sub_attr_val))
{found=true;}}
if(!found)
{$(this).attr('disabled','disabled');}}});settings.to_sub_attributes.find('option[value],input[value]').removeAttr('disabled').each(function()
{var this_val=$(this).val();if(this_val!='')
{var found=false;for(var idx in f_to_t)
{var map_opt=f_to_t[idx];if(map_opt.to==this_val&&(from_sub_attr_val==''||map_opt.from==from_sub_attr_val))
{found=true;}}
if(!found)
{$(this).attr('disabled','disabled');}}});}
function render_to_list(data)
{var sets=$.data(document.body,'conxit');sets.to_imgs=[];sets.to.html(sets.to_list_init);if(sets.to_option_function!==null)
{sets.to.append(sets.to_option_function.apply(this,[data]));for(var i=0;i0)
{options.sort();sa.options='';var found_non_empty_value=false;for(var opt in options)
{if(options[opt]!='')
{sa.options+=replace_mask(settings.sub_attribute_option_mask,{sub_attribute_value:options[opt]});found_non_empty_value=true;}}
if(found_non_empty_value)
{sub_attrs_html+=replace_mask(settings.sub_attribute_option_container_mask,sa);}}
container.html(sub_attrs_html);}
function replace_mask(mask,obj,ignore_list)
{for(var prop in obj)
{if(ignore_list===undefined||ignore_list===null||$.inArray(prop,ignore_list)==-1)
{var r=new RegExp('@'+prop+'@','gi');mask=mask.replace(r,obj[prop]);}}
return mask;}
function getParameterByName(name,url){if(!url)url=window.location.href;name=name.replace(/[\[\]]/g,"\\$&");var regex=new RegExp("[?&]"+name+"(=([^]*)|&|#|$)"),results=regex.exec(url);if(!results)return null;if(!results[2])return '';return decodeURIComponent(results[2].replace(/\+/g," "));}