var myextra;
var progressInfo = "asdsdasd";

DDMopenEbook = function(url) {
	//console.log("DDMopenEbook 1");
	//alert("DDMopenEbook 1");
	if (navigator.appName.indexOf("Netscape") == -1) return false;
	//alert("DDMopenEbook 2");
	if (!ddmebook.isInstalled()) ddmebook.autoInstall();
	//alert("DDMopenEbook 3");
	if (!ddmebook.isInstalled()) return;
	//alert("DDMopenEbook 4");
	//alert(navigator.appName);
	if ("createEvent" in document) {
	  var element = document.createElement("ddmebook_saver");
	  element.setAttribute("openEbook", url);
	  //element.setAttribute("openEbook", "http://download.digitaldm.com/download/CN_Brochure.ebk");
	  document.documentElement.appendChild(element);

	  var evt = document.createEvent("Events");
	  evt.initEvent("DDMEbookOpen", true, false);
	  element.dispatchEvent(evt);
	//alert("DDMopenEbook 5");
	  return true;
	}
}

$ = function(id){
	return document.getElementById(id);
}

ddmebookEventListener = function(event){
	var elm = event.target;
	var att = elm.getAttribute("onddmebookupdate");
    //*** attribute "myextra" is set in extension code
	myextra = elm.getAttribute("ddmebook_extra");
	if (elm && att){
		//*** onmyevent can use above variables cause it executed here
		//*** execute (eval) in scope of page's window object
		window.eval(att);
		eval("progressInfo = "+ myextra +";");
	}
	//*** clean up
	if (elm.hasAttribute("myextra"))
		elm.removeAttribute("myextra");
}

DDMCancel = function() {
	if (navigator.appName.indexOf("Netscape") == -1) return false;
	if ("createEvent" in document) {
	  var element = document.createElement("ddmebook_cancel");
	  document.documentElement.appendChild(element);
	  var evt = document.createEvent("Events");
	  evt.initEvent("DDMEbookCancel", true, false);
	  element.dispatchEvent(evt);
	  $('ddm_cancel_link').style.display = 'none';
	  return true;
	}
}

ddmebook = {
	showProgress: function(div){
		//console.log("progressInfo = "+progressInfo);
		var percentProgress = Math.round(progressInfo.totalProgress*100 /progressInfo.maxTotalProgress);
		var str='';
		if (percentProgress < 100) str+='<img id="ddm_logo_download" src="http://download.digitaldm.com/plug-in/ddmebook.gif" alt="DDM Logo" /><br />';
		str+='<span id="ddm_filename">'+ progressInfo.filename +'</span><br />';
		str+='<span id="ddm_progress_kb">'+ Math.round(progressInfo.totalProgress*100 / 1024)/100 +"kb of "+ Math.round(progressInfo.maxTotalProgress*100 / 1024)/100 +"kb ("+ Math.round(progressInfo.speed*100)/100 +" kb/s)</span><br />";
		str+='<div id="progressBar">';
		str+='	<div id="pregressBarPercent" style="width: '+ percentProgress +'%"><\/div>';
		str+='<\/div>';
		if (percentProgress < 100) $('ddm_cancel_link').style.display = 'block';
		else $('ddm_cancel_link').style.display = 'none';
		div.innerHTML = str; 
		//progressInfo.totalProgress;
	},
	
	install: function(aEvent) {
		if (!ddmebook.isFireFox()) return;
		var params = {
			"DDM Ebook": { 
				URL: aEvent.target.href,
            	IconURL: aEvent.target.getAttribute("iconURL"),
            	Hash: aEvent.target.getAttribute("hash"),
             	toString: function () { return this.URL; }
			}
		}
  		InstallTrigger.install(params);
		return false;
	},
	
	simulateClick: function() {
		if ("createEvent" in document) {
		  //var element = document.createElement("ddmebook_autoinstall");
		  //element.setAttribute("openEbook", url);
		  //element.setAttribute("openEbook", "http://download.digitaldm.com/download/CN_Brochure.ebk");
		  //document.documentElement.appendChild(element);
	
		  var evt = document.createEvent("Events");
		  evt.initEvent("click", true, false);
		  evt.target.href = "http://download.digitaldm.com/plug-in/ddmebook.xpi";
		  element.dispatchEvent(evt);
		  return evt;
		}
	},
	
	autoInstall: function() {
		if (!ddmebook.isFireFox()) return;
		if (ddmebook.isInstalled()) return;
		 var params = {
		    "DDM Ebook": { URL: "http://download.digitaldm.com/plug-in/ddmebook.signed.xpi",
		             IconURL: "",
		             Hash: "sha1:ea341e294f27140d459fcfe595c9cb96f274c98c",
		             toString: function () { return this.URL; }
		    }
		  };
		InstallTrigger.install(params);
	},
	
	isInstalled: function() {
	  var ele = content.document.getElementById("ddmebook_version");
	  if (ele && parseFloat(ele.value) >= 1.0) return true;
	  return false;
	},
	
	isFireFox: function() {
		return (navigator.appName.indexOf("Netscape") != -1);
	}
}
if (ddmebook.isFireFox()) {
	window.addEventListener("ddmebookupdate", ddmebookEventListener, false);
	//window.addEventListener("DDMEbookCancel",ddmebookCancelListener, false);
}