//Global JS variables
var proj,map,editmode,options,sitelayer;
var mapx,mapy=0;
/*****************************************
    Core JQuery funcs for load/unload
******************************************/
$j = jQuery.noConflict();
$j(function() {
    //super fish menu code
    $j("#superfish ul.sf-menu").superfish({
        dropShadows: false,
        speed: 'fast'
    });
    
    $j('#iconcarousel').jcarousel({
        vertical: true,
        scroll: 8
    });
    $j('#mycarousel-next').bind('click', function() {
        carousel.next();
        return false;
    });

    $j('#mycarousel-prev').bind('click', function() {
        carousel.prev();
        return false;
    });

    $j("#region").change(function() {
        changeRegion(g_activity, $j(this).val());
    });
    var sumbox = $j("#summarybox");
    sumbox.change(function() {
        sitelayer.getSites($j(this).val());
    });
    $j("#summaryprev").click(function() {
        var i = parseInt(sumbox.val());
        if (i>0) {
            i--;
            sitelayer.getSites(i);
            sumbox.val(''+i+'');
        }
    });
    $j("#summarynext").click(function() {
        var i = parseInt(sumbox.val());
        if (i<4) {
            i++;
            sitelayer.getSites(i);
            sumbox.val(''+i+'');
        }
    });
    $j("#header").bind('click', function() {
        window.location = "?a=1";
    });
    
    $j("#findb").click(function() {
        search();
    });
    $j("#nearbyb").click(function() {
        var region = $j(this).attr('class').split(' ').slice(-1);
        getRegionSites(g_activity, region[0]);
    });
    $j("#map").mousemove(function(e){
        mapx = e.pageX;
        mapy = e.pageY;
    });
    $j("#find").keypress(function (e) {
        if (e.which == 13) { search(); }
    });
    $j("#ajaxBusy").ajaxStart(function() {
        $j(this).show();
    }).ajaxStop(function() {
        $j(this).hide();
    });
    /*var tog = $j(".tog");
    var showimg='<img src="style/img/minus.png" align="bottom"> ';
    var hideimg='<img src="style/img/plus.png" align="bottom"> ';
        
    tog.bind("click.togs", function(){
        if($j(this).next(".togdiv").is(":hidden") == true) {
            $j(this).find(".headertog").html(showimg);
            $j(this).next(".togdiv").slideDown("slow");
        }
        else {
            $j(this).find(".headertog").html(hideimg);
            $j(this).next(".togdiv").slideUp("slow");
        }
    });*/
    /*tog.each(function() {
        var togdiv = $j(this).next(".togdiv");
        if (getCookie(togdiv.attr("id")) == "false") {
            togdiv.hide();
            $j(this).find(".headertog").html(hideimg);
        }
        else {
            togdiv.show();
            $j(this).find(".headertog").html(showimg);
        }
    });*/
    $j("a.det").click(function() {
        $j(this).parent().parent().unbind("click.togs");
    });
    $j("#sitefeed").click(function() {
        $j(this).parent().unbind("click.togs");
    });
    
    
    //Popup boxes
    $j("#eventinfo").hide();
    //tool-tips
    $j(".help-icon").qtip({
        content: tooltips.myweathermain,
        style: 'helpstyle'
    });
    $j(".tooltip").qtip({
        style: 'helpstyle'
    });
    $j("#ratinginfo").hide();
    if ($j(".ratinginfo").length > 0) {
        $j(".ratinginfo").qtip({
            content: $j('#ratinginfo').html(),
            style: 'ratinginfo',
            position: {
                corner: {
                   target: 'bottomRight',
                   tooltip: 'topRight'
                }
            }
        });
    }
    
    if (g_map)  {
        pageload();
    }
    else if (g_parx){
        pageload_admin();
    }
    else if (g_parc == 'options') {
        pageload_user();   
    }
    
    //advert cycle
    $j('#headerad').cycle({
	fx: 'fade',
        timeout: 10000
    });
    
    //autocomplete for search fields
    $j('#find').autocomplete(bhref+"ajr.php", {
        highlight: false,
        width: 200,
        extraParams: {
            r: "location",
            t: "auto",
            a: g_activity
        }
    });
    
    //load quick cookie bar
    getCookies_MyWeather();
    //get all saved cookies
    $j(".drag-el").draggable({
        helper: function() { return $j(this).clone().appendTo('body').show(); },
        appendTo: 'body',
        scroll: false,
        zIndex: 3000,
        cursor: 'crosshair'
    });
    $j(".drag-el").click(function() {
        var str=$j(this).attr('rel');
        var ar = new Array();
        ar=str.split("|", 4);
        //find a blank slot -> if not then replace top one for now
        for (var i=1; i<=3; i++) {
            var el=$j('#my_weather_'+i);
            if (el.html()=="") {
                el.html("<a href='"+ar[0]+"/"+ar[2]+"'>"+ar[1]+" > "+ar[3]+"</a>");
                el.parent().prepend('<span class="el-rm tooltip" title="Delete bookmark"></span>');
                //set actual cookie
                setCookie_MyWeather($j('#my_weather_'+i).attr('id'), str);
                break;
            }
            if (i==3) {
                var el_def=$j('#my_weather_1');
                el_def.html("<a href='"+ar[0]+"/"+ar[2]+"'>"+ar[1]+" > "+ar[3]+"</a>");
                setCookie_MyWeather(el_def.attr('id'), str);
            }
        }
    });
    
    $j(".quick-link-cont").droppable({
        over: function(event, ui) {
            $j(this).css('border', '1px solid #fff');
        },
        out: function(event, ui) {
            $j(this).css('border', '1px solid #ccc');
        },
        drop: function() {
            $j(this).css('border', '1px solid #ccc');
            //get details of dropped el
            var el=$j(this).children('.quick-link-el');
            if (el.html()=="") {
                $j(this).prepend('<span class="el-rm tooltip" title="Delete bookmark"></span>');
            }
            var str=$j('.drag-el').attr('rel');
            el.html(MyWeather_strLink(str));
            //set actual cookie
            setCookie_MyWeather(el.attr('id'), str);
            
        }
    });
    
    $j(".el-rm").live("click", function() {
        var el=$j(this).next();
        if (el.html()) {
            el.html("");
            deleteCookie_MyWeather(el.attr('id'));
            $j(this).remove();
        }
    });  
});

