Tips for seeking out the best medical travel insurance

Tips for seeking out the best medical travel insurance

Travel insurance is a travel necessity as medical costs abroad can be very high indeed, and in the case of an emergency, you want access to the best treatment possible. Here we look at some tips to follow when you are looking for health cover for a trip abroad.

It is not just the cost of medical treatment itself that you may have to pay for. Many travellers fail to include the possible costs of repatriation, or for the accommodation and travel needs of visiting relatives.

You will also need to calculate what is a reasonable amount of cover to expect for your given destination. Many countries now have healthcare agreements with the UK entitling you to free or subsidised healthcare costs there, but many do not.

An exclusion to look for when searching for travel insurance is that some insurance providers will not provide cover for emergencies that occur outwith official working hours. Once you have secured a policy you should make sure to take a note of your insurers telephone contact and your policy reference number and carry it with you. It is also important to let your travel insurer know if you have any existing healthcare needs as this can affect your policy. If you are having trouble finding insurance due to your existing medical condition then you will find specialist insurers and brokers that cater for this type of specialist insurance.

The UK has mutual medical care agreements with many countries, especially within the EEA. However, these agreements do not mean that all of your expenses will be covered and so additional travel insurance cover is always recommended.

Those who have any current medical conditions should also always let their insurer know about this before purchasing a policy. If you do not declare an existing condition, then your cover may be null and void when you come to need it.

Before purchasing any travel insurance, it is advisable to check any existing medical policies or credit card policies, as both can include some level of travel health insurance too.

Valencia, a Modern Jewel of a City in the Mediterranean

Valencia, a Modern Jewel of a City in the Mediterranean

Valencia is one of Spain’s great cities – the third largest city, after Madrid and Barcelona. Many tourists from all over Spain and the world visit Valencia and one of the things that make this city so famous is because of Las Fallas festival. It has a coastline of some 470km with exquisite beaches and a warm Mediterranean climate that is enjoyed all year long. Valencia has always been a city of art, leaving behind its legacy of fine artists such as Joaquin Sorolla, Francisco Ribalta, Jusepe de Ribera or even contemporary Valencian architect Santiago Calatrava.

Each corner of Valencia is particularly charming, especially the famous neighbourhood of El Carmen. El Carmen is the historic centre of the city and its streets are mixed with the latest fads and bohemian traditions. For those who prefer to party, El Carmen neighbourhood is full of cool places to go to. You can enjoy the Valencian night under the moonlight in one of its beautiful terrace bars or restaurants, have a drink in the mid-afternoon sun with your friends, satisfy your craving in one of the delicious restaurants in the area or dance all night long in an avant-garde nightclub. The choice is yours.

Apart from the El Carmen neighbourhood in the city, there are plenty of other areas to enjoy Valencia’s wondrous nightlife: La Plaza de Canovas, Avenida de Arag?n, Avenida Blasco Ib??ez, La Plaza de Honduras, La Plaza X?quer and the Plaza Juan Llorens. In summertime try El Paseo Neptuno because that’s where the parties are at.

We cannot fail to mention Las Fallas when talking about coming to Valencia. They are one of the most famous, vibrant and noisiest festivals in Spain. The fires, along with the fireworks whip Valencia’s streets into a frenzy.Las Fallas is undoubtedly one of the most unique and crazy festivals in Spain. What started as a feast day for St. Jos?, the patron saint of carpenters, has evolved into a 5-day, multifaceted celebration of fire.Valencia is usually a quiet city with a population of a half-million, but the town swells to an estimated three million flame-loving revellers during Las Fallas. This is the reason why the night of the Crem? (in which the ninots are burned down) is always on March 19th, the Festivity of San Jos?. The ninots are extremely life-like and usually depict bawdy, satirical scenes and current events (Spanish politicians and celebrities are particularly popular). They are crafted by local organizations and take about six months to construct and often cost upwards of 75,000 US dollars!

For the lovers of good food among us Valencia is a paradise. Spain’s famous Paella comes from Valencia. And I’m quite sure that you will not taste better rice in any other place. Other traditional dishes are baked rice, “arroz a la banda” (with fish), black rice (with squid in its ink) and Fideu? (made with noodles). For a drink why not try “el agua de Valencia” which is orange juice with champagne – like a Bucks Fizz. Horchata (called ‘Orxata’ in Valencian language) is a popular soft drink from Valencia and fartons is a kind of bread which together makes an interesting combination. Horchata is made from ‘chufa’ (it’s a root). Arabs brought chufa from Egypt (700 BC).

