if (typeof(JsonWebServicesStub)=='undefined') {

  JsonWebServicesStub = {

    requestCounter : 0,

    responseCallbacks : [],

    headElem : document.getElementsByTagName('head').item(0),

    invoke : function (url, callback, callbackParam, caching) {
      var callbackParam = callbackParam || 'callback';
      var script = document.createElement('script');
      var index = JsonWebServicesStub.requestCounter++;
      JsonWebServicesStub.responseCallbacks['_'+index] = function() {
        delete JsonWebServicesStub.responseCallbacks['_'+index];
        if (arguments.length==1) {
          callback(arguments[0]);
        } else {
          var arry = [];
          for (var i=0; i<arguments.length; i++) 
            arry[arry.length] = arguments[i];
          callback(arry);
        }
        script.parentNode.removeChild(script);
      }
      var callUrl = url.indexOf('?') > 0 ? url+'&' : url+'?';
      callUrl += callbackParam+'='+escape('JsonWebServicesStub.responseCallbacks._'+index);
      // disable browser cache ..
      if (!caching) callUrl += '&rand='+Math.random();
      script.src = callUrl;
      script.type = 'text/javascript';
      script.charset = 'utf-8';
      JsonWebServicesStub.headElem.appendChild(script);
    }

  };

}

function $(id) {
	return document.getElementById(id);
}

function jsonPaddingRequest(url, jsonpParam, caching)
{
	jsonpParam = jsonpParam || 'callback';
	JsonWebServicesStub.invoke
	(
		url,
		jsonEvaluate,
		jsonpParam,
		null
	);
}

function jsonEvaluate(jsonData)
{
	var data=jsonData;
	
	var resultData = "<ul>";
	for(var i=0; i<data.clips.length; i++){
		var iLink  = data.clips[i].link;
		var iTitle = data.clips[i].title;
		var iTags  = data.clips[i].tags;
		
		resultData += "<li><a href=\""+iLink+"\" target=_blank >"+iTitle+"</a></li>";
	}
	resultData += "</ul>";
	
	$("clip_area").innerHTML =resultData;
}