function MyWeather_strLink(str) {
    var html="";
    var ar = new Array();
    ar=str.split("|", 4);
    html="<a href='"+ar[0]+"/"+ar[2]+"'>"+ar[1]+" > "+ar[3]+"</a>";
    return html;   
}


$j.fn.setJCookie = function(value) {
    setCookie($j(this[0]).attr("id"), value, 365)
}

$j.ajaxSetup({
    url: bhref+"ajr.php",
    type: "POST",
    dataType : "json",
    error : function (xhr, desc, exception) { }
});

$j.fn.qtip.styles.helpstyle = { // Last part is the name of the style
    textAlign: 'left',
    border: {
       width: 2,
       radius: 5,
       color: '#bbb'
    },
    background: 'url(style/img/tooltip-bg.png) repeat-x #fff',
    tip: 'topLeft',
    name: 'light', // Inherit the rest of the attributes from the preset dark style
    margin: '4px',
    color: '#69645C'
}

$j.fn.qtip.styles.ratinginfo = { // Last part is the name of the style
    width: 360,
    textAlign: 'left',
    border: {
       width: 2,
       radius: 5,
       color: '#bbb'
    },
    background: 'url(style/img/tooltip-bg.png) repeat-x #fff',
    name: 'light', // Inherit the rest of the attributes from the preset dark style
    margin: '4px',
    color: '#69645C',
    tip: 'topRight'
}



$j(window).unload(function() {
    if (g_activity) pageunload();
});
/*****************************************
    Error msgs
******************************************/
var errmsg = {
    inter: "Sorry, no weather forecasting for International locations",
    unfound: "Sorry a weather forecast for this location could not be found",
    search: "<p class='alert'>Your location has not been found. Please check the spelling or try a nearby place.</p>",
    fcast: "<br>Sorry, there is temporarily no forecast."
}

/******************************************
    Tool tips
*******************************************/
var tooltips = {
    myweathermain: "<h4>Tips for My Weather</h4><p class='tool-tip'>This area is for saving your favourite weather locations.</p><p class='tool-tip'>When you want to bookmark a weather site from any activity, either click on the <img src='style/img/addmyw.png'> icon, or drag and drop the <img src='style/img/addmyw.png'> icon to one of the 3 bookmark slots.</p><p class='tool-tip'>If you want to replace an existing bookmark, clicking the <img src='style/img/addmyw.png'> icon will only replace the first slot, or fill the nearest empty slot. So dragging and dropping the icon is normally the best way of doing it because you can choose the exact slot for each bookmark.</p><p class='tool-tip'>If you just want to remove a bookmark, click on the relevant <img src='style/img/rmmyw.png'>icon.</p>"
}

/******************************************
    Map functions
*******************************************/
// Javascript on page load function
function pageload() {
    var centerPos=null;
    var zoom=null;
    proj = new OpenLayers.Projection("EPSG:4326");
    options = {
        projection: new OpenLayers.Projection("EPSG:900913"),
        units: "m",
        maxResolution: 156543.0339,
        maxExtent: new OpenLayers.Bounds(-20037508.34, -20037508.34, 20037508.34, 20037508.34),
        restrictedExtent: new OpenLayers.Bounds(18367715.978333, -6024072.1185352, 20037508.34, -4028802.0255736)
    };
    map = new OpenLayers.Map('map', options);
    var google = new OpenLayers.Layer.Google( "GoogleMaps" , { 'sphericalMercator': true});
    map.addLayer(google);
    map.addLayer(new ImageLayer('img', "style/img/blue.png", [500, 500], options));
    sitelayer = new SiteLayer('wmsites', g_activity, g_aicon);
    map.addLayer(sitelayer);
    
    if (getCookie('map-pos-lon')) {
        zoom = parseFloat(getCookie('map-zoom'));
        if (zoom <= 5) {
            centerPos = new OpenLayers.LonLat(172.28, -41.10);
            if (g_bmsite>0) {
                siteSelect(g_bmsite, g_sitename, g_activity);
            }
            else {
                siteSelect(g_siteid, g_sitename, g_activity);
            }
        }
        else {
            var cookieLon = parseFloat(getCookie('map-pos-lon'));
            var cookieLat = parseFloat(getCookie('map-pos-lat'));
            centerPos = new OpenLayers.LonLat(cookieLon, cookieLat);
        }
    }
    else {
        zoom = 5;
        centerPos = new OpenLayers.LonLat(172.28, -41.10);
    }
    centerPos.transform(proj, map.getProjectionObject());
    map.setCenter(centerPos, zoom);
    if (getCookie('activity_sid_'+g_activity) != "") {
        g_siteid = getCookie('activity_sid_'+g_activity);
        g_sitename = getCookie('activity_sname_'+g_activity);
    }
    siteSelect(g_siteid, g_sitename, g_activity);
}

function pageunload() {
    if (map) {
        var center = map.center;
        center.transform(map.getProjectionObject(), proj);
        setCookie('map-pos-lon', center.lon, 365);
        setCookie('map-pos-lat', center.lat, 365);
        setCookie('map-zoom', map.zoom, 365);
        setCookie('activity_sid_'+g_activity, g_siteid, 365);
        setCookie('activity_sname_'+g_activity, g_sitename, 365);
    }
}

function setCookie(c_name, value, expiredays) {
    var exdate=new Date();
    exdate.setDate(exdate.getDate()+expiredays);
    document.cookie=c_name+ "=" +escape(value)+((expiredays==null) ? "" : ";expires="+exdate.toGMTString())+"; path=/";
}

function getCookie(c_name) {
    if (document.cookie.length>0) {
        c_start=document.cookie.indexOf(c_name + "=");
        if (c_start!=-1) { 
            c_start=c_start + c_name.length+1; 
            c_end=document.cookie.indexOf(";",c_start);
            if (c_end==-1) c_end=document.cookie.length;
            return unescape(document.cookie.substring(c_start,c_end));
        } 
    }
    return "";
}

function setCookie_MyWeather(id, str) {
    // seperated string -> aid|aname|sid|sname
    setCookie(id, str, 365);
}

function getCookies_MyWeather() {
    for (var i=1; i<=3; i++) {
        var str=getCookie('my_weather_'+i);
        if (str) {
            var ar = new Array();
            ar=str.split("|", 4);
            var el=$j("#my_weather_"+i);
            el.html("<a href='"+ar[0]+"/"+ar[2]+"'>"+ar[1]+" > "+ar[3]+"</a>");
            el.parent().prepend('<span class="el-rm tooltip" title="Delete bookmark"></span>');
        }
    }
}

function deleteCookie_MyWeather(id) {
    setCookie(id, "", 365);
}

