(function($){$.fn.selectChain=function(options){var defaults={key:"id",value:"label",preselect:":first"};var settings=$.extend({},defaults,options);if(!(settings.target instanceof $))settings.target=$(settings.target);var preselect_string=settings.preselect;if(typeof(settings.preselect)!="undefined"&&settings.preselect!=''&&settings.preselect!=':first'){preselect_string='[value='+settings.preselect+']';}
return this.each(function(){var $$=$(this);$$.change(function(){var data=null;if(typeof settings.data=='string'){data=settings.data+'&'+this.name+'='+$$.val();}else if(typeof settings.data=='object'){data=settings.data;data[this.name]=$$.val();}
settings.target.empty();$.ajax({url:settings.url,data:data,type:(settings.type||'get'),dataType:'json',success:function(j){var options=[],i=0,o=null;for(i=0;i<j.length;i++){o=document.createElement("OPTION");o.value=typeof j[i]=='object'?j[i][settings.key]:j[i];o.text=typeof j[i]=='object'?j[i][settings.value]:j[i];settings.target.get(0).options[i]=o;}
setTimeout(function(){if(settings.target.find(preselect_string).length==0){preselect_string=':first';}
settings.target
.find(preselect_string)
.attr('selected','selected')
.parent('select')
.trigger('change');},0);},error:function(xhr,desc,er){alert("An internal error occured. Please try again in a few seconds.");}});});});};})(jQuery);

jQuery.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=jQuery.trim(cookies[i]);if(cookie.substring(0,name.length+1)==(name+'=')){cookieValue=decodeURIComponent(cookie.substring(name.length+1));break;}}}
return cookieValue;}};

$(document).ready(function(){var continent=$('#qa-continent');var country=$('#qa-country');var spot=$('#qa-spot');if($.cookie('qa-wave-continent')){var last_continent=$.cookie('qa-wave-continent');$('#qa-continent option').each(function(intIndex){if($(this).val()==last_continent){$('#qa-continent option').removeAttr('selected');$(this).attr('selected',true);continent.trigger('change');}});}else{$('#qa-continent option').each(function(intIndex){if($(this).val()=='Europe'){$('#qa-continent option').removeAttr('selected');$(this).attr('selected',true);continent.trigger('change');}});}
var preselect_country='Denmark';var preselect_spot='hanstholm';if($.cookie('qa-wave-spot')){preselect_spot=$.cookie('qa-wave-spot');}
if($.cookie('qa-wave-country')){preselect_country=$.cookie('qa-wave-country');}
country.selectChain({target:spot,url:'/wind-cgi/qa-buoys.pl',data:{mode:'country'},preselect:preselect_spot});continent.selectChain({target:country,url:'/wind-cgi/qa-buoys.pl',data:{mode:'continent'},preselect:preselect_country}).trigger('change');continent.change(function(){$.cookie('qa-wave-continent',continent.val(),{expires:31});});country.change(function(){$.cookie('qa-wave-country',country.val(),{expires:31});});spot.change(function(){$.cookie('qa-wave-spot',spot.val(),{expires:31});$('#qa-wavereport').attr('disabled',false);$('#qa-waveforecast').attr('disabled',false);});$('#qa-wavereport').click(function(){location.href="/wavereport/"+spot.val();});$('#qa-waveforecast').click(function(){location.href="/forecast/"+spot.val();});function split_spotname(spotname){var spotinfo=spotname.split("#");return spotinfo[0];}});

