jQuery(document).ready(function($){function interceptClick(event){var element=$(event.target);if(element.prop("tagName")=="A"){event.preventDefault();if(!ctrl_pressed){var param={"html_element_selection":block,"selector":$("#ai-selector").val(),"input":settings_input};var form=document.createElement("form");form.setAttribute("method","post");form.setAttribute("action",event.srcElement.href);form.setAttribute("target","_self");for(var i in param)if(param.hasOwnProperty(i)){var input=document.createElement("input"); input.type="hidden";input.name=i;input.value=encodeURI(param[i]);form.appendChild(input)}document.body.appendChild(form);form.submit();document.body.removeChild(form)}}}function getElementSelector(el){var selector=el.nodeName.toLowerCase();if(el.hasAttribute("id")&&el.id!="")selector=selector+"#"+el.id;if(el.className){classes=el.className.replace(/ai-selected|ai-highlighted/g,"").trim();if(classes)selector=selector+"."+classes.replace(/\s{2,}/g," ").trim().replace(/ /g,".")}return selector}function getDomPath(el){var stack= [];while(el.parentNode!=null){var sibCount=0;var sibIndex=0;for(var i=0;i1)stack.unshift(el.nodeName.toLowerCase()+":eq("+sibIndex+")");else stack.unshift(el.nodeName.toLowerCase());el=el.parentNode}return stack.slice(1)}function getShortestPath(elements){var stack= [];var found=false;elements.reverse().forEach(function(element){if(!found)stack.unshift(element);found=element.indexOf("#")!=-1});return stack}function cleanSelectors(selectors){selectors=selectors.trim();if(selectors.slice(0,1)==",")selectors=selectors.slice(1,selectors.length);if(selectors.slice(-1)==",")selectors=selectors.slice(0,selectors.length-1);return selectors.trim()}function wrapElement(element){return''+element+""}function wrapElements(elements){var html_elements= [];elements.forEach(function(element){html_elements.push(wrapElement(element))});return html_elements}function createClickableElements(){$(".ai-html-element").click(function(){var element_selector=$(this).text();$("#ai-selector-element").html(wrapElement(element_selector));$(".ai-highlighted").removeClass("ai-highlighted");$(".ai-selected").removeClass("ai-selected");$(element_selector).addClass("ai-selected");$("#ai-selector-data "+element_selector).removeClass("ai-selected");$("#ai-selector").val(element_selector)})} function loadFromSettings(){if(window.opener!=null&&!window.opener.closed){$("#ai-selector").val(cleanSelectors(settings_selector));$("#ai-selector").trigger("input")}}function applyToSettings(add){if(window.opener!=null&&!window.opener.closed){var settings=$(window.opener.document).contents();var selector=$("#ai-selector").val();if(add){var existing_selectors=settings.find(settings_input).val().trim();existing_selectors=cleanSelectors(existing_selectors);if(existing_selectors!="")existing_selectors= existing_selectors+", ";selector=existing_selectors+selector}settings.find(settings_input).val(selector)}}function changeAction(){if(ctrl_pressed){$("#ai-use-button").hide();$("#ai-add-button").show()}else{$("#ai-use-button").show();$("#ai-add-button").hide()}}var block="AI_POST_HTML_ELEMENT_SELECTION";var settings_selector="AI_POST_SELECTOR";var settings_input="AI_POST_INPUT";var ctrl_pressed=false;var selected_element=null;var current_element=null;document.onclick=interceptClick;$(document).keydown(function(event){if(event.which== "17"){ctrl_pressed=true;changeAction();if(current_element!=null&¤t_element.prop("tagName")=="A")$(current_element).trigger("mouseover")}});$(document).keyup(function(){ctrl_pressed=false;changeAction();if(current_element!=null&¤t_element.prop("tagName")=="A")$(current_element).trigger("mouseout")});$("body").css({"user-select":"none","margin-top":"140px"});$("body").prepend('
ELEMENT
PATH
SELECTOR
'); $("body").bind("mouseover mouseout click",function(event){var element=$(event.target);var elements=getDomPath(element[0]);var path=elements.join(" > ");if(path.indexOf("ai-selector-data")!=-1)return;if(element.hasClass("ai-html-element"))return;switch(event.type){case "click":if(element.prop("tagName")!="A"||ctrl_pressed){selected_element=element;$("#ai-selector-element").html(wrapElement(getElementSelector(element[0])));$("#ai-selector-path").html(wrapElements(elements).join(" > "));createClickableElements(); $(".ai-highlighted").removeClass("ai-highlighted");$(".ai-selected").removeClass("ai-selected");element.addClass("ai-selected");$("#ai-selector").val(getShortestPath(elements).join(" > "))}break;case "mouseover":current_element=element;if(element.prop("tagName")!="A"||ctrl_pressed)element.addClass("ai-highlighted");break;case "mouseout":element.removeClass("ai-highlighted");break}});$("#ai-selector").on("input",function(){$(".ai-highlighted").removeClass("ai-highlighted");$(".ai-selected").removeClass("ai-selected"); var selectors=cleanSelectors($("#ai-selector").val());$(selectors).addClass("ai-selected");var elements=selectors.split(",");elements.forEach(function(element){$("#ai-selector-data "+element).removeClass("ai-selected")});if(elements.length==1&&$(selectors).length==1){selected_element=$(elements[0]);$("#ai-selector-element").html(wrapElement(getElementSelector(selected_element[0])));$("#ai-selector-path").html(wrapElements(getDomPath(selected_element[0])).join(" > "));createClickableElements()}else{selected_element= null;$("#ai-selector-element").text("");$("#ai-selector-path").text("")}});window.onkeydown=function(event){if(event.keyCode===27)window.close()};loadFromSettings();$("#ai-cancel-button").button({}).click(function(){window.close()});$("#ai-parent-button").button({}).click(function(){if(selected_element.prop("tagName")!="BODY"){selected_element=selected_element.parent();selected_element.click()}});$("#ai-use-button").button({}).click(function(){applyToSettings(false);window.close()});$("#ai-add-button").button({}).click(function(){applyToSettings(true); window.close()})});