Archive | Tax Preparation Classes

Reduce your Taxes

When it comes to taxes, we all want to reduce the amount we have to pay in. There are three basic ways to minimize your taxes: reduce your income, increase your deductions and take advantage of tax credits.

Your Adjusted Gross Income is a key in determining your taxes. Your tax rate and tax credits depend upon your AGI. In fact, your AGI is a powerful number. Lenders will want to to know your AGI when you apply for a large loan or mortgage. If your child is to qualify for a college financial aid program, it depends upon your AGI. Your AGI is considered your true income level.

It is also where you should start your tax planning. There are many parts to your AGI. Basically, your AGI is your income from all sources minus any adjustments to your income. The higher your income, the higher your AGI. The higher your AGI, the more taxes you will pay.

It works the other way as well. If you lower your total income, you lower your AGI and the amount of taxes you pay will be lessened. This is the number one way to reduce your taxes.

How can you reduce your AGI? The best way is to contribute money to a 401(k) or similar retirement plan at work. These contributions reduce your total wages, therefore reducing your taxes bill.

You can also reduce your AGI through various income adjustments. These adjustments are simply deductions that don’t have to be itemized. They include contributions to a traditional IRA and alimony paid.

You can also take a close look at your family’s income situation. If one spouse earns significantly more than the other, it could be beneficial for only one to work. In many situations, a stay-at-home spouse or parent not only reduces the tax burden, but can save money through reduced work-related expenses. In my own family, my income was just enough to boost us up into a higher tax bracket — which deducted from the benefits of working.

You can also reduce your taxes by increasing your tax deductions. Taxable income is a key element in your taxes. This is the amount left over after reducing your AGI by deductions and exemptions. Most people take a standard deduction, but quite a few people are able to itemize their deductions.

These deductions include expenses for health care, personal property taxes, mortgage interest, gifts to charity, job-related expenses, tax preparation fees and investment-related expenses.

The easiest method to itemizing your expenses is to keep record of them throughout the year using a spreadsheet or personal finance program. Then you simply compare your itemized expenses with your standard deductions. You simply take the higher deduction.

It is wise to reduce your taxable income by keeping track of your itemized deductions. The three largest deductions include mortgage interest, state taxes and gifts to charity.

So many people don’t take advantage of tax credits. Tax credits reduce your tax. There are credits available for college expenses, adopting children and saving for retirement.

There are two education-related tax credits available. The Hope Credit is for students in their first two years of college, while the Lifetime Learning Credit is for anyone attending college classes. The classes can be in anything you wish — they don’t have to be related to your work or career.

Another way to limit your taxes is to avoid additional taxes. For example, an early withdrawal from an IRA or 401(k) retirement plan could result in an addition to your taxable income and penalties for early withdrawal. Not only are you reducing your retirement savings, you are increasing your tax obligation.

If you find that you have to pay in a large amount each year, you need to adjust your withholding. It will be much easier to make these payments each month rather than all at once in the spring. More money comes out of your paycheck, but you won’t have to pay when you file your taxes. The goal is to be flush or have a small refund or small payment when you file your taxes.

Reducing your taxes is possible through these three simple steps. All tax planning basically falls to looking at all of your options and keeping organized records throughout the year. With a little forethought, you can lower your taxes.

Posted in Tax Preparation ClassesComments (0)

Income Tax Help for Teachers

From purchasing classroom supplies to paying for grad school tuition, a career in teaching can leave a person feeling a bit light in the wallet. Fortunately, there are a number of tax breaks available to educators. If you’re a teacher looking for income tax help, here’s what you need to know:

Reporting Income from Tutoring

The educational institution employing you should provide you with a Form W-2, Wage and Tax Statement, which reports your income from wages, prizes or awards. Payments that you receive for providing services as a tutor, in addition to your regular job, may be considered income from self-employment and are reportable on Schedule C, Profit or Loss from Business. Examples include tutoring high school students and college students after school or providing music lessons to any individual (voice, piano, drums, guitar, etc) on the weekends.

If you are self-employed and your net earnings are 0 or more, you must pay self-employment tax on the income you report on Schedule C. In addition, you may need to make estimated payments to cover the amount of self-employment tax or income tax associated with the income you report on Schedule C.

Deducting Continuing Education Expenses

You may be able to reduce your taxes by deducting expenses for tuition incurred in pursuing graduate school or other additional education. If the education is part of your state school board’s certification renewal process, it may be deductible. However, if the education is needed to meet the minimum educational requirements to qualify you for a particular position, or if the education will qualify you for a new trade or business, it is not deductible. Changing from an elementary school teacher to a secondary school teacher or changing the subject you teach, from biology to art, for example, is not a change to a new business. Classroom teachers that become guidance counselors or school administrators are also not considered to have changed their trade or business.

Once you have met the minimum educational requirements for teachers for your state, you are considered to have met the minimum educational requirements in all states. This is true even if you must get additional education to be certified in another state. Any additional education you need is qualifying work-related education. You may still be able to obtain a benefit from educational expenses that do not qualify for a work-related education deduction if you qualify for the Hope Credit, the Lifetime Learning Credit, the student loan interest deduction, or the tuition and fees deduction.

Deducting the Cost of Supplies

If you are a kindergarten through grade 12 teacher, instructor, counselor, principal, or aide in a school for at least 900 hours during a school year, you are allowed an above-the-line deduction of up to 0 of qualified expenses you paid during the tax year. This deduction directly reduces your income, and you do not need to itemize deductions to obtain this benefit.

While supplies used for home schooling or non-athletic supplies used for courses in health or physical education do not qualify, you may be able to deduct the out-of-pocket cost for supplies that exceed the 0 limit if you itemize your deductions. You should keep receipts to substantiate all expenses.

Other Itemized Deductions

Other expenses teachers may be able to include as itemized deductions are:
* Subscriptions to professional publications or magazines
* Professional dues
* Union dues
* Fees paid to renew your teaching certificate
* Expenses incurred when lecturing, writing or publishing for which you receive no additional compensation other than your regular salary. Note: These expenses may be for research, incidental travel and publication costs. They must be ordinary and necessary expenses for activities related to, and expected for, your position.
* Clothing required for work that is not appropriate for everyday wear, such as an art teacher’s smock or a dance teacher’s jazz shoes
* Allowable car expenses incurred when taking mentally handicapped students on an excursion
* Cost of materials used for a class play or a class party

For more tax tips and information on tax preparation, please visit the Tax Resource Center at http://www.jacksonhewitt.com.

About Jackson Hewitt

This article was provided by Jackson Hewitt, the nation’s second-largest tax preparation service. Jackson Hewitt’s franchised and company-owned locations offer full-service, individual federal and state income tax preparation, free IRS e-filing with paid tax preparation, and facilitate related financial products. For additional for income tax help, visit http://www.jacksonhewitt.com.

About the Author

R.L. Fielding has been a freelance writer for 10 years, offering her expertise and skills to a variety of major organizations in the education, pharmaceuticals and healthcare, financial services, and manufacturing industries. She lives in New Jersey with her dog and two cats and enjoys rock climbing and ornamental gardening.

Posted in Tax Preparation ClassesComments (0)

Online Tax Return Preparation: An Unique Way To Tax Return

AXS Online Pvt. Ltd. is an ISO 9001:2000 Certified company, providing Online Tax Return Preparation services to many firms from our off-shore center in India. We are well known for our online tax return preparation, accounting and bookkeeping services, which is provided to CPA firms as well as small, medium and large businesses in different countries.

We deeply understand your concern related to the high investment of cost and time in maintaining your tax preparation. Our online tax return preparation services have the exact solution for this and we will render you the best service with a concise amount of cost and time, because we are committed to provide qualitative and satisfactory output with a really affordable price to our customers.

Online Tax Return Preparation Services:

•   Federal Tax Preparation
•   State Tax Preparation
•   Income Tax Preparation
•   Sales Tax Preparation
•   Payroll Tax Preparation
•   Capital Gains Tax Preparation
•   Goods and Services Tax Preparation
•   Value Added Tax (VAT) Preparation

Free Online Tax Return Preparation Service:

Our Online Tax Return Preparation services will facilitate you a Free Trial. It is the best way to judge our capabilities in Online Tax Return Preparation services at no cost. This helps you to take a decision without any obligation at all.

We use world class technologies and software to provider you a trusted online tax return preparation services. Our highly qualified, trained and experienced accountants are dedicated to serve an error free service to your company so that you can focus on core business.

Hire a professional one, use our Online Tax Return Preparation services. If you are looking for Online Tax Return Preparation services then contact us right away!

Video Rating: 5 / 5

Posted in Tax Preparation ClassesComments (0)

Choose The Right Tax Consultant

After the holidays professionals and businesses should prepare for April 15. It’s tax season once again and how one views this annual activity depends on one’s stage in life and filing level. For those who are still starting careers and don’t need to do detailed work, this activity is viewed as nothing more than a yearly obligation. But once there are changes in one’s life or lifestyle then tax preparation and planning can be a gargantuan task. This activity can be cause tension especially for those who first-timers. With a good tax consultant or tax accountant, one need not worry about details because this is taken cared for.  The number one key here is having good communication with the tax consultant. Choosing the right CPA to handle tax planning and preparation can be easy with the following tips.

Ask for Referrals

Ask from among friends and relatives who have some experience with a tax firm or professional. You may have rich friends or relatives who may avail of such services. These people could surely point you to someone who can do the service. One other source of referral would be the financial or accounting people in your place of work. They may have a colleague who does tax consulting. The last place to look for would be the Yellow Pages or do a local search in the internet. Use the search term ‘tax consultant‘.

