function load_elements_from_services(){
         $divs = document.getElementsByTagName("div");
         $output = "";
         for($i=0;$i<$divs.length;$i++){
                if($divs[$i].className == "fromservice"){
                    $block = $divs[$i];
                    load_element_from_service($block);
            }
           }
        }

function load_element_from_service($element){
    $element.style.visibility = "hidden";
    var $service_url = "";
    var $method_name = "";
    var $service_params = "";
    $params = $element.getElementsByTagName("span");
    for($j=0;$j<$params.length;$j++){
        $param = $params[$j];
        $paramname = $param.className;
        switch($paramname){
            case "service":
                $service_url = $param.innerHTML;
            break;
            case "method":
                $method_name = $param.innerHTML;
            break;
            case "params":
                $service_params_string = $param.innerHTML;
                $service_params = $service_params_string.replace(/&amp;/g,"&");
            break;
        }
    }
    $url = "/WebServices/Default.aspx";
    $querystring = $service_params + "&service_url=" + $service_url + "&method_name=" + $method_name;
    //window.alert("Running: " + $url);
    var myAjax=new Ajax.Request($url,
       {
        method: 'post',
        onComplete: function(resp)
          {
            $xml = resp.responseText;
            $html = $xml.replace(/&lt;/g,"<");
            $html = $html.replace(/&gt;/g,">");
            $html = $html.replace(/&amp;/g,"&");
            //Check to see if we actually got a "real" snippet from the service
            if($html.indexOf("<string") > 0){
                $element.innerHTML = $html;
                $element.style.visibility = "visible";
            } else {
                //Send out a generic error string. This is generic because it isn't available in
                //a "view source" as it's only present in the memory-resident DOM. Therefore, more
                //detailed errors are not going to provide a benefit.
                $element.innerHTML = "<div class='empty'>Service returned an error</div>";
            }


          },
          parameters: $querystring
       });
}




function services_load(){
    load_elements_from_services();
}
