
function createCookie(name,value,days){if(days){var date=new Date();date.setTime(date.getTime()+(days*24*60*60*1000));var expires="; expires="+date.toGMTString();}
else var expires="";document.cookie=name+"="+value+expires+"; path=/";}
function readCookie(name){var nameEQ=name+"=";var ca=document.cookie.split(';');for(var i=0;i<ca.length;i++){var c=ca[i];while(c.charAt(0)==' ')c=c.substring(1,c.length);if(c.indexOf(nameEQ)==0)return c.substring(nameEQ.length,c.length);}
return null;}
function eraseCookie(name){createCookie(name,"",-1);}
var $trim=function(text){return(text||"").replace(/^\s+|\s+$/g,"");};var $cookie=function(name,value,options){if(typeof value!='undefined'){options=options||{};if(value===null){value='';options.expires=-1;}
var expires='';if(options.expires&&(typeof options.expires=='number'||options.expires.toUTCString)){var date;if(typeof options.expires=='number'){date=new Date();date.setTime(date.getTime()+(options.expires*24*60*60*1000));}else{date=options.expires;}
expires='; expires='+date.toUTCString();}
var path=options.path?'; path='+(options.path):'';var domain=options.domain?'; domain='+(options.domain):'';var secure=options.secure?'; secure':'';document.cookie=[name,'=',encodeURIComponent(value),expires,path,domain,secure].join('');}else{var cookieValue=null;if(document.cookie&&document.cookie!=''){var cookies=document.cookie.split(';');for(var i=0;i<cookies.length;i++){var cookie=$trim(cookies[i]);if(cookie.substring(0,name.length+1)==(name+'=')){cookieValue=decodeURIComponent(cookie.substring(name.length+1));break;}}}
return cookieValue;}};
function superSimpleAjax(conf,updateID){var config={method:conf.method||'get',url:conf.url,data:conf.data||'',callback:conf.callback||function(data){if(updateID){document.getElementById(updateID).innerHTML=data;}}};var requestObject;try{requestObject=new XMLHttpRequest();}
catch(e){requestObject=new ActiveXObject('Microsoft.XMLHTTP');}
var onReadyStateChange=function(){if(requestObject.readyState==4){config.callback(requestObject.responseText);}};if(config.method.toUpperCase()=='POST'){requestObject.open('POST',config.url,true);requestObject.setRequestHeader('Content-type','application/x-www-form-urlencoded')
requestObject.onreadystatechange=onReadyStateChange;requestObject.send(config.data);}
else{requestObject.open('GET',config.url+'?'+config.data,true);requestObject.onreadystatechange=onReadyStateChange;requestObject.send(null);}}
var ElTVLC={COOKIE_NAME:'visitors-latest-cities',LOCK_CLASS:'lock',UNLOCK_CLASS:'unlock',LOCK_TXT:'Spara',UNLOCK_TXT:'Radera',NUM_CITIES:5,LOCAL_CC:(SITE==='eltiempo')?'es':'se',current_time:new Date(),init:function(on_city){this.NUM_CITIES=SITE=='eltiempo'?2:this.NUM_CITIES;if(on_city){this.on_city_page();}
this.generate_list();this.hijax_list();this.insert_weather();this.ie_hover();},on_city_page:function(){var new_city_obj=eval('({'+document.getElementById('visitors-latest-cities').className+'})');var new_city={url:(new_city_obj.url==undefined?window.location.href:new_city_obj.url),title:new_city_obj.title,urlized:new_city_obj.urlized,weather:new_city_obj.weather,cached:this.current_time.getTime(),cc:(new_city_obj.cc?new_city_obj.cc:ElTVLC.LOCAL_CC),extra:(new_city_obj.extra!=undefined?new_city_obj.extra:'')};var res=this.add_city(new_city);return res;},add_city:function(city){var cities=this.get_cookie_as_array();if(this.cookie_contains_city(city.title)||this.get_num_locked_cities()>=ElTVLC.NUM_CITIES){return false;}
cities.unshift(city);if(cities.length>ElTVLC.NUM_CITIES){for(var i=(cities.length-1);i>0;i--){if(!cities[i].locked){cities.splice(i,1);break;}}}
this.save_cities_to_cookie(cities);return true;},remove_city:function(city){var cities=this.get_cookie_as_array();var lis=document.getElementById('visitors-latest-cities').getElementsByTagName('li');var i;for(var i=0;cities[i];i++){if(cities[i].title==city){cities.splice(i,1);}}
for(var i=0;lis[i];i++){if(lis[i].getElementsByTagName('a')[1].innerHTML==city){lis[i].parentNode.removeChild(lis[i]);}}
this.save_cities_to_cookie(cities);},cookie_contains_city:function(city){var cities=this.get_cookie_as_array();for(var i=0;cities[i];i++){if(cities[i].title==city){return true;}}
return false;},get_num_locked_cities:function(){var cities=this.get_cookie_as_array();var num_locked=0;for(var i=0;cities[i];i++){if(cities[i].locked){num_locked++;}}
return num_locked;},get_cookie_as_array:function(){var cookie=$cookie(ElTVLC.COOKIE_NAME);return cookie?eval('('+cookie+')'):[];},save_cities_to_cookie:function(cities){var cookie_str='[';var is_locked;for(var i=0;cities[i];i++){is_locked=cities[i].locked?'true':'false';cookie_str+='{url: "'
+cities[i].url
+'", title: "'
+cities[i].title
+'", cc: "'
+cities[i].cc
+'", urlized: "'
+cities[i].urlized
+'", cached: '
+cities[i].cached
+', locked: '
+is_locked
+', extra: "'
+cities[i].extra
+'", weather: "'
+cities[i].weather
+'"},';}
if(cities.length){cookie_str=cookie_str.substr(0,cookie_str.length-1);}
cookie_str+=']';$cookie(ElTVLC.COOKIE_NAME,cookie_str,{expires:365,path:'/'});},generate_list:function(){var mod=document.getElementById('visitors-latest-cities');var cities=this.get_cookie_as_array();if(cities.length){var ul_html='';for(var i=0;cities[i];i++){if(i>=ElTVLC.NUM_CITIES)break;ul_html+='<li class="'
+cities[i].urlized
+(i===0?' first':'')
+'"><a class="ico" href="'
+cities[i].url
+'">';if(cities[i].cc&&cities[i].cc!=ElTVLC.LOCAL_CC&&cities[i].cc!='undefined'){ul_html+='<img class="flag" src="/flags/'+cities[i].cc+'.gif'+'" alt="" />';}else{ul_html+='<img src="'+cities[i].weather+'" alt="" />';}
ul_html+='</a><a href="'
+cities[i].url
+'">'
+cities[i].title
+'</a>';if(cities[i].locked){ul_html+='<a href="#" class="'
+ElTVLC.UNLOCK_CLASS
+'" title="'
+ElTVLC.UNLOCK_TXT
+'">'
+ElTVLC.UNLOCK_TXT
+'</a><span class="fade fade-less"></span>';}else{ul_html+='<a href="#" class="'
+ElTVLC.LOCK_CLASS
+'">'
+ElTVLC.LOCK_TXT
+'</a><span class="fade"></span>';}
ul_html+='</li>';}
mod.getElementsByTagName('ul')[0].innerHTML=ul_html;mod.style.display='block';}else{mod.style.display='none';mod.getElementsByTagName('ul')[0].innerHTML='';}},hijax_list:function(){var lis=document.getElementById('visitors-latest-cities').getElementsByTagName('li');for(var i=0;lis[i];i++){lis[i].getElementsByTagName('a')[2].onclick=function(){var city=this.parentNode.getElementsByTagName('a')[1].innerHTML;var fade=this.parentNode.getElementsByTagName('span')[0];var link=this;if(link.className==ElTVLC.UNLOCK_CLASS){ElTVLC.remove_city(city);}
else{ElTVLC.lock_city(city);link.className=ElTVLC.UNLOCK_CLASS;link.innerHTML=ElTVLC.UNLOCK_TXT;link.title=ElTVLC.UNLOCK_TXT;fade.className+=' fade-less';}
return false;};}},lock_city:function(city){var cities=this.get_cookie_as_array();for(var i=0;cities[i];i++){if(cities[i].title==city){cities[i].locked=true;}}
this.save_cities_to_cookie(cities);},unlock_city:function(city){var cities=this.get_cookie_as_array();for(var i=0;cities[i];i++){if(cities[i].title==city){cities[i].locked=false;}}
this.save_cities_to_cookie(cities);},insert_weather:function(){var lis=document.getElementById('visitors-latest-cities').getElementsByTagName('li');var pending_updates=0;var cities=this.get_cookie_as_array();var _this=this;var now=this.current_time.getTime();for(var i=0;lis[i];i++){if(ElTVLC.LOCAL_CC=='es'&&cities[i].cc=='se'){pending_updates++;continue;}
if((cities[i].cc&&cities[i].cc!=ElTVLC.LOCAL_CC&&cities[i].cc!='undefined')||cities[i].weather.match(/coast-2.gif$/)!=null||now-cities[i].cached<60*60*1000){continue;}
pending_updates++;}
for(var i=0;lis[i];i++){if(!(ElTVLC.LOCAL_CC=='es'&&cities[i].cc=='se')){if(cities[i].cc&&cities[i].cc!=ElTVLC.LOCAL_CC&&cities[i].cc!='undefined'){continue;}}
if(cities[i].weather.match(/coast-2.gif$/)!=null){continue;}
if(now-cities[i].cached<60*60*1000){continue;}
(function(){var li=lis[i];var link=li.getElementsByTagName('a')[1];var img=li.getElementsByTagName('img')[0];var idx=i;superSimpleAjax({url:'/ajax/get_weather_for_city/'+li.className,callback:function(data){pending_updates--;if(data.length==2){cities[idx].cc=data;img.src='/flags/'+data+'.gif';}else if(data.match(/coast.*gif$/)){cities[idx].weather=data;cities[idx].cc=ElTVLC.LOCAL_CC;img.src='/img/icons/coast-2.gif';}else if(data.length<40){cities[idx].weather=data;cities[idx].cached=now;cities[idx].cc=ElTVLC.LOCAL_CC;img.src=data;}
if(pending_updates==0){_this.save_cities_to_cookie(cities);}}});})();}},ie_hover:function(){var lis=document.getElementById('visitors-latest-cities').getElementsByTagName('li');for(var i=0;lis[i];i++){lis[i].onmouseover=function(){this.className+=' hover';};lis[i].onmouseout=function(){this.className=this.className.replace(' hover','');};}}};