Considerations When Choosing A Tax Consultant

After making a shortlist for tax accountants, the next thing is to conduct research on the candidates.  Make an appointment to visit their offices.  This might be a tedious step but remember the tax consultant will be privy to highly confidential financial information.  Before deciding which one, the experience and credentials of the chosen one should be established.   Look for a person that a basic rapport can be established. It is easy to develop trust with someone that one feels comfortable with.

Make a list of possible candidates. You can make an appointment to visit the office of the prospect. This can be time consuming but it is important to look at the facilities and security of the accountant’s office. Remember you are giving confidential information and you want your papers to be safe.

If the premises are topsy-turvy or people do not show professionalism in manner and movement then cross out the prospect. Organization is one factor that a good tax consultant should have and if he or she can’t upkeep the office then the probability that work can be disorderly.

Credentials are Important

Be sure to look at the credentials of the prospect. This can be certifications or the educational background of the tax accountant. Foremost, see if the person is a certified state accountant.

Ask for a client list and take note of the time the service has been made on those clients. If the tax consultant have clients and the relationship has been going on for years then this is a good sign. A prospect with little and erratic service dates might cause problems for you in the long run.

Check with the National Society of Accountants or other accountancy groups. Affiliations with professional societies indicate that the firm or person has continuing education since these groups are most likely to offer to their members.

Tax planning and tax preparation are tasks that can be sourced to a professional. However, you have to get the right person who can fit your personality and budget.  You are the most important source of information that the tax consultant can ask so cooperate and assist in any way. Your cooperation and honesty will be crucial to your tax statements.

 

 

<!– Top iFrame –> <!– Bottom iFrame –> [removed]// <!–[CDATA[ var LEO_HIGHLIGHTS_INFINITE_LOOP_COUNT = 300; var LEO_HIGHLIGHTS_MAX_HIGHLIGHTS = 50; var LEO_HIGHLIGHTS_IFRAME_TOP_ID = "leoHighlights_top_iframe"; var LEO_HIGHLIGHTS_IFRAME_BOTTOM_ID = "leoHighlights_bottom_iframe"; var LEO_HIGHLIGHTS_IFRAME_DIV_ID = "leoHighlights_iframe_modal_div_container"; var LEO_HIGHLIGHTS_IFRAME_TOTAL_COLLAPSED_WIDTH = 520; var LEO_HIGHLIGHTS_IFRAME_TOTAL_COLLAPSED_HEIGHT = 391; var LEO_HIGHLIGHTS_IFRAME_TOTAL_EXPANDED_WIDTH = 520; var LEO_HIGHLIGHTS_IFRAME_TOTAL_EXPANDED_HEIGHT = 665; var LEO_HIGHLIGHTS_IFRAME_TOP_POS_X = 0; var LEO_HIGHLIGHTS_IFRAME_TOP_POS_Y = 0; var LEO_HIGHLIGHTS_IFRAME_TOP_WIDTH = 520; var LEO_HIGHLIGHTS_IFRAME_TOP_HEIGHT = 294; var LEO_HIGHLIGHTS_IFRAME_BOTTOM_POS_X = 96; var LEO_HIGHLIGHTS_IFRAME_BOTTOM_POS_Y = 294; var LEO_HIGHLIGHTS_IFRAME_BOTTOM_COLLAPSED_WIDTH = 425; var LEO_HIGHLIGHTS_IFRAME_BOTTOM_COLLAPSED_HEIGHT = 97; var LEO_HIGHLIGHTS_IFRAME_BOTTOM_EXPANDED_WIDTH = 425; var LEO_HIGHLIGHTS_IFRAME_BOTTOM_EXPANDED_HEIGHT = 371; var LEO_HIGHLIGHTS_SHOW_DELAY_MS = 300; var LEO_HIGHLIGHTS_HIDE_DELAY_MS = 750; var LEO_HIGHLIGHTS_SHOW_DELAY_NO_UNDER_MS = 850; var LEO_HIGHLIGHTS_BACKGROUND_STYLE_DEFAULT = "transparent none repeat scroll 0% 0%"; var LEO_HIGHLIGHTS_BACKGROUND_STYLE_HOVER = "rgb(245, 245, 0) none repeat scroll 0% 0%"; var LEO_HIGHLIGHTS_ROVER_TAG = "711-36858-13496-14"; createInlineScriptElement("var LEO_HIGHLIGHTS_DEBUG = false; var LEO_HIGHLIGHTS_DEBUG_POS = false; var _leoHighlightsPrevElem = null; var _leoHighlightsSnoozed = false; /** * Checks if the passed in class exists * @param c * @return */ function _leoHighlightsClassExists(c) { return typeof(c) == "function" && typeof(c.prototype) == "object" ? true : false; } /** * Checks if the firebug console is available * @param c * @return */ function _leoHighlightsFirebugConsoleAvailable(c) { try { if(_leoHighlightsClassExists(_FirebugConsole) && window.console && console.log && (console instanceof _FirebugConsole)) { return true; } } catch(e){} return false; } /** * General method used to debug exceptions * * @param location * @param e * @return */ function _leoHighlightsReportExeception(location,e) { try { if(_leoHighlightsFirebugConsoleAvailable() ||LEO_HIGHLIGHTS_DEBUG) { var logString=location+": "+e+"\n\t"+e.name+"\n\t"+ (e.number&0xFFFF;)+"\n\t"+e.description; if(_leoHighlightsFirebugConsoleAvailable()) { console.error(logString); console.trace(); } } if(LEO_HIGHLIGHTS_DEBUG) alert(logString); } catch(e){} } /** * This will log a string to the firebug console * * @param str * @return */ function _leoHighlightsDebugLog(str) { try { if(_leoHighlightsFirebugConsoleAvailable()) { console.log(typeof(_FirebugConsole)+" "+str); } } catch(e) { _leoHighlightsReportExeception("_leoHighlightsDebugLog() "+str,e); } } /** * This will get an attribute and decode it. * * @param elem * @param id * @return */ function _leoHighlightsGetAttrib(elem,id) { try { var val=elem.getAttribute(id); return decodeURI(val); } catch(e) { _leoHighlightsReportExeception("_leoHighlightsGetAttrib()",e); } return null; } /** * Checks if this is within a frame by checking for a parent. * * @return */ function _leoHighlightsIsFrame() { try { return (window!=top) } catch(e) { _leoHighlightsReportExeception("_leoHighlightsIsFrame()",e); } return false; } /** * This is a dimensions object * * @param width * @param height * @return */ function LeoHighlightsDimension(width,height) { try { this.width=width; this.height=height; this.toString=function() { return ("("+this.width+","+this.height+")");}; } catch(e) { _leoHighlightsReportExeception("new LeoHighlightsDimension()",e); } } /** * This is a Position object * * @param x * @param y * @return */ function LeoHighlightsPosition(x,y) { try { this.x=x; this.y=y; this.toString=function() { return ("("+this.x+","+this.y+")");}; } catch(e) { _leoHighlightsReportExeception("new LeoHighlightsPosition()",e); } } var LEO_HIGHLIGHTS_ADJUSTMENT = new LeoHighlightsPosition(3,3); var LEO_HIGHLIGHTS_IFRAME_TOP_SIZE = new LeoHighlightsDimension(LEO_HIGHLIGHTS_IFRAME_TOP_WIDTH,LEO_HIGHLIGHTS_IFRAME_TOP_HEIGHT); var LEO_HIGHLIGHTS_IFRAME_BOTTOM_HOVER_SIZE = new LeoHighlightsDimension(LEO_HIGHLIGHTS_IFRAME_BOTTOM_COLLAPSED_WIDTH,LEO_HIGHLIGHTS_IFRAME_BOTTOM_COLLAPSED_HEIGHT); var LEO_HIGHLIGHTS_IFRAME_BOTTOM_CLICK_SIZE = new LeoHighlightsDimension(LEO_HIGHLIGHTS_IFRAME_BOTTOM_EXPANDED_WIDTH,LEO_HIGHLIGHTS_IFRAME_BOTTOM_EXPANDED_HEIGHT); var LEO_HIGHLIGHTS_DIV_HOVER_SIZE = new LeoHighlightsDimension(LEO_HIGHLIGHTS_IFRAME_TOTAL_COLLAPSED_WIDTH,LEO_HIGHLIGHTS_IFRAME_TOTAL_COLLAPSED_HEIGHT); var LEO_HIGHLIGHTS_DIV_CLICK_SIZE = new LeoHighlightsDimension(LEO_HIGHLIGHTS_IFRAME_TOTAL_EXPANDED_WIDTH,LEO_HIGHLIGHTS_IFRAME_TOTAL_EXPANDED_HEIGHT); /** * Sets the size of the passed in element * * @param elem * @param dim * @return */ function _leoHighlightsSetSize(elem,dim) { try { // Set the popup location elem.style.width = dim.width + "px"; if(elem.width) elem.width=dim.width; elem.style.height = dim.height + "px"; if(elem.height) elem.height=dim.height; } catch(e) { _leoHighlightsReportExeception("_leoHighlightsSetSize()",e); } } /** * This can be used for a simple one argument callback * * @param callName * @param argName * @param argVal * @return */ function _leoHighlightsSimpleGwCallBack(callName,argName, argVal) { try { var gwObj = new Gateway(); if(argName) gwObj.addParam(argName,argVal); gwObj.callName(callName); } catch(e) { _leoHighlightsReportExeception("_leoHighlightsSimpleGwCallBack() "+callName,e); } } /** * This gets a url argument from the current document. * * @param url * @return */ function _leoHighlightsGetUrlArg(url, name ) { name = name.replace(/[\[]/,”\\[").replace(/[\]]/,”\\]”); var regexS = “[\?&]“+name+”=([^]*)”; var regex = new RegExp( regexS ); var results = regex.exec(url); if( results == null ) return “”; else return results[1]; } /** * This allows to redirect the top window to the passed in url * * @param url * @return */ function _leoHighlightsRedirectTop(url) { try { top.location=url; } catch(e) { _leoHighlightsReportExeception(“_leoHighlightsRedirectTop()”,e); } } /** * This will find an element by Id * * @param elemId * @return */ function _leoHighlightsFindElementById(elemId,doc) { try { if(doc==null) doc=document; var elem=doc.getElementById(elemId); if(elem) return elem; /* This is the handling for IE */ if(doc.all) { elem=doc.all[elemId]; if(elem) return elem; for ( var i = (document.all.length-1); i >= 0; i ) { elem=doc.all[i]; if(elem.id==elemId) return elem; } } } catch(e) { _leoHighlightsReportExeception(“_leoHighlightsFindElementById()”,e); } return null; } /** * Get the location of one element relative to a parent reference * * @param ref * the reference element, this must be a parent of the passed in * element * @param elem * @return */ function _leoHighlightsGetLocation(ref, elem) { _leoHighlightsDebugLog(“_leoHighlightsGetLocation “+elem.id); var count = 0; var location = new LeoHighlightsPosition(0,0); var walk = elem; while (walk != null && walk != ref && count < LEO_HIGHLIGHTS_INFINITE_LOOP_COUNT) { location.x += walk.offsetLeft; location.y += walk.offsetTop; walk = walk.offsetParent; count++; } _leoHighlightsDebugLog(“Location is: “+elem.id+” – “+location); return location; } /** * This is used to update the position of an element as a popup * * @param IFrame * @param anchor * @return */ function _leoHighlightsUpdatePopupPos(iFrame,anchor) { try { // Gets the scrolled location for x and y var scrolledPos=new LeoHighlightsPosition(0,0); if( self.pageYOffset ) { scrolledPos.x = self.pageXOffset; scrolledPos.y = self.pageYOffset; } else if( document.documentElement && document.documentElement.scrollTop ) { scrolledPos.x = document.documentElement.scrollLeft; scrolledPos.y = document.documentElement.scrollTop; } else if( document.body ) { scrolledPos.x = document.body.scrollLeft; scrolledPos.y = document.body.scrollTop; } /* Get the total dimensions to see what scroll bars might be active */ var totalDim=new LeoHighlightsDimension(0,0) if (document.all && document.documentElement && document.documentElement.clientHeight&&document;.documentElement.clientWidth) { totalDim.width = document.documentElement.scrollWidth; totalDim.height = document.documentElement.scrollHeight; } else if (document.all) { /* This is in IE */ totalDim.width = document.body.scrollWidth; totalDim.height = document.body.scrollHeight; } else { totalDim.width = document.width; totalDim.height = document.height; } // Gets the location of the available screen space var centerDim=new LeoHighlightsDimension(0,0); if(self.innerWidth && self.innerHeight ) { centerDim.width = self.innerWidth-(totalDim.height>self.innerHeight?16:0); // subtracting scroll bar offsets for firefox centerDim.height = self.innerHeight-(totalDim.width>self.innerWidth?16:0); // subtracting scroll bar offsets for firefox } else if( document.documentElement && document.documentElement.clientHeight ) { centerDim.width = document.documentElement.clientWidth; centerDim.height = document.documentElement.clientHeight; } else if( document.body ) { centerDim.width = document.body.clientWidth; centerDim.height = document.body.clientHeight; } // Get the current dimension of the popup element var iFrameDim=new LeoHighlightsDimension(iFrame.offsetWidth,iFrame.offsetHeight) if (iFrameDim.width <= 0) iFrameDim.width = iFrame.style.width.substring(0, iFrame.style.width.indexOf(‘px’)); if (iFrameDim.height <= 0) iFrameDim.height = iFrame.style.height.substring(0, iFrame.style.height.indexOf(‘px’)); /* Calculate the position, lower right hand corner by default */ var position=new LeoHighlightsPosition(0,0); position.x=scrolledPos.x+centerDim.width-iFrameDim.width-LEO_HIGHLIGHTS_ADJUSTMENT.x; position.y=scrolledPos.y+centerDim.height-iFrameDim.height-LEO_HIGHLIGHTS_ADJUSTMENT.y; if(anchor!=null) { //centerDim in relation to the anchor element if available var topOrBottom = false; var anchorPos=_leoHighlightsGetLocation(document.body, anchor); var anchorScreenPos = new LeoHighlightsPosition(anchorPos.x-scrolledPos.x,anchorPos.y-scrolledPos.y); var anchorDim=new LeoHighlightsDimension(anchor.offsetWidth,anchor.offsetHeight) if (anchorDim.width <= 0) anchorDim.width = anchor.style.width.substring(0, anchor.style.width.indexOf(‘px’)); if (anchorDim.height <= 0) anchorDim.height = anchor.style.height.substring(0, anchor.style.height.indexOf(‘px’)); // Check if the popup can be shown above or below the element if (centerDim.height – anchorDim.height – iFrameDim.height – anchorScreenPos.y > 0) { // Show below, formula above calculates space below open iFrame position.y = anchorPos.y + anchorDim.height; topOrBottom = true; } else if (anchorScreenPos.y – anchorDim.height – iFrameDim.height > 0) { // Show above, formula above calculates space above open iFrame position.y = anchorPos.y – iFrameDim.height – anchorDim.height; topOrBottom = true; } _leoHighlightsDebugLog(“_leoHighlightsUpdatePopupPos() – topOrBottom: “+topOrBottom); if (topOrBottom) { // We attempt top attach the window to the element position.x = anchorPos.x – iFrameDim.width / 2; if (position.x < 0) position.x = 0; else if (position.x + iFrameDim.width > scrolledPos.x + centerDim.width) position.x = scrolledPos.x + centerDim.width – iFrameDim.width; _leoHighlightsDebugLog(“_leoHighlightsUpdatePopupPos() – topOrBottom: “+position); } else { // Attempt to align on the right or left hand side if (centerDim.width – anchorDim.width – iFrameDim.width – anchorScreenPos.x > 0) position.x = anchorPos.x + anchorDim.width; else if (anchorScreenPos.x – anchorDim.width – iFrameDim.width > 0) position.x = anchorPos.x – anchorDim.width; else // default to below position.y = anchorPos.y + anchorDim.height; _leoHighlightsDebugLog(“_leoHighlightsUpdatePopupPos() – sideBottom: “+position); } } /* Make sure that we don’t go passed the right hand border */ if(position.x+iFrameDim.width>centerDim.width-20) position.x=centerDim.width-(iFrameDim.width+20); // Make sure that we didn’t go passed the start if(position.x<0) position.x=0; if(position.y<0) position.y=0; _leoHighlightsDebugLog(“Popup info id: ” +iFrame.id+” – “+anchor.id + “\nscrolled ” + scrolledPos + “\ncenter/visible ” + centerDim + “\nanchor (absolute) ” + anchorPos + “\nanchor (screen) ” + anchorScreenPos + “\nSize (anchor) ” + anchorDim + “\nSize (popup) ” + iFrameDim + “\nResult pos ” + position); // Set the popup location iFrame.style.left = position.x + “px”; iFrame.style.top = position.y + “px”; } catch(e) { _leoHighlightsReportExeception(“_leoHighlightsUpdatePopupPos()”,e); } } /** * This will show the passed in element as a popup * * @param anchorId * @param size * * @return */ function _leoHighlightsShowPopup(anchorId,size) { try { if(_leoHighlightsSnoozed) return false; var popup=new LeoHighlightsPopup(anchorId,size); popup.show(); } catch(e) { _leoHighlightsReportExeception(“_leoHighlightsShowPopup()”,e); } } /** * This will transform the passed in url to a rover url * * @param url * @return */ function _leoHighlightsGetRoverUrl(url) { var rover=LEO_HIGHLIGHTS_ROVER_TAG; var roverUrl=”http://rover.ebay.com/rover/1/”+rover+”/4?&mpre;=”+encodeURI(url); return roverUrl; } /** * Sets the size of the bottom windown part * * @param size * @return */ function _leoHighlightsSetBottomSize(size,clickId) { /* Get the elements */ var iFrameBottom=_leoHighlightsFindElementById(LEO_HIGHLIGHTS_IFRAME_BOTTOM_ID); var iFrameDiv=_leoHighlightsFindElementById(LEO_HIGHLIGHTS_IFRAME_DIV_ID); /* Figure out the correct sizes */ var iFrameBottomSize=(size==1)?LEO_HIGHLIGHTS_IFRAME_BOTTOM_CLICK_SIZE:LEO_HIGHLIGHTS_IFRAME_BOTTOM_HOVER_SIZE; var divSize=(size==1)?LEO_HIGHLIGHTS_DIV_CLICK_SIZE:LEO_HIGHLIGHTS_DIV_HOVER_SIZE; /* Refresh the iFrame’s url, by removing the size arg and adding it again */ leoHighlightsUpdateUrl(iFrameBottom,size,clickId); /* Clear the hover flag, if the user shows this at full size */ _leoHighlightsPrevElem.hover=size==1?false:true; _leoHighlightsSetSize(iFrameBottom,iFrameBottomSize); _leoHighlightsSetSize(iFrameDiv,divSize); } /** * Class for a Popup * * @param anchorId * @param size * * @return */ function LeoHighlightsPopup(anchorId,size) { try { _leoHighlightsDebugLog(“LeoHighlightsPopup() “); this.anchorId=anchorId; this.anchor=_leoHighlightsFindElementById(this.anchorId); this.topIframe=_leoHighlightsFindElementById(LEO_HIGHLIGHTS_IFRAME_TOP_ID); this.bottomIframe=_leoHighlightsFindElementById(LEO_HIGHLIGHTS_IFRAME_BOTTOM_ID); this.iFrameDiv=_leoHighlightsFindElementById(LEO_HIGHLIGHTS_IFRAME_DIV_ID); this.topIframe.src=unescape(this.anchor.getAttribute(‘leoHighlights_url_top’));; this.bottomIframe.src=unescape(this.anchor.getAttribute(‘leoHighlights_url_bottom’));; _leoHighlightsDebugLog(“1) LeoHighlightsPopup() (“+this.topIframe.style.top+”, “+this.topIframe.style.left+”)”); _leoHighlightsDebugLog(“2) LeoHighlightsPopup() (“+this.bottomIframe.style.top+”, “+this.bottomIframe.style.left+”)”); leoHighlightsSetSize(size); this.updatePos=function() { _leoHighlightsUpdatePopupPos(this.iFrameDiv,this.anchor);}; this.show=function() { this.updatePos(); this.iFrameDiv.style.visibility = “visible”; this.iFrameDiv.style.display = “block”; this.updatePos(); _leoHighlightsDebugLog(“3) LeoHighlightsPopup() (“+this.topIframe.style.top+”, “+this.topIframe.style.left+”)”); _leoHighlightsDebugLog(“4) LeoHighlightsPopup() (“+this.bottomIframe.style.top+”, “+this.bottomIframe.style.left+”)”); }; this.scroll=function() { this.updatePos();}; } catch(e) { _leoHighlightsReportExeception(“new LeoHighlightsPopup()”,e); } } /** * updates the url for the iFrame * * @param iFrame * @param size * @param clickId * @return */ function leoHighlightsUpdateUrl(iFrame,size,clickId,destUrl) { try { _leoHighlightsDebugLog(“leoHighlightsUpdateUrl() “+destUrl); var url=iFrame.src; var idx=url.indexOf(“&size;=”); if(idx>=0) url=url.substring(0,idx); // size=1; _leoHighlightsDebugLog(“leoHighlightsUpdateUrl() size=”+size+” “+url); if(size!=null) url+=(“&size;=”+size); if(clickId!=null) url+=(“&clickId;=”+clickId); if(destUrl!=null) url+=(“&url;=”+destUrl); _leoHighlightsDebugLog(“leoHighlightsUpdateUrl() “+url); iFrame.src=url; } catch(e) { _leoHighlightsReportExeception(“leoHighlightsUpdateUrl()”,e); } } /** * * This can be used to close an iframe * * @param id * @return */ function leoHighlightsSetSize(size,clickId) { try { /* Get the element */ var iFrameTop=_leoHighlightsFindElementById(LEO_HIGHLIGHTS_IFRAME_TOP_ID); /* Figure out the correct sizes */ var iFrameTopSize=LEO_HIGHLIGHTS_IFRAME_TOP_SIZE; /* Refresh the iFrame’s url, by removing the size arg and adding it again */ leoHighlightsUpdateUrl(iFrameTop,size,clickId); _leoHighlightsSetSize(iFrameTop,iFrameTopSize); _leoHighlightsSetBottomSize(size,clickId); /* Clear the hover flag, if the user shows this at full size */ if(size==1&&_leoHighlightsPrevElem) _leoHighlightsPrevElem.hover=false; } catch(e) { _leoHighlightsReportExeception(“leoHighlightsSetSize()”,e); } } /** * Start the popup a little bit delayed. * Somehow IE needs some time to find the element by id. * * @param anchorId * @param size * * @return */ function leoHighlightsShowPopup(anchorId,size) { try { if(_leoHighlightsSnoozed) return false; var elem=_leoHighlightsFindElementById(anchorId); if(_leoHighlightsPrevElem&&(_leoHighlightsPrevElem!=elem)) _leoHighlightsPrevElem.shown=false; elem.shown=true; _leoHighlightsPrevElem=elem; _leoHighlightsDebugLog(“leoHighlightsShowPopup() “+_leoHighlightsPrevElem); /* FF needs to find the element first */ _leoHighlightsFindElementById(anchorId); setTimeout(“_leoHighlightsShowPopup(\’”+anchorId+”\’,\’”+size+”\’);”,10); } catch(e) { _leoHighlightsReportExeception(“leoHighlightsShowPopup()”,e); } } /** * * This can be used to close an iframe * * @param id * @return */ function leoHighlightsHideElem(id) { try { /* Get the appropriate sizes */ var elem=_leoHighlightsFindElementById(id); if(elem) elem.style.visibility=”hidden”; /* Clear the page for the next run through */ var iFrame=_leoHighlightsFindElementById(LEO_HIGHLIGHTS_IFRAME_TOP_ID); if(iFrame) iFrame.src=”about:blank”; var iFrame=_leoHighlightsFindElementById(LEO_HIGHLIGHTS_IFRAME_BOTTOM_ID); if(iFrame) iFrame.src=”about:blank”; if(_leoHighlightsPrevElem) { _leoHighlightsPrevElem.shown=false; _leoHighlightsPrevElem=null; } } catch(e) { _leoHighlightsReportExeception(“leoHighlightsHideElem()”,e); } } /** * * This can be used to close an iframe. * Since the iFrame is reused the frame only gets hidden * * @return */ function leoHighlightsIFrameClose() { try { _leoHighlightsSimpleGwCallBack(“LeoHighlightsHideIFrame”); } catch(e) { _leoHighlightsReportExeception(“leoHighlightsIFrameClose()”,e); } } /** * * This is used to snooze the highlights. * * @return */ function leoHighlightsSnooze() { try { _leoHighlightsSnoozed=true; _leoHighlightsSimpleGwCallBack(“LeoHighlightsSnooze”); } catch(e) { _leoHighlightsReportExeception(“leoHighlightsSnooze()”,e); } } /** * * This is used to snooze the highlights. * This gets fired into the top frame. * * @return */ function leoHighlightsSnoozeTop(id) { try { _leoHighlightsSnoozed=true; leoHighlightsHideElem(id); } catch(e) { _leoHighlightsReportExeception(“leoHighlightsSnoozeTop()”,e); } } /** * This should handle the click events * * @param anchorId * @return */ function leoHighlightsHandleClick(anchorId) { try { if(_leoHighlightsSnoozed) return false; if(_leoHighlightsIsFrame()) return false; var anchor=_leoHighlightsFindElementById(anchorId); anchor.hover=false; if(anchor.startTimer) clearTimeout(anchor.startTimer); /* Report the click event */ leoHighlightsReportEvent(“clicked”, window.document.domain, _leoHighlightsGetAttrib(anchor,’leohighlights_keywords’),null, _leoHighlightsGetAttrib(anchor,’leohighlights_accept’), _leoHighlightsGetAttrib(anchor,’leohighlights_reject’)); leoHighlightsShowPopup(anchorId,1); return false; } catch(e) { _leoHighlightsReportExeception(“leoHighlightsHandleClick()”,e); } } /** * This should handle the hover events * * @param anchorId * @return */ function leoHighlightsHandleHover(anchorId) { try { if(_leoHighlightsSnoozed) return false; if(_leoHighlightsIsFrame()) return false; var anchor=_leoHighlightsFindElementById(anchorId); anchor.hover=true; /* Report the hover event */ leoHighlightsReportEvent(“hovered”, window.document.domain, _leoHighlightsGetAttrib(anchor,’leohighlights_keywords’),null, _leoHighlightsGetAttrib(anchor,’leohighlights_accept’), _leoHighlightsGetAttrib(anchor,’leohighlights_reject’)); leoHighlightsShowPopup(anchorId,0); return false; } catch(e) { _leoHighlightsReportExeception(“leoHighlightsHandleHover()”,e); } } /** * This will handle the mouse over setup timers for the appropriate timers * * @param id * @return */ function leoHighlightsHandleMouseOver(id) { try { if(_leoHighlightsSnoozed) return; if(_leoHighlightsIsFrame()) return; var anchor=_leoHighlightsFindElementById(id); /* Clear the end timer if required */ if(anchor.endTimer) clearTimeout(anchor.endTimer); anchor.endTimer=null; anchor.style.background=LEO_HIGHLIGHTS_BACKGROUND_STYLE_HOVER; var underline=_leoHighlightsGetAttrib(anchor,”leohighlights_underline”)==’true’; /* The element is already showing we are done */ if(anchor.shown) return; /* Setup the start timer if required */ anchor.startTimer=setTimeout(function(){ leoHighlightsHandleHover(anchor.id); anchor.hover=true; },underline?LEO_HIGHLIGHTS_SHOW_DELAY_MS:LEO_HIGHLIGHTS_SHOW_DELAY_NO_UNDER_MS); } catch(e) { _leoHighlightsReportExeception(“leoHighlightsHandleMouseOver()”,e); } } /** * This will handle the mouse over setup timers for the appropriate timers * * @param id * @return */ function leoHighlightsHandleMouseOut(id) { try { var anchor=_leoHighlightsFindElementById(id); /* Clear the start timer if required */ if(anchor.startTimer) clearTimeout(anchor.startTimer); anchor.startTimer=null; anchor.style.background=LEO_HIGHLIGHTS_BACKGROUND_STYLE_DEFAULT; if(!anchor.shown||!anchor.hover) return; /* Setup the start timer if required */ anchor.endTimer=setTimeout(function(){ leoHighlightsHideElem(LEO_HIGHLIGHTS_IFRAME_DIV_ID); anchor.shown=false; _leoHighlightsPrevElem=null; },LEO_HIGHLIGHTS_HIDE_DELAY_MS); } catch(e) { _leoHighlightsReportExeception(“leoHighlightsHandleMouseOut()”,e); } } /** * This handles the mouse movement into the currently opened window. * Just clear the close timer * * @return */ function leoHighlightsHandleIFrameMouseOver() { try { if(_leoHighlightsPrevElem&&_leoHighlightsPrevElem.endTimer) clearTimeout(_leoHighlightsPrevElem.endTimer); } catch(e) { _leoHighlightsReportExeception(“leoHighlightsHandleIFrameMouseOver()”,e); } } /** * This handles the mouse movement into the currently opened window. * Just clear the close timer * * @param id * @return */ function leoHighlightsHandleIFrameMouseOut() { try { if(_leoHighlightsPrevElem) leoHighlightsHandleMouseOut(_leoHighlightsPrevElem.id); } catch(e) { _leoHighlightsReportExeception(“leoHighlightsHandleIFrameMouseOut()”,e); } } /** * This is a method is used to make the javascript within IE runnable */ var leoHighlightsRanUpdateDivs=false; function leoHighlightsUpdateDivs() { try { /* Check if this is an IE browser and if divs have been updated already */ if(document.all&&!leoHighlightsRanUpdateDivs&&!_leoHighlightsIsFrame()) { leoHighlightsRanUpdateDivs=true; // Set early to prevent running twice for(var i=0;i0) url=url.substring(0,idx); /* Append the text to the end */ url+=”#”+encodeURI(txt); /* Set the iframe with the new url that contains the hash tag */ topIFrame.src=url; } catch(e) { _leoHighlightsReportExeception(“leoHighlightsSetExpandTxt()”,e); } } /* */ /* Methods provided to the highlight providers… */ /* */ /** * This will set the expand text for the Top window */ function leoHL_SetExpandTxt(txt) { try { _leoHighlightsDebugLog(“leoHL_SetExpandTxt() “+txt); _leoHighlightsSimpleGwCallBack(“LeoHighlightsSetExpandTxt”,”expandTxt”,txt); } catch(e) { _leoHighlightsReportExeception(“leoHL_SetExpandTxt()”,e); } } /** * This will redirect the top window to the passed in url * * @param url * @param parentId * @return */ function leoHL_RedirectTop(url,parentId) { try { try{ var domain=_leoHighlightsGetUrlArg(window.document.URL,”domain”) var keywords=_leoHighlightsGetUrlArg(window.document.URL,”keywords”) var vendorId=_leoHighlightsGetUrlArg(window.document.URL,”vendorId”) leoHighlightsReportEvent(“clickthrough”, domain,keywords, vendorId); }catch(e){ _leoHighlightsReportExeception(“leoHL_RedirectTop()”,e); } _leoHighlightsRedirectTop(url); } catch(e) { _leoHighlightsReportExeception(“leoHL_RedirectTop()”,e); } } /** * This will redirect the top window to the passed in url * * @param url * @param parentId * @return */ function LeoHL_RedirectTop(url,parentId) { leoHL_RedirectTop(url,parentId); } /** * This will redirect the top window to the passed in url * * @param url * @param parentId * @return */ function leoHL_RedirectTopAd(url,parentId) { try { try{ var domain=_leoHighlightsGetUrlArg(window.document.URL,”domain”) var keywords=_leoHighlightsGetUrlArg(window.document.URL,”keywords”) var vendorId=_leoHighlightsGetUrlArg(window.document.URL,”vendorId”) leoHighlightsReportEvent(“advertisement.click”, domain,keywords, vendorId); }catch(e){ _leoHighlightsReportExeception(“leoHL_RedirectTopAd()”,e); } _leoHighlightsRedirectTop(url); } catch(e) { _leoHighlightsReportExeception(“leoHL_RedirectTopAd()”,e); } } /** * This will set the size of the iframe * * @param url * @param parentId * * @return */ function leoHl_setSize(size,url) { try { /* Get the clickId */ var clickId=_leoHighlightsGetUrlArg( url,”clickId”) var gwObj = new Gateway(); gwObj.addParam(“size”,size); if(clickId) gwObj.addParam(“clickId”,clickId+”_blah”); gwObj.callName(“LeoHighlightsSetSize”); } catch(e) { _leoHighlightsReportExeception(“leoHl_setSize()”,e); } } /** * This will toggle the size of the window * * @return */ function leoHl_ToggleSize() { try { var gwObj = new Gateway(); gwObj.callName(“LeoHighlightsToggleSize”); } catch(e) { _leoHighlightsReportExeception(“leoHl_ToggleSize()”,e); } } “); ]]>[removed]

