Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // ==UserScript==
- // @name ASW-Plan
- // @namespace http://use.i.E.your.homepage/
- // @version 0.1
- // @description enter something useful
- // @match http://www.asw-berufsakademie.de/fileadmin/download/download/Sked%20Stundenplan/*.html
- // @copyright 2012+, You
- // ==/UserScript==
- var weekNum = 1;
- var weekTable = document.getElementsByTagName('table')[weekNum];
- // Create a map to link each date (from header row) with its horizontal position
- var days = weekTable.getElementsByClassName('t');
- var dayMap = {};
- for(var i=0; i<days.length; i++) {
- var pos = findPos(days[i]);
- dayMap[days[i].innerHTML] = pos.x;
- //alert(pos.x + ' -> ' + days[i].innerHTML);
- }
- // Find the closest horizontal position for each course
- var courses = weekTable.getElementsByClassName('v');
- var out = '';
- for(var i=0; i<courses.length; i++) {
- var pos = findPos(courses[i]);
- var date = findClosest(pos.x, dayMap);
- out += courses[i].innerHTML + '\n ==> ' + date + '\n';
- }
- alert(out);
- function findPos(obj) {
- var curleft = 0, curtop = 0;
- if (obj.offsetParent) {
- do {
- curleft += obj.offsetLeft;
- curtop += obj.offsetTop;
- } while (obj = obj.offsetParent);
- return { x: curleft, y: curtop };
- }
- return undefined;
- }
- function findClosest(horiPos, dayMap) {
- var xDiff = -1;
- var winner;
- for(var date in dayMap) {
- var tmpDiff = Math.abs(dayMap[date] - horiPos);
- if(xDiff == -1 || tmpDiff < xDiff) {
- xDiff = tmpDiff;
- winner = date;
- }
- }
- return winner;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement