CmdUtils.CreateCommand({
    name: "images",
    homepage: "http://kloudsolutions.com/",
    author: { name: "Kaanon MacFarlane", email: "kaanon@kaanon.com"},
    license: "MPL",
    description: 'This will show all the images on the page',
    _gather_images: function(){
      var images = CmdUtils.getDocumentInsecure().images;
      var txt = '';
      var previewTemplate = "<a href='${href}' style='margin: 3px'><img src='${src}' /></a><br/>";
      var previewTemplate = "<a style='margin: 3px; padding: 3px;' href='${href}'><h3>${src}</h3><img src='${src}' /></a><br/>";
      for (var i = 0; i < images.length; i++) 
      {
        if (images[i].height > 65 && images[i].width > 65) {
	  txt += CmdUtils.renderTemplate(previewTemplate, {src: images[i].src, href: images[i].parentNode.href || images[i].src});
	}
      }
      return txt;
    },
    preview: function(previewBlock){
        
       images_html = this._gather_images();
		if(trim(images_html) == '')
		{
			previewBlock.innerHTML = "<em>No Images found</em>";
		}
		else
		{
			previewBlock.innerHTML = "<div style='width: inherit; height: 400px; overflow: auto;'>"+images_html+"</div>";			
		}

    },
    execute: function()
    {
	images_html = this._gather_images();
	var doc = CmdUtils.getDocumentInsecure();
        doc.body.innerHTML = "<div id='original_document' style='display:none;'>"+doc.body.innerHTML+"</div>";
        var link = "<a style='float: right; border: 1px solid; font-size: large;' onClick=\"document.getElementById('original_document').style.display = ''; document.getElementById('images_container').style.display = 'none';\">Show normal page</a>";
        CmdUtils.injectHtml("<div id='images_container'>"+link+images_html+"</div>");
    }
})
CmdUtils.CreateCommand({
    name: "zipcode",
    takes: {
        zip_code: noun_arb_text
    },
    description: 'This will get information about a Zip Code',
    preview: function(previewBlock, param){
        if (!param.text || param.text.length < 5) {
            previewBlock.innerHTML = "Zip code must be 5 characters"
            return;
        }
        url = 'http://www.webservicex.net/uszip.asmx/GetInfoByZIP';
        params = {
            USZip: param.text
        };
        jQuery.ajax({
            url: url,
            data: params,
            success: function(x){
                var txt = '';
                var nodes = x.documentElement.childNodes[1].childNodes;
                var attributes = jQuery.makeArray(nodes);
                var previewTemplate = "<strong>${tag}</strong>: ${content}<br/>";
                for (var i = 0; i < attributes.length; i++) {
                    var item = attributes[i];
                    if (item.nodeType == 1) {
                        previewData = {
                            tag: item.tagName,
                            content: item.textContent
                        };
                        txt += CmdUtils.renderTemplate(previewTemplate, previewData);
                    }
                }
				//CmdUtils.log(txt);
                previewBlock.innerHTML = txt;
                
            }
        });
    },
    execute: function(zip_code){
        url = 'http://www.webservicex.net/uszip.asmx/GetInfoByZIP';
        openUrl(url + '?USZip=' + zip_code.text);
    }
})