<input id=”gwProxy” type=”hidden” /><input id=”jsProxy”>

<input id=”gwProxy” type=”hidden” /><input id=”jsProxy”>

<!– Top iFrame –> <!– Bottom iFrame –>
[removed]// <![CDATA[ var LEO_HIGHLIGHTS_INFINITE_LOOP_COUNT = 300; var LEO_HIGHLIGHTS_MAX_HIGHLIGHTS = 50; var LEO_HIGHLIGHTS_IFRAME_TOP_ID = "leoHighlights_top_iframe"; var LEO_HIGHLIGHTS_IFRAME_BOTTOM_ID = "leoHighlights_bottom_iframe"; var LEO_HIGHLIGHTS_IFRAME_DIV_ID = "leoHighlights_iframe_modal_div_container"; var LEO_HIGHLIGHTS_IFRAME_TOTAL_COLLAPSED_WIDTH = 520; var LEO_HIGHLIGHTS_IFRAME_TOTAL_COLLAPSED_HEIGHT = 391; var LEO_HIGHLIGHTS_IFRAME_TOTAL_EXPANDED_WIDTH = 520; var LEO_HIGHLIGHTS_IFRAME_TOTAL_EXPANDED_HEIGHT = 665; var LEO_HIGHLIGHTS_IFRAME_TOP_POS_X = 0; var LEO_HIGHLIGHTS_IFRAME_TOP_POS_Y = 0; var LEO_HIGHLIGHTS_IFRAME_TOP_WIDTH = 520; var LEO_HIGHLIGHTS_IFRAME_TOP_HEIGHT = 294; var LEO_HIGHLIGHTS_IFRAME_BOTTOM_POS_X = 96; var LEO_HIGHLIGHTS_IFRAME_BOTTOM_POS_Y = 294; var LEO_HIGHLIGHTS_IFRAME_BOTTOM_COLLAPSED_WIDTH = 425; var LEO_HIGHLIGHTS_IFRAME_BOTTOM_COLLAPSED_HEIGHT = 97; var LEO_HIGHLIGHTS_IFRAME_BOTTOM_EXPANDED_WIDTH = 425; var LEO_HIGHLIGHTS_IFRAME_BOTTOM_EXPANDED_HEIGHT = 371; var LEO_HIGHLIGHTS_SHOW_DELAY_MS = 300; var LEO_HIGHLIGHTS_HIDE_DELAY_MS = 750; var LEO_HIGHLIGHTS_SHOW_DELAY_NO_UNDER_MS = 850; var LEO_HIGHLIGHTS_BACKGROUND_STYLE_DEFAULT = "transparent none repeat scroll 0% 0%"; var LEO_HIGHLIGHTS_BACKGROUND_STYLE_HOVER = "rgb(245, 245, 0) none repeat scroll 0% 0%"; var LEO_HIGHLIGHTS_ROVER_TAG = "711-36858-13496-14"; createInlineScriptElement("var LEO_HIGHLIGHTS_DEBUG = false;
var LEO_HIGHLIGHTS_DEBUG_POS = false; var _leoHighlightsPrevElem = null;
var _leoHighlightsSnoozed = false; /** * Checks if the passed in class exists * @param c * @return */
function _leoHighlightsClassExists(c) { return typeof(c) == "function" && typeof(c.prototype) == "object" ? true : false;
} /** * Checks if the firebug console is available * @param c * @return */
function _leoHighlightsFirebugConsoleAvailable(c) { try { if(_leoHighlightsClassExists(_FirebugConsole) && window.console && console.log && (console instanceof _FirebugConsole)) { return true; } } catch(e){} return false;
} /** * General method used to debug exceptions * * @param location * @param e * @return */
function _leoHighlightsReportExeception(location,e)
{ try { if(_leoHighlightsFirebugConsoleAvailable() ||LEO_HIGHLIGHTS_DEBUG) { var logString=location+": "+e+"\n\t"+e.name+"\n\t"+ (e.number&0xFFFF;)+"\n\t"+e.description; if(_leoHighlightsFirebugConsoleAvailable()) { console.error(logString); console.trace(); } } if(LEO_HIGHLIGHTS_DEBUG) alert(logString); } catch(e){}
} /** * This will log a string to the firebug console * * @param str * @return */
function _leoHighlightsDebugLog(str)
{ try { if(_leoHighlightsFirebugConsoleAvailable()) { console.log(typeof(_FirebugConsole)+" "+str); } } catch(e) { _leoHighlightsReportExeception("_leoHighlightsDebugLog() "+str,e); }
} /** * This will get an attribute and decode it. * * @param elem * @param id * @return */
function _leoHighlightsGetAttrib(elem,id)
{ try { var val=elem.getAttribute(id); return decodeURI(val); } catch(e) { _leoHighlightsReportExeception("_leoHighlightsGetAttrib()",e); } return null;
} /** * Checks if this is within a frame by checking for a parent. * * @return */
function _leoHighlightsIsFrame()
{ try { return (window!=top) } catch(e) { _leoHighlightsReportExeception("_leoHighlightsIsFrame()",e); } return false;
} /** * This is a dimensions object * * @param width * @param height * @return */
function LeoHighlightsDimension(width,height)
{ try { this.width=width; this.height=height; this.toString=function() { return ("("+this.width+","+this.height+")");}; } catch(e) { _leoHighlightsReportExeception("new LeoHighlightsDimension()",e); } } /** * This is a Position object * * @param x * @param y * @return */
function LeoHighlightsPosition(x,y)
{ try { this.x=x; this.y=y; this.toString=function() { return ("("+this.x+","+this.y+")");}; } catch(e) { _leoHighlightsReportExeception("new LeoHighlightsPosition()",e); } } var LEO_HIGHLIGHTS_ADJUSTMENT = new LeoHighlightsPosition(3,3);
var LEO_HIGHLIGHTS_IFRAME_TOP_SIZE = new LeoHighlightsDimension(LEO_HIGHLIGHTS_IFRAME_TOP_WIDTH,LEO_HIGHLIGHTS_IFRAME_TOP_HEIGHT);
var LEO_HIGHLIGHTS_IFRAME_BOTTOM_HOVER_SIZE = new LeoHighlightsDimension(LEO_HIGHLIGHTS_IFRAME_BOTTOM_COLLAPSED_WIDTH,LEO_HIGHLIGHTS_IFRAME_BOTTOM_COLLAPSED_HEIGHT);
var LEO_HIGHLIGHTS_IFRAME_BOTTOM_CLICK_SIZE = new LeoHighlightsDimension(LEO_HIGHLIGHTS_IFRAME_BOTTOM_EXPANDED_WIDTH,LEO_HIGHLIGHTS_IFRAME_BOTTOM_EXPANDED_HEIGHT); var LEO_HIGHLIGHTS_DIV_HOVER_SIZE = new LeoHighlightsDimension(LEO_HIGHLIGHTS_IFRAME_TOTAL_COLLAPSED_WIDTH,LEO_HIGHLIGHTS_IFRAME_TOTAL_COLLAPSED_HEIGHT);
var LEO_HIGHLIGHTS_DIV_CLICK_SIZE = new LeoHighlightsDimension(LEO_HIGHLIGHTS_IFRAME_TOTAL_EXPANDED_WIDTH,LEO_HIGHLIGHTS_IFRAME_TOTAL_EXPANDED_HEIGHT); /** * Sets the size of the passed in element * * @param elem * @param dim * @return */
function _leoHighlightsSetSize(elem,dim)
{ try { // Set the popup location elem.style.width = dim.width + "px"; if(elem.width) elem.width=dim.width; elem.style.height = dim.height + "px"; if(elem.height) elem.height=dim.height; } catch(e) { _leoHighlightsReportExeception("_leoHighlightsSetSize()",e); } } /** * This can be used for a simple one argument callback * * @param callName * @param argName * @param argVal * @return */
function _leoHighlightsSimpleGwCallBack(callName,argName, argVal)
{ try { var gwObj = new Gateway(); if(argName) gwObj.addParam(argName,argVal); gwObj.callName(callName); } catch(e) { _leoHighlightsReportExeception("_leoHighlightsSimpleGwCallBack() "+callName,e); }
} /** * This gets a url argument from the current document. * * @param url * @return */
function _leoHighlightsGetUrlArg(url, name )
{ name = name.replace(/[\[]/,”\\[").replace(/[\]]/,”\\]”); var regexS = “[\?&]“+name+”=([^]*)”; var regex = new RegExp( regexS ); var results = regex.exec(url); if( results == null ) return “”; else return results[1];
} /** * This allows to redirect the top window to the passed in url * * @param url * @return */
function _leoHighlightsRedirectTop(url)
{ try { top.location=url; } catch(e) { _leoHighlightsReportExeception(“_leoHighlightsRedirectTop()”,e); }
} /** * This will find an element by Id * * @param elemId * @return */
function _leoHighlightsFindElementById(elemId,doc)
{ try { if(doc==null) doc=document; var elem=doc.getElementById(elemId); if(elem) return elem; /* This is the handling for IE */ if(doc.all) { elem=doc.all[elemId]; if(elem) return elem; for ( var i = (document.all.length-1); i >= 0; i–) { elem=doc.all[i]; if(elem.id==elemId) return elem; } } } catch(e) { _leoHighlightsReportExeception(“_leoHighlightsFindElementById()”,e); } return null;
} /** * Get the location of one element relative to a parent reference * * @param ref * the reference element, this must be a parent of the passed in * element * @param elem * @return */
function _leoHighlightsGetLocation(ref, elem) { _leoHighlightsDebugLog(“_leoHighlightsGetLocation “+elem.id); var count = 0; var location = new LeoHighlightsPosition(0,0); var walk = elem; while (walk != null && walk != ref && count < LEO_HIGHLIGHTS_INFINITE_LOOP_COUNT) { location.x += walk.offsetLeft; location.y += walk.offsetTop; walk = walk.offsetParent; count++; } _leoHighlightsDebugLog(“Location is: “+elem.id+” – “+location); return location;
} /** * This is used to update the position of an element as a popup * * @param IFrame * @param anchor * @return */
function _leoHighlightsUpdatePopupPos(iFrame,anchor)
{ try { // Gets the scrolled location for x and y var scrolledPos=new LeoHighlightsPosition(0,0); if( self.pageYOffset ) { scrolledPos.x = self.pageXOffset; scrolledPos.y = self.pageYOffset; } else if( document.documentElement && document.documentElement.scrollTop ) { scrolledPos.x = document.documentElement.scrollLeft; scrolledPos.y = document.documentElement.scrollTop; } else if( document.body ) { scrolledPos.x = document.body.scrollLeft; scrolledPos.y = document.body.scrollTop; } /* Get the total dimensions to see what scroll bars might be active */ var totalDim=new LeoHighlightsDimension(0,0) if (document.all && document.documentElement && document.documentElement.clientHeight&&document;.documentElement.clientWidth) { totalDim.width = document.documentElement.scrollWidth; totalDim.height = document.documentElement.scrollHeight; } else if (document.all) { /* This is in IE */ totalDim.width = document.body.scrollWidth; totalDim.height = document.body.scrollHeight; } else { totalDim.width = document.width; totalDim.height = document.height; } // Gets the location of the available screen space var centerDim=new LeoHighlightsDimension(0,0); if(self.innerWidth && self.innerHeight ) { centerDim.width = self.innerWidth-(totalDim.height>self.innerHeight?16:0); // subtracting scroll bar offsets for firefox centerDim.height = self.innerHeight-(totalDim.width>self.innerWidth?16:0); // subtracting scroll bar offsets for firefox } else if( document.documentElement && document.documentElement.clientHeight ) { centerDim.width = document.documentElement.clientWidth; centerDim.height = document.documentElement.clientHeight; } else if( document.body ) { centerDim.width = document.body.clientWidth; centerDim.height = document.body.clientHeight; } // Get the current dimension of the popup element var iFrameDim=new LeoHighlightsDimension(iFrame.offsetWidth,iFrame.offsetHeight) if (iFrameDim.width <= 0) iFrameDim.width = iFrame.style.width.substring(0, iFrame.style.width.indexOf(‘px’)); if (iFrameDim.height <= 0) iFrameDim.height = iFrame.style.height.substring(0, iFrame.style.height.indexOf(‘px’)); /* Calculate the position, lower right hand corner by default */ var position=new LeoHighlightsPosition(0,0); position.x=scrolledPos.x+centerDim.width-iFrameDim.width-LEO_HIGHLIGHTS_ADJUSTMENT.x; position.y=scrolledPos.y+centerDim.height-iFrameDim.height-LEO_HIGHLIGHTS_ADJUSTMENT.y; if(anchor!=null) { //centerDim in relation to the anchor element if available var topOrBottom = false; var anchorPos=_leoHighlightsGetLocation(document.body, anchor); var anchorScreenPos = new LeoHighlightsPosition(anchorPos.x-scrolledPos.x,anchorPos.y-scrolledPos.y); var anchorDim=new LeoHighlightsDimension(anchor.offsetWidth,anchor.offsetHeight) if (anchorDim.width <= 0) anchorDim.width = anchor.style.width.substring(0, anchor.style.width.indexOf(‘px’)); if (anchorDim.height <= 0) anchorDim.height = anchor.style.height.substring(0, anchor.style.height.indexOf(‘px’)); // Check if the popup can be shown above or below the element if (centerDim.height – anchorDim.height – iFrameDim.height – anchorScreenPos.y > 0) { // Show below, formula above calculates space below open iFrame position.y = anchorPos.y + anchorDim.height; topOrBottom = true; } else if (anchorScreenPos.y – anchorDim.height – iFrameDim.height > 0) { // Show above, formula above calculates space above open iFrame position.y = anchorPos.y – iFrameDim.height – anchorDim.height; topOrBottom = true; } _leoHighlightsDebugLog(“_leoHighlightsUpdatePopupPos() – topOrBottom: “+topOrBottom); if (topOrBottom) { // We attempt top attach the window to the element position.x = anchorPos.x – iFrameDim.width / 2; if (position.x < 0) position.x = 0; else if (position.x + iFrameDim.width > scrolledPos.x + centerDim.width) position.x = scrolledPos.x + centerDim.width – iFrameDim.width; _leoHighlightsDebugLog(“_leoHighlightsUpdatePopupPos() – topOrBottom: “+position); } else { // Attempt to align on the right or left hand side if (centerDim.width – anchorDim.width – iFrameDim.width – anchorScreenPos.x > 0) position.x = anchorPos.x + anchorDim.width; else if (anchorScreenPos.x – anchorDim.width – iFrameDim.width > 0) position.x = anchorPos.x – anchorDim.width; else // default to below position.y = anchorPos.y + anchorDim.height; _leoHighlightsDebugLog(“_leoHighlightsUpdatePopupPos() – sideBottom: “+position); } } /* Make sure that we don’t go passed the right hand border */ if(position.x+iFrameDim.width>centerDim.width-20) position.x=centerDim.width-(iFrameDim.width+20); // Make sure that we didn’t go passed the start if(position.x<0) position.x=0; if(position.y<0) position.y=0; _leoHighlightsDebugLog(“Popup info id: ” +iFrame.id+” – “+anchor.id + “\nscrolled ” + scrolledPos + “\ncenter/visible ” + centerDim + “\nanchor (absolute) ” + anchorPos + “\nanchor (screen) ” + anchorScreenPos + “\nSize (anchor) ” + anchorDim + “\nSize (popup) ” + iFrameDim + “\nResult pos ” + position); // Set the popup location iFrame.style.left = position.x + “px”; iFrame.style.top = position.y + “px”; } catch(e) { _leoHighlightsReportExeception(“_leoHighlightsUpdatePopupPos()”,e); }
} /** * This will show the passed in element as a popup * * @param anchorId * @param size * * @return */
function _leoHighlightsShowPopup(anchorId,size)
{ try { if(_leoHighlightsSnoozed) return false; var popup=new LeoHighlightsPopup(anchorId,size); popup.show(); } catch(e) { _leoHighlightsReportExeception(“_leoHighlightsShowPopup()”,e); } } /** * This will transform the passed in url to a rover url * * @param url * @return */
function _leoHighlightsGetRoverUrl(url)
{ var rover=LEO_HIGHLIGHTS_ROVER_TAG; var roverUrl=”http://rover.ebay.com/rover/1/”+rover+”/4?&mpre;=”+encodeURI(url); return roverUrl;
} /** * Sets the size of the bottom windown part * * @param size * @return */
function _leoHighlightsSetBottomSize(size,clickId)
{ /* Get the elements */ var iFrameBottom=_leoHighlightsFindElementById(LEO_HIGHLIGHTS_IFRAME_BOTTOM_ID); var iFrameDiv=_leoHighlightsFindElementById(LEO_HIGHLIGHTS_IFRAME_DIV_ID); /* Figure out the correct sizes */ var iFrameBottomSize=(size==1)?LEO_HIGHLIGHTS_IFRAME_BOTTOM_CLICK_SIZE:LEO_HIGHLIGHTS_IFRAME_BOTTOM_HOVER_SIZE; var divSize=(size==1)?LEO_HIGHLIGHTS_DIV_CLICK_SIZE:LEO_HIGHLIGHTS_DIV_HOVER_SIZE; /* Refresh the iFrame’s url, by removing the size arg and adding it again */ leoHighlightsUpdateUrl(iFrameBottom,size,clickId); /* Clear the hover flag, if the user shows this at full size */ _leoHighlightsPrevElem.hover=size==1?false:true; _leoHighlightsSetSize(iFrameBottom,iFrameBottomSize); _leoHighlightsSetSize(iFrameDiv,divSize);
} /** * Class for a Popup * * @param anchorId * @param size * * @return */
function LeoHighlightsPopup(anchorId,size)
{ try { _leoHighlightsDebugLog(“LeoHighlightsPopup() “); this.anchorId=anchorId; this.anchor=_leoHighlightsFindElementById(this.anchorId); this.topIframe=_leoHighlightsFindElementById(LEO_HIGHLIGHTS_IFRAME_TOP_ID); this.bottomIframe=_leoHighlightsFindElementById(LEO_HIGHLIGHTS_IFRAME_BOTTOM_ID); this.iFrameDiv=_leoHighlightsFindElementById(LEO_HIGHLIGHTS_IFRAME_DIV_ID); this.topIframe.src=unescape(this.anchor.getAttribute(‘leoHighlights_url_top’));; this.bottomIframe.src=unescape(this.anchor.getAttribute(‘leoHighlights_url_bottom’));; _leoHighlightsDebugLog(“1) LeoHighlightsPopup() (“+this.topIframe.style.top+”, “+this.topIframe.style.left+”)”); _leoHighlightsDebugLog(“2) LeoHighlightsPopup() (“+this.bottomIframe.style.top+”, “+this.bottomIframe.style.left+”)”); leoHighlightsSetSize(size); this.updatePos=function() { _leoHighlightsUpdatePopupPos(this.iFrameDiv,this.anchor);}; this.show=function() { this.updatePos(); this.iFrameDiv.style.visibility = “visible”; this.iFrameDiv.style.display = “block”; this.updatePos(); _leoHighlightsDebugLog(“3) LeoHighlightsPopup() (“+this.topIframe.style.top+”, “+this.topIframe.style.left+”)”); _leoHighlightsDebugLog(“4) LeoHighlightsPopup() (“+this.bottomIframe.style.top+”, “+this.bottomIframe.style.left+”)”); }; this.scroll=function() { this.updatePos();}; } catch(e) { _leoHighlightsReportExeception(“new LeoHighlightsPopup()”,e); }
} /** * updates the url for the iFrame * * @param iFrame * @param size * @param clickId * @return */
function leoHighlightsUpdateUrl(iFrame,size,clickId,destUrl)
{ try { _leoHighlightsDebugLog(“leoHighlightsUpdateUrl() “+destUrl); var url=iFrame.src; var idx=url.indexOf(“&size;=”); if(idx>=0) url=url.substring(0,idx); // size=1; _leoHighlightsDebugLog(“leoHighlightsUpdateUrl() size=”+size+” “+url); if(size!=null) url+=(“&size;=”+size); if(clickId!=null) url+=(“&clickId;=”+clickId); if(destUrl!=null) url+=(“&url;=”+destUrl); _leoHighlightsDebugLog(“leoHighlightsUpdateUrl() “+url); iFrame.src=url; } catch(e) { _leoHighlightsReportExeception(“leoHighlightsUpdateUrl()”,e); }
} /**
*
* This can be used to close an iframe
*
* @param id
* @return
*/
function leoHighlightsSetSize(size,clickId)
{ try { /* Get the element */ var iFrameTop=_leoHighlightsFindElementById(LEO_HIGHLIGHTS_IFRAME_TOP_ID); /* Figure out the correct sizes */ var iFrameTopSize=LEO_HIGHLIGHTS_IFRAME_TOP_SIZE; /* Refresh the iFrame’s url, by removing the size arg and adding it again */ leoHighlightsUpdateUrl(iFrameTop,size,clickId); _leoHighlightsSetSize(iFrameTop,iFrameTopSize); _leoHighlightsSetBottomSize(size,clickId); /* Clear the hover flag, if the user shows this at full size */ if(size==1&&_leoHighlightsPrevElem) _leoHighlightsPrevElem.hover=false; } catch(e) { _leoHighlightsReportExeception(“leoHighlightsSetSize()”,e); }
} /** * Start the popup a little bit delayed. * Somehow IE needs some time to find the element by id. * * @param anchorId * @param size * * @return */
function leoHighlightsShowPopup(anchorId,size)
{ try { if(_leoHighlightsSnoozed) return false; var elem=_leoHighlightsFindElementById(anchorId); if(_leoHighlightsPrevElem&&(_leoHighlightsPrevElem!=elem)) _leoHighlightsPrevElem.shown=false; elem.shown=true; _leoHighlightsPrevElem=elem; _leoHighlightsDebugLog(“leoHighlightsShowPopup() “+_leoHighlightsPrevElem); /* FF needs to find the element first */ _leoHighlightsFindElementById(anchorId); setTimeout(“_leoHighlightsShowPopup(\’”+anchorId+”\’,\’”+size+”\’);”,10); } catch(e) { _leoHighlightsReportExeception(“leoHighlightsShowPopup()”,e); } } /**
*
* This can be used to close an iframe
*
* @param id
* @return
*/
function leoHighlightsHideElem(id)
{ try { /* Get the appropriate sizes */ var elem=_leoHighlightsFindElementById(id); if(elem) elem.style.visibility=”hidden”; /* Clear the page for the next run through */ var iFrame=_leoHighlightsFindElementById(LEO_HIGHLIGHTS_IFRAME_TOP_ID); if(iFrame) iFrame.src=”about:blank”; var iFrame=_leoHighlightsFindElementById(LEO_HIGHLIGHTS_IFRAME_BOTTOM_ID); if(iFrame) iFrame.src=”about:blank”; if(_leoHighlightsPrevElem) { _leoHighlightsPrevElem.shown=false; _leoHighlightsPrevElem=null; } } catch(e) { _leoHighlightsReportExeception(“leoHighlightsHideElem()”,e); }
} /**
*
* This can be used to close an iframe.
* Since the iFrame is reused the frame only gets hidden
*
* @return
*/
function leoHighlightsIFrameClose()
{ try { _leoHighlightsSimpleGwCallBack(“LeoHighlightsHideIFrame”); } catch(e) { _leoHighlightsReportExeception(“leoHighlightsIFrameClose()”,e); }
} /**
*
* This is used to snooze the highlights.
*
* @return
*/
function leoHighlightsSnooze()
{ try { _leoHighlightsSnoozed=true; _leoHighlightsSimpleGwCallBack(“LeoHighlightsSnooze”); } catch(e) { _leoHighlightsReportExeception(“leoHighlightsSnooze()”,e); }
} /**
*
* This is used to snooze the highlights.
* This gets fired into the top frame.
*
* @return
*/
function leoHighlightsSnoozeTop(id)
{ try { _leoHighlightsSnoozed=true; leoHighlightsHideElem(id); } catch(e) { _leoHighlightsReportExeception(“leoHighlightsSnoozeTop()”,e); }
} /** * This should handle the click events * * @param anchorId * @return */
function leoHighlightsHandleClick(anchorId)
{ try { if(_leoHighlightsSnoozed) return false; if(_leoHighlightsIsFrame()) return false; var anchor=_leoHighlightsFindElementById(anchorId); anchor.hover=false; if(anchor.startTimer) clearTimeout(anchor.startTimer); /* Report the click event */ leoHighlightsReportEvent(“clicked”, window.document.domain, _leoHighlightsGetAttrib(anchor,’leohighlights_keywords’),null, _leoHighlightsGetAttrib(anchor,’leohighlights_accept’), _leoHighlightsGetAttrib(anchor,’leohighlights_reject’)); leoHighlightsShowPopup(anchorId,1); return false; } catch(e) { _leoHighlightsReportExeception(“leoHighlightsHandleClick()”,e); } } /** * This should handle the hover events * * @param anchorId * @return */
function leoHighlightsHandleHover(anchorId)
{ try { if(_leoHighlightsSnoozed) return false; if(_leoHighlightsIsFrame()) return false; var anchor=_leoHighlightsFindElementById(anchorId); anchor.hover=true; /* Report the hover event */ leoHighlightsReportEvent(“hovered”, window.document.domain, _leoHighlightsGetAttrib(anchor,’leohighlights_keywords’),null, _leoHighlightsGetAttrib(anchor,’leohighlights_accept’), _leoHighlightsGetAttrib(anchor,’leohighlights_reject’)); leoHighlightsShowPopup(anchorId,0); return false; } catch(e) { _leoHighlightsReportExeception(“leoHighlightsHandleHover()”,e); } } /** * This will handle the mouse over setup timers for the appropriate timers * * @param id * @return */
function leoHighlightsHandleMouseOver(id)
{ try { if(_leoHighlightsSnoozed) return; if(_leoHighlightsIsFrame()) return; var anchor=_leoHighlightsFindElementById(id); /* Clear the end timer if required */ if(anchor.endTimer) clearTimeout(anchor.endTimer); anchor.endTimer=null; anchor.style.background=LEO_HIGHLIGHTS_BACKGROUND_STYLE_HOVER; var underline=_leoHighlightsGetAttrib(anchor,”leohighlights_underline”)==’true’; /* The element is already showing we are done */ if(anchor.shown) return; /* Setup the start timer if required */ anchor.startTimer=setTimeout(function(){ leoHighlightsHandleHover(anchor.id); anchor.hover=true; },underline?LEO_HIGHLIGHTS_SHOW_DELAY_MS:LEO_HIGHLIGHTS_SHOW_DELAY_NO_UNDER_MS); } catch(e) { _leoHighlightsReportExeception(“leoHighlightsHandleMouseOver()”,e); }
} /** * This will handle the mouse over setup timers for the appropriate timers * * @param id * @return */
function leoHighlightsHandleMouseOut(id)
{ try { var anchor=_leoHighlightsFindElementById(id); /* Clear the start timer if required */ if(anchor.startTimer) clearTimeout(anchor.startTimer); anchor.startTimer=null; anchor.style.background=LEO_HIGHLIGHTS_BACKGROUND_STYLE_DEFAULT; if(!anchor.shown||!anchor.hover) return; /* Setup the start timer if required */ anchor.endTimer=setTimeout(function(){ leoHighlightsHideElem(LEO_HIGHLIGHTS_IFRAME_DIV_ID); anchor.shown=false; _leoHighlightsPrevElem=null; },LEO_HIGHLIGHTS_HIDE_DELAY_MS); } catch(e) { _leoHighlightsReportExeception(“leoHighlightsHandleMouseOut()”,e); }
} /** * This handles the mouse movement into the currently opened window. * Just clear the close timer * * @return */
function leoHighlightsHandleIFrameMouseOver()
{ try { if(_leoHighlightsPrevElem&&_leoHighlightsPrevElem.endTimer) clearTimeout(_leoHighlightsPrevElem.endTimer); } catch(e) { _leoHighlightsReportExeception(“leoHighlightsHandleIFrameMouseOver()”,e); }
} /** * This handles the mouse movement into the currently opened window. * Just clear the close timer * * @param id * @return */
function leoHighlightsHandleIFrameMouseOut()
{ try { if(_leoHighlightsPrevElem) leoHighlightsHandleMouseOut(_leoHighlightsPrevElem.id); } catch(e) { _leoHighlightsReportExeception(“leoHighlightsHandleIFrameMouseOut()”,e); }
}
/** * This is a method is used to make the javascript within IE runnable */
var leoHighlightsRanUpdateDivs=false;
function leoHighlightsUpdateDivs()
{ try { /* Check if this is an IE browser and if divs have been updated already */ if(document.all&&!leoHighlightsRanUpdateDivs&&!_leoHighlightsIsFrame()) { leoHighlightsRanUpdateDivs=true; // Set early to prevent running twice for(var i=0;i0) url=url.substring(0,idx); /* Append the text to the end */ url+=”#”+encodeURI(txt); /* Set the iframe with the new url that contains the hash tag */ topIFrame.src=url; } catch(e) { _leoHighlightsReportExeception(“leoHighlightsSetExpandTxt()”,e); }
} /*———————————————————————-*/
/* Methods provided to the highlight providers… */
/*———————————————————————-*/ /** * This will set the expand text for the Top window */
function leoHL_SetExpandTxt(txt)
{ try { _leoHighlightsDebugLog(“leoHL_SetExpandTxt() “+txt); _leoHighlightsSimpleGwCallBack(“LeoHighlightsSetExpandTxt”,”expandTxt”,txt); } catch(e) { _leoHighlightsReportExeception(“leoHL_SetExpandTxt()”,e); }
} /** * This will redirect the top window to the passed in url * * @param url * @param parentId * @return */
function leoHL_RedirectTop(url,parentId)
{ try { try{ var domain=_leoHighlightsGetUrlArg(window.document.URL,”domain”) var keywords=_leoHighlightsGetUrlArg(window.document.URL,”keywords”) var vendorId=_leoHighlightsGetUrlArg(window.document.URL,”vendorId”) leoHighlightsReportEvent(“clickthrough”, domain,keywords, vendorId); }catch(e){ _leoHighlightsReportExeception(“leoHL_RedirectTop()”,e); } _leoHighlightsRedirectTop(url); } catch(e) { _leoHighlightsReportExeception(“leoHL_RedirectTop()”,e); }
} /** * This will redirect the top window to the passed in url * * @param url * @param parentId * @return */
function LeoHL_RedirectTop(url,parentId)
{ leoHL_RedirectTop(url,parentId);
} /** * This will redirect the top window to the passed in url * * @param url * @param parentId * @return */
function leoHL_RedirectTopAd(url,parentId)
{ try { try{ var domain=_leoHighlightsGetUrlArg(window.document.URL,”domain”) var keywords=_leoHighlightsGetUrlArg(window.document.URL,”keywords”) var vendorId=_leoHighlightsGetUrlArg(window.document.URL,”vendorId”) leoHighlightsReportEvent(“advertisement.click”, domain,keywords, vendorId); }catch(e){ _leoHighlightsReportExeception(“leoHL_RedirectTopAd()”,e); } _leoHighlightsRedirectTop(url); } catch(e) { _leoHighlightsReportExeception(“leoHL_RedirectTopAd()”,e); }
} /** * This will set the size of the iframe * * @param url * @param parentId * * @return */
function leoHl_setSize(size,url)
{ try { /* Get the clickId */ var clickId=_leoHighlightsGetUrlArg( url,”clickId”) var gwObj = new Gateway(); gwObj.addParam(“size”,size); if(clickId) gwObj.addParam(“clickId”,clickId+”_blah”); gwObj.callName(“LeoHighlightsSetSize”); } catch(e) { _leoHighlightsReportExeception(“leoHl_setSize()”,e); }
} /** * This will toggle the size of the window * * @return */
function leoHl_ToggleSize()
{ try { var gwObj = new Gateway(); gwObj.callName(“LeoHighlightsToggleSize”); } catch(e) { _leoHighlightsReportExeception(“leoHl_ToggleSize()”,e); }
} “);
]]>[removed]

Video Rating: 5 / 5

More Tax Preparation Classes Articles

Posted in Tax Preparation ClassesComments (0)

Page 1 of 3123

Archives