function rewriteOutput(output) {
    //replace - with space
    var rewrite=output.replace(/ /g, '-');
    //convert to lower case
    rewrite=rewrite.toLowerCase();
    return rewrite;   
}

/****************************************************
    Search site functions
****************************************************/
function directToSite(site, activity) {
    if (site == "International") {
        alert(errmsg.inter);
    }
    else {
        $j.ajax({
            data : ({'r': "location", 't': 'siteid', 'a': activity, 's': site}),
            success : function (resp) {
                if (resp) { window.location = "?a="+activity+"&s="+resp; }
                else { alert(errmsg.unfound); }
            }
        });
    }
}

function findSite() {
    var site = $j('#find').val();
    window.location.href = "#searchres";
    if (site) {
        var geocoder = new GClientGeocoder();
        geocoder.getLatLng(site+", New Zealand", getSearchSites);
    }
}

function search() {
    var site = $j('#find').val();
    if (site.length > 0) {
        //window.location.href = "#searchres";
        $j.ajax({
            data : ({'r': "location", 't': 'search', 'a': g_activity, 's': site}),
            success : displaySiteResults
        });
    }
}

function nearestSite(lon, lat) {
    $j.ajax({
        data : ({'r': "location", 't': 'nearest', 'a': g_activity, 'lon': lon, 'lat': lat}),
        success : function (resp) {
            siteSelect(resp.siteid, resp.name, g_activity);
        }
    }); 
}

function getSearchSites(point) {
    if (point) {
        $j.ajax({
            data : ({'r': "location", 't': 'search', 'a': g_activity, 'lon': point.lng(), 'lat': point.lat(), 'res': 5}),
            success : displaySiteResults
        });
    }
    else {
        $j('#sitelist').html(errmsg.search);
    }
}

function displaySiteResults(sites) {
    var sitecount=0;
    var list = $j('#sitelist');
    list.show();
    var maxviews = 0;
    list.html("");
    if (sites) {
        for (var item in sites) {
            var fontsize = cloudFontSize(sites[item].views);
            if (g_map) {
                var str = "<a id='"+item+"' class='mapsite' style='font-size: "+fontsize+"px; margin-left: 6px;' href=''>"+sites[item].name+"</a> ";
                list.append(str);
                $j("#"+item).data("lon", sites[item].lon);
                $j("#"+item).data("lat", sites[item].lat);
                $j("#"+item).data("name", sites[item].name);
                if (parseInt(sites[item].views) >= maxviews) {
                    maxviews = parseInt(sites[item].views);
                    list.data("siteid", item);
                    list.data("sitename", sites[item].name);
                }
            }
            else {
                list.append(" <a style='font-size: "+fontsize+"px; margin-left: 6px;' href='"+rewriteOutput(g_aname)+"/"+rewriteOutput(sites[item].name)+"'>  "+sites[item].name+"  </a> ");   
            }
            sitecount++;
        }
        if (g_map) {
            $j(".mapsite").click(function() {
                siteSelect($j(this).attr("id"), $j(this).text(), g_activity);
                var centerPos = new OpenLayers.LonLat($j(this).data("lon"), $j(this).data("lat"));
                centerPos.transform(proj, map.getProjectionObject()); 
                map.setCenter(centerPos, 9);
                return false;
            });
            if (sitecount == 1) {
                siteSelect(item, sites[item].name, g_activity);
                var centerPos = new OpenLayers.LonLat(sites[item].lon, sites[item].lat);
                centerPos.transform(proj, map.getProjectionObject()); 
                map.setCenter(centerPos, 9);
                return false;
            }
        }
    }
    else {
        list.html(errmsg.search);
        //could peform geocoder to find nearest
    }
    return list;
}

function cloudFontSize(views) {
    var i = parseInt(views);
    fontSize = Math.ceil(10+(Math.min(1, (i/100))*6));
    return fontSize;
}

//display day events on general page
function addDayEvs() {
    var t=null;
    var eventpop = $j("#eventinfo");
    eventpop.hide();
    $j(".eventday").bind("click mouseover",
        function(e) {
            eventpop.html("");
            eventpop.css({'top': e.pageY+10, 'left': e.pageX-100});
            var eventdet = $j(this).attr('class').split(' ').slice(-1);
            $j(".event"+eventdet).each(function() {
                eventpop.append($j(this).html());
            });
            eventpop.show();
        },
        function() {
            t=setTimeout(function(){
                eventpop.fadeOut(100);
            },100);  
        }
    );
    eventpop.hover(
        function() {
            clearTimeout(t);
        },
        function() {
            $j(this).fadeOut(100);   
        }
    );
}

 //display rating info
/*function addRatingPop() {
    var t=null;
    var ratpop = $j("#ratinginfo");
    ratpop.hide();
    $j(".ratinginfo").bind("click mouseover", 
        function(e) {
            ratpop.css({'top': e.pageY, 'left': e.pageX-400});
            ratpop.show();
        },
        function() {
            t=setTimeout(function(){
                ratpop.fadeOut(100);
            },100);  
        }
    );
    ratpop.hover(
        function() {
            clearTimeout(t);
        },
        function() {
            $j(this).fadeOut(100);   
        }
    );
}*/

function changeRegion(activity, region) {
    if (region) {
        if (g_map) {
            $j.ajax({
                data : ({'r': "location", 't': 'region', 'a': activity, 'siteid': region}),
                success : function (json) {
                    var regionPoint = new OpenLayers.LonLat(json.lon,json.lat);
                    regionPoint = regionPoint.transform(proj, map.getProjectionObject());
                    map.setCenter(regionPoint, 9);
                }
            });
        }
        getRegionSites(activity, region);
    }
    else {
        if (g_map) {
            $j('#sitelist').html("");
            var centerPos = new OpenLayers.LonLat(172.28, -41.10);
            centerPos.transform(proj, map.getProjectionObject());
            map.setCenter(centerPos, 5);
        }
    }
}

function getRegionSites(activity, region) {
    $j.ajax({
        data : ({'r': "location", 't': 'sites', 'a': activity, 'siteid': region}),
        success : function (resp) {
            region = displaySiteResults(resp);
            if (g_map) {
                siteSelect(region.data("siteid"), region.data("sitename"), g_activity);
            }
        }
    });
}

/****************************************************
    Below code is not used -> prototype code will need to be removed
    
*****************************************************/