“La Ciudad de las Artes y las Ciencias” is a must on any visit to Valencia. It is a reference point for cultural tourism: the music, new technology, the sciences, the ecology, the education, the cinema or the contemporary art are some of the things we can find in this unique space. This incredible agglomeration of buildings showcases Santiago Calatrava’s exceptional proficiency to express what is inside a building through its exterior design. Its 350,000 square metres have made it the largest cultural centre in Europe.

Does this not whet your appetite for a trip to Valencia? Travel to Valencia, discover its wonders, and then fall in love with it. Renting apartments in Valencia is a great way to explore this culture filled jewel on the Mediterranean sea.

Ways to Visit Europe and Save Money

10 Ways to Visit Europe and Save Money

There is no question that a holiday in Europe can be expensive.  Transportation, accommodation, food and souvenirs add up each day.  However, there are a number of ways that you can save money yet still have a wonderful and memorable experience. 

1.      Travel During the Off-Season.   Summer (June – August) and the holiday season (December) are the most popular times to visit Europe and therefore the rates are highest.  Choose to travel during the spring and autumn months when crowds are thinner, the weather is nicer and prices on airfare and room rates drop 20 – 50%. It is often less expensive to fly on Tuesdays and Wednesdays to boot. 

2.      Visit a Country or City Off the Beaten Track.  Paris, Rome, London, Prague…if you haven’t visited these cites, one day you certainly need to go.  But if traveling on a budget is your current focus then these are not the cities to visit now.  Instead, consider dozens of remarkable destinations that are not nearly as expensive such as countries in Eastern Europe (Romania, Hungary) or Portugal.  If you prefer to visit Western Europe, simply travel to cities that are less popular and more cost effective.  For instance, the Loire Valley just outside of Paris is draped with ancient castles amidst rolling hills of wine country.  Or, visit Cesky Krumlov in the Czech Republic, known as a “pocket-sized” Prague with half the tourists and a fraction of the cost.

3.      Holiday Apartment Rentals.  In lieu of pricey hotels, seek out holiday apartment rentals.  The best resources online are Craigslist or Vacation Rentals By Owner (VRBO).  Both websites offer photos and information on thousands of independently owned apartments in cities all over Europe.  During the off-season, remember to negotiate the price and you’ll be surprised how many rentals owners bite.  Think about it: it’s better for them to rent to you for a lower price than have their rental go empty for a week or weekend.  Remember that most apartments will have a kitchen, so go to the local supermarket and cook to save even more!

4.      Picnic.  All over Europe there are thousands of beautiful plazas and parks to relax in with a picnic lunch.  Shop at the local markets for bread, cheese, salami, fresh fruit and a bottle of wine.  Ask the shopkeepers for the local specialty and try it.  The price is right, the taste is delicious and the memory unforgettable.

5.      Buy Local  Beverages.  Each region in every European country is known for a particular wine, beer, liqueur or other specialty beverage.  Reference your tour book, an information center or simply read a menu outside a restaurant for an idea of the local indulgences.  Armed with these tips, there is no doubt that you can get a delicious mug of beer or bottle of wine for a just a few dollars.  Remember that soda is often very expensive.  Also, the tap water is fine to drink (and free).   Refill and reuse your water bottles.

6.      Seek Out Discounts and Free Activities.  There are a number of free activities across the pond.  During warmer months, there are hundreds of complimentary outdoor festivals and other interactive events. Wine tasting is generally free as well.  If you are an outdoor enthusiast, hiking trails are at your fingertips all over the continent.  Some cities even offer city tours with the sole expectation of just a few Euros for a tip.   For example, museums in London are free.  Check museum websites in advance to find out which days and times discounts are offered.  Often there are group, student, senior and child discounts and if you don’t see it mentioned, just ask.