/***************************************************
    User option functions
****************************************************/
/*function pageload_user() {
    loadSettingsUser();
}

function activityChange(activity, sites, siteid) {
    var sitelist = $(sites);
    sitelist.options.length = 0;
    $j.ajax({
        data: ({'r': "user", 't': 'sitelist', 'p': activity}),
        success: function(resp) {
            var list = $H(resp);
            list.each(function(item){
                addItem(sitelist, item.key, item.value)
            });
            if (siteid) {
                setSite(sites, siteid);
            }
        }
    });
}

function loadSettingsUser() {
    var activity=$j('#activities').val();
    var details = new Array();
    $j.ajax({
        data: ({'r': 'user', 't': 'settings', 'a': 'get', 'p': userid}),
        success: function(resp) {
            details = $H(resp);
            $('activities').value = details.get('defactivity');
            activityChange(details.get('defactivity'), 'sites', details.get('defsite'));
            var toolbar = $H(details.get('toolbar'));
            toolbar.each(function(item) {
                $(item.value).checked = true; 
            });
       }
    });
}

function setSite(sites, siteid) {
    var sitelist = $(sites);
    for (var i=0; i<sitelist.options.length; i++) {
        if (sitelist.options[i].value == siteid) {
            sitelist.selectedIndex=i;
            break;
        }
    }   
}

function saveSettingsUser() {
    var settings = new Hash();
    var toolbar = "";
    settings.set('defactivity', $('activities').value);
    settings.set('defsite', $('sites').value);
    var opts = document.getElementsByName('tbopt');
    var j=0;
    for (i = 0; i < opts.length; i++){
        if (opts[i].checked == true){
            if (j == 0) {
                toolbar+=opts[i].id;
                j++;
            }
            else {
                toolbar+=","+opts[i].id;
            }
        }
    }
    settings.set('toolbar', toolbar);
    $j.ajax({
       data: ({'r': 'user', 't': 'settings', 'a': 'save', 'p': userid, 'v': settings.toJSON()}),
       success: function(resp) {
       }
    });
}
*/
/***************************************************
    Admin functions
***************************************************/
/*
function pageload_admin() {
    loadNews();
    loadActivityAdmin();
}

function saveNews() {
    $j.ajax({
        data: ({'r': "admin", 't': 'news', 'a': 'save', 'i': $j('#newstext').text}),
        success: function(resp) {
             alert("Changes saved");
       }
    });
}

function loadNews() {
    $j.ajax({
        data: ({'r': "admin", 't': 'news', 'a': 'get'}),
        success: function(resp) {
            $j('#newstext').text = resp;
       }
    });
}

function loadActivityAdmin() {
    var details = new Array();
    $j.ajax({
        data: ({'r': "admin", 't': 'activity', 'i':$j('#activities').val(), 'a': 'get'}),
        success: function(resp) {
            details = $H(resp);
            $j('#activitytext').val(details.get('activity'));
            $j('#icontext').val(details.get('icon'));
            $j('#dttext').val(details.get('datatypes'));
            $j('#layerstext').val(details.get('layers'));
            $j('#templatetext').val(details.get('templates'));
            $j('#dtemplatetext').val(details.get('dtemplates'));
            $j('#summarytext').val(details.get('summary') == "1" ? true : false);
            $j('#ratingtext').val(details.get('rating'));
            $j('#ratingfortext').val(details.get('ratingfor'));
            selectItem($j('#parentmenu'), details.get('parentid'));
       }
    });
    editEnable(false);
}

function saveActivity() {
    var activity = new Hash();
    if (editmode == 2) {
        activity.set('activityid', 0);
    }
    else {
        activity.set('activityid', $('activities').value);
    }
    activity.set('activity', $j('#activitytext').val());
    activity.set('icon', $j('#icontext').val());
    activity.set('datatypes', $j('#dttext').val());
    activity.set('layers', $j('#layerstext').val());
    activity.set('templates', $j('#templatetext').val());
    activity.set('dtemplates', $j('#dtemplatetext').val());
    activity.set('summary', $j('#summarytext').val());
    activity.set('rating', $j('#ratingtext').val());
    activity.set('ratingfor', $j('#ratingfortext').val());
    activity.set('parentid', $j('#parentmenu').val());
    $j.ajax({
        data: ({'r': "admin", 't': 'activity', 'v': activity.toJSON(), 'i': activity.get('activityid'), 'a': 'save'}),
        success: function(resp) {
            editEnable(false);
            loadActivityList();
        }
    });
}

function addActivity() {
    editEnable(true);
    clearControls($j('#formActivity'));
    $j('#activities').val('');
    editmode = 2;
}

function editActivity() {
    editEnable(true);
    editmode = 1;
}

function deleteActivity() {
    $j.ajax({
        data: ({'r': "admin", 't': 'activity', 'i': $('activities').value, 'a': 'delete'}),
        success: function(resp) {
            editEnable(false);
            loadActivityList();
       }
    });
    editmode = 0;
}

function cancelActivity() {
    editEnable(false);
    loadActivityAdmin();
    editmode = 0;
}

function editEnable(toEnable) {
    if (toEnable) {
        toggleControls($j('#formActivity'), true);
        toggleControls($j('#btnActivity'), false);
    }
    else {
        toggleControls($j('#formActivity'), false);
        toggleControls($j('#btnActivity'), true)
    }
}

function toggleControls(control, toEnable) {
    try {
        if (toEnable) {
            control.enable();
        }
        else {
            control.disable();
        }
    }
    catch(e){
    }
    if (control.childNodes && control.childNodes.length > 0) {
        for (var x = 0; x < control.childNodes.length; x++) {
            toggleControls(control.childNodes[x], toEnable);
        }
    }
}

function clearControls(control) {
    try {
        if (control.className == 'form') {
            control.value = '';   
        }
    }
    catch(e){
    }
    if (control.childNodes && control.childNodes.length > 0) {
        for (var x = 0; x < control.childNodes.length; x++) {
            clearControls(control.childNodes[x]);
        }
    }
}

function loadActivityList() {
    $j('#activities').options.length = 0;
    new Ajax.Request('./ajr.php', {
       method: 'post',
       parameters: {'r': "admin", 't': 'activity', 'a': 'list'},
       onSuccess: function(json) {
            var list = $H(json.responseText.evalJSON());
            list.each(function(item){
                addItem($j('#activities'), item.key, item.value)
            });
            loadActivityAdmin();
       }
    });
}

function addItem(dropdown, id, value) {
    var item = document.createElement("option");
    item.value = id;
    item.text = value;
    dropdown.options.add(item);
}

function selectItem(dropdown, itemid) {
    for (var i=0; i<dropdown.length; i++) {
        if (dropdown.options[i].value == itemid) {
            dropdown.selectedIndex=i;
            break;
        }
    }
}
*/