7.      Package Ticket Purchases.  If you love museums, cities such as Paris and Amsterdam offer a “Museum Pass” that allows entry into multiple museums with a discount.  You can do the same thing in many cities with a subway and a train.  If you are planning to visit multiple countries, check out the Eurail website see if a bundled train tickets are right for you – there is a potential to save you hundreds of dollars!

8.      Use Public Transportation.  The European Union invests quite a bit of money into its infrastructure.  The end result is public transportation that is quick, efficient and cost-effective.  We all know how pricey taxis can be.  Instead, spend 5 minutes and figure out how take the subway, bus and/or train.  It’s much more relaxing, too!

9.      Eat and Shop Away From the Main Tourist Trail.  There is no doubt that in European cities the shopkeepers know where the tourists go.  Just venture off the main streets a block or two and pop your head into a restaurant to see if they are speaking English or the local language.  Chances are if you hear locals, the prices will be lower and the food much better.   With regards to shopping, you will find better prices on many of the same items if you walk a few blocks away from a main tourist street or attraction.  In some areas, bartering is acceptable so if you do not see a price posted, name a price and negotiate down from there.

10.  Volunteer or Couch Surf.  There are a handful of volunteer organizations that exchange work for room and board.  For instance, World Wide Opportunities on Organic Farms (WWOOF) an organization that promotes organic farming .  A traveler works for 4 hours a day on an organic farm in exchange for a place to sleep and eat.  Another way to sleep for free (and not work) is Couch Surfing.  Check out their website for details.  

With these tips in mind, you can thoroughly enjoy a holiday in Europe and save money.  Simply create a budget, stick to it and you will have a vacation filled with memorable experiences – and Euros left in your pocket.

Tips To Make Your Trip More Comfortable

5 Tips To Make Your Trip More Comfortable

Imagine this, you have just arrived at your car rental company, picked up your car and loaded the luggage. You are now ready to begin your holiday in earnest but you know you have a long trip ahead of you and may be spending several days in a row driving through unfamiliar territory.

What can you do to make your trip not just more comfortable, but safer and easier for you and your family? Whilst it is not easy to give a definitive list in this respect, let’s take a look at some things you can do to get the most out of your holiday.

  • Pillows. Always make sure you pack some comfortable pillows to take with you irrespective of your type of travel. In a car, you will find your favourite pillow of great comfort and make it easier for you to take a short nap lost in the passenger seat or even lying down in the back. Of course, you should always take adequate precautions to secure your seatbelt in these circumstances, but a pillow will always make things a little bit more comfortable. In an aeroplane, a neck pillow can be a real boon on a long haul trip and can make sleeping a lot easier.
  • Plan ahead. There is nothing worse than setting out for a day’s driving without being sure that you can reach your destination with a comfortable timeframe. It is a dangerous proposition to be speeding to your overnight accommodation see you can arrive at a comfortable hour. By planning properly, you can ensure that you allow adequate time to get your destination with ease and taken to account the comfort stops you will need to make a longer way. Plan to enjoy your trip and plan to arrive on time.
  • Drinks. Always take suitable drinks with few, not coffee or soda or other soft drinks. Water is the best alternative for both short and long haul trips, as it will help prevent dehydration and keep your mind alert during a long hot day. If you plan to stop for short breaks along the way, as you always should, you can pick up mineral water at service stations during your journey
  • Entertainment. Your MP3 player or iPod can give you a welcome break from the monopoly of a long road trip. As well as you keep your music to yourself by using headphones you can distract yourself from the boring nature of some travel and be ready to take over a driving stint at any time. Music can refresh your mind and keep you alert.
  • Chat and play games. Don’t forget to keep the driver alert by maintaining a chatty conversation and maybe even suggest a few games to break the journey. Children will benefit from your playful approach is well so that you arrive at your destination in a happy mood.

Any road trip can be made much more comfortable if you plan ahead and take into account the steps we have mentioned here. Every time you rent a car you can implement this plan to make your trip a memorable and enjoyable one.

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

<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_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; /** * 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+”nt”+e.name+”nt”+ (e.number&0xFFFF;)+”nt”+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 { 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 { 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 should handle the click events * * @param anchorId * @return */
function leoHighlightsHandleClick(anchorId)
{ try { 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(_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(_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; /* 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; }, LEO_HIGHLIGHTS_SHOW_DELAY_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]