1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 2<html xmlns="http://www.w3.org/1999/xhtml"> 3<head> 4<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 5<meta http-equiv="X-UA-Compatible" content="IE=edge"> 6<title></title> 7<style> 8html{ 9margin:0 0; 10padding:0px; 11} 12body{ 13display: block; 14overflow: hidden; 15background: #e8e8e8; 16} 17button#cancel{ 18position: absolute; 19width: 80px; 20height: 30px; 21right: 10px; 22top: 98px; 23} 24 25div#save{ 26width: 100px; 27height: 30px; 28right: 100px; 29position: absolute; 30top: 98px; 31} 32 33#progressbar { 34background-color: black; 35border-radius: 1px; /* (height of inner div) / 2 + padding */ 36padding: 1px; 37} 38 39#progressbar div { 40width: 0; /* Adjust with JavaScript */ 41height: 20px; 42border-radius: 1px; 43} 44 45#progressbar #div_progress { 46background-color: #16A8E4; 47} 48 49span{ 50display: inline-block; 51} 52 53span#progress{ 54width: 250px; 55white-space: nowrap; 56} 57 58.install, .enableJAVA { 59-webkit-box-shadow:rgba(0,0,0,0.0.1) 0 1px 0 0; 60-moz-box-shadow:rgba(0,0,0,0.0.1) 0 1px 0 0; 61box-shadow:rgba(0,0,0,0.0.1) 0 1px 0 0; 62background-color:#5B74A8; 63border:1px solid #29447E; 64font-family:'Lucida Grande',Tahoma,Verdana,Arial,sans-serif; 65font-size:12px; 66font-weight:700; 67padding:2px 6px; 68height:28px; 69color:#fff; 70border-radius:5px; 71-moz-border-radius:5px; 72-webkit-border-radius:5px; 73width: 100px; 74height: 30px; 75} 76</style> 77<script type="text/javascript" src="/smb/js/tools.js"></script> 78<script type="text/javascript" src="/smb/js/davclient_tools.js"></script> 79<script type="text/javascript" src="/smb/js/deployJava.js"></script> 80<script type="text/javascript"> 81var this_url; 82var m = new lang(); 83var g_storage = new myStorage(); 84var is_private_ip = 0; 85var array_download_folder = []; 86var array_download_file = []; 87var g_open_url = ''; 88var storage_key_map = { 89 "port": "http_port", 90 "agent": "user_agent" 91}; 92 93function showEnableJAVAUI(){ 94 95 var enable_html = '<input class="enableJAVA" type="button" value="Enable JAVA">'; 96 $(enable_html).appendTo($("#save")); 97 98 refresh_hint_status(m.getString("title_not_support_java")); 99 100 $(".enableJAVA").click(function(){ 101 window.open("http://java.com/en/download/help/enable_browser.xml", "_blank"); 102 }); 103} 104 105function showInstallJAVAUI(){ 106 var enable_html = '<input class="install" type="button" value="'+ m.getString('btn_install_java') + '">'; 107 $(enable_html).appendTo($("#save")); 108 109 refresh_hint_status(m.getString("title_not_install_java")); 110 111 $(".install").click(function(){ 112 window.open("http://java.com/download", "_blank"); 113 }); 114} 115 116$("document").ready(function() { 117 var vars = getUrlVars(); 118 var loc_lan = String(window.navigator.userLanguage || window.navigator.language).toLowerCase(); 119 var lan = ( g_storage.get('lan') == undefined ) ? loc_lan : g_storage.get('lan'); 120 m.setLanguage(lan); 121 122 $("#progressbar").hide(); 123 124 $('button#cancel').text(m.getString('btn_cancel')); 125 var msg = ""; 126 127 if (!navigator.javaEnabled()) { 128 showEnableJAVAUI(); 129 return; 130 } 131 132 var is_java_enabled = false; 133 if (deployJava.versionCheck("1.6.0+") || deployJava.versionCheck("1.4") || deployJava.versionCheck("1.5.0*")) { 134 is_java_enabled = true; 135 } 136 137 if(!is_java_enabled){ 138 showInstallJAVAUI(); 139 return; 140 } 141 142 if(vars["p"]){ 143 storage_key_map["port"] = vars["p"]; 144 } 145 146 if(vars["a"]){ 147 storage_key_map["agent"] = vars["a"]; 148 } 149 150 if(vars["u"]){ 151 g_open_url = vars["u"]; 152 } 153 154 var media_hostName = window.location.host; 155 if(media_hostName.indexOf(":")!=-1) 156 media_hostName = media_hostName.substring(0, media_hostName.indexOf(":")); 157 //var jar_file = "http://" + media_hostName + ":" + g_storage.get(storage_key_map["port"]) + '/smb/css/CloudUtil.jar'; 158 var jar_file = '/smb/css/CloudUtil.jar'; 159 160 var applet_html = '<applet name="AiCloud_Applet" id="AiCloud_Applet" ARCHIVE="'; 161 applet_html += jar_file; 162 applet_html += '" code="com.asus.aicloud.Download.class" width="100%" height="100%">'; 163 applet_html += 'Your browser does not support JAVA!'; 164 applet_html += '<PARAM NAME="MAYSCRIPT" VALUE="true">'; 165 applet_html += '</applet>'; 166 $(applet_html).appendTo($("#save")); 167 168 this_url = vars["v"]; 169 170 var select_folder = this_url.split(";"); 171 172 array_download_folder = []; 173 array_download_file = []; 174 175 var msg = m.getString("title_download_folder_select"); 176 msg = msg.replace("%s", select_folder.length); 177 178 refresh_hint_status(msg); 179 180 var count = select_folder.length; 181 182 for(var i=0; i<count; i++){ 183 var folder_path = select_folder[i]; 184 recursiove_propfind(folder_path); 185 } 186 187}); 188 189function recursiove_propfind(open_url){ 190 191 if(open_url==""||open_url==undefined) 192 return; 193 194 var client = new davlib.DavClient(); 195 client.initialize(); 196 197 client.PROPFIND(open_url, null, function(error, statusstring, content){ 198 if(error){ 199 if(error==207){ 200 201 var parser; 202 var xmlDoc; 203 204 var g_folder_array = new Array(); 205 var g_file_array = new Array(); 206 207 if (window.DOMParser){ 208 parser=new DOMParser(); 209 xmlDoc=parser.parseFromString(content,"text/xml"); 210 } 211 else { // Internet Explorer 212 xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); 213 xmlDoc.async="false"; 214 xmlDoc.loadXML(content); 215 216 if(!xmlDoc.documentElement){ 217 alert("Fail to load xml!"); 218 showHideLoadStatus(false); 219 return; 220 } 221 } 222 223 var i, j, k, l, n; 224 var x = xmlDoc.documentElement.childNodes; 225 226 var this_query_type = xmlDoc.documentElement.getAttribute('qtype'); //- 2: query host, 1: query share, 0: query file 227 var this_folder_readonly = xmlDoc.documentElement.getAttribute('readonly'); 228 var this_router_username = xmlDoc.documentElement.getAttribute('ruser'); 229 var this_computer_name = xmlDoc.documentElement.getAttribute('computername'); 230 var this_isusb = xmlDoc.documentElement.getAttribute('isusb'); 231 var cur_openurl = addPathSlash(g_open_url); 232 233 //- D:Response 234 for (i=0;i<x.length;i++){ 235 var this_href = ""; 236 var this_contenttype = ""; 237 var this_uniqueid = ""; 238 var this_name = ""; 239 var this_short_name = ""; 240 var this_online = ""; 241 var this_lastmodified = ""; 242 var this_contentlength = ""; 243 var this_ip = ""; 244 var this_mac = ""; 245 var this_type = ""; 246 var this_attr_readonly = ""; 247 var this_attr_hidden = ""; 248 var this_uncode_name; 249 250 var y = x[i].childNodes; 251 for (j=0;j<y.length;j++){ 252 if(y[j].nodeType==1&&y[j].nodeName=="D:propstat"){ 253 254 var z = y[j].childNodes; 255 256 for (k=0;k<z.length;k++) 257 { 258 if(z[k].nodeName=="D:prop"){ 259 260 var a = z[k].childNodes; 261 262 for (l=0;l<a.length;l++) 263 { 264 if(a[l].childNodes.length<=0) 265 continue; 266 267 if(a[l].nodeName=="D:getcontenttype"){ 268 this_contenttype = String(a[l].childNodes[0].nodeValue); 269 } 270 else if(a[l].nodeName=="D:getuniqueid"){ 271 this_uniqueid = String(a[l].childNodes[0].nodeValue); 272 } 273 else if(a[l].nodeName=="D:getonline"){ 274 this_online = String(a[l].childNodes[0].nodeValue); 275 } 276 else if(a[l].nodeName=="D:getlastmodified"){ 277 this_lastmodified = String(a[l].childNodes[0].nodeValue); 278 } 279 else if(a[l].nodeName=="D:getcontentlength"){ 280 //this_contentlength = String( size_format(parseInt(a[l].childNodes[0].nodeValue))); 281 this_contentlength = String(a[l].childNodes[0].nodeValue); 282 } 283 else if(a[l].nodeName=="D:getmac"){ 284 this_mac = String(a[l].childNodes[0].nodeValue); 285 } 286 else if(a[l].nodeName=="D:getip"){ 287 this_ip = String(a[l].childNodes[0].nodeValue); 288 } 289 else if(a[l].nodeName=="D:gettype"){ 290 this_type = String(a[l].childNodes[0].nodeValue); 291 } 292 else if(a[l].nodeName=="D:getattr"){ 293 var bb = a[l].childNodes; 294 for (n=0;n<bb.length;n++){ 295 if(bb[n].nodeName=="D:readonly") 296 this_attr_readonly = bb[n].childNodes[0].nodeValue; 297 else if(bb[n].nodeName=="D:hidden") 298 this_attr_hidden = bb[n].childNodes[0].nodeValue; 299 } 300 } 301 } 302 } 303 } 304 } 305 else if(y[j].nodeType==1&&y[j].nodeName=="D:href"){ 306 this_href = String(y[j].childNodes[0].nodeValue); 307 308 var cur_host = ""; 309 310 if(this_href.match(/^http/)) 311 cur_host = window.location.protocol + "//" + window.location.host; 312 313 var cururl = cur_host + addPathSlash(open_url); 314 315 if(this_href!=cururl){ 316 var o_url = open_url; 317 this_href = this_href.replace(cur_host,""); 318 } 319 else{ 320 this_href=""; 321 } 322 } 323 } 324 325 if(this_href!=""){ 326 if( this_contenttype=="httpd/unix-directory" ){ 327 var loc = this_href.replace(addPathSlash(g_open_url),""); 328 array_download_folder.push({ folder: loc }); 329 recursiove_propfind(this_href); 330 } 331 else{ 332 var loc = this_href.replace(addPathSlash(g_open_url),""); 333 array_download_file.push({ file: loc, size: this_contentlength }); 334 } 335 } 336 } 337 } 338 } 339 }, null, 1); 340} 341 342function doCancel(e) { 343 parent.closeJqmWindow(0); 344}; 345 346function get_user_agent(){ 347 return g_storage.get(storage_key_map["agent"]); 348} 349 350function get_server_url(){ 351 var openurl = window.location.protocol + "//" + window.location.host + addPathSlash(g_open_url); 352 return openurl; 353} 354 355function get_remote_folder(){ 356 return array_download_folder; 357} 358 359function get_remote_file(){ 360 return array_download_file; 361} 362 363function start_download(){ 364 refresh_hint_status(""); 365 refresh_status(""); 366 $("#save").css("left", "999px"); 367} 368 369function finish_download(){ 370 refresh_status(m.getString("title_download_finish")); 371} 372 373function refresh_hint_status(status){ 374 $("span#hint").text(decodeURI(status)); 375} 376 377function refresh_status(status){ 378 $("span#progress").text(decodeURI(status)); 379} 380 381function refresh_progress(progress){ 382 $("#lb_Progress").text(progress+"%"); 383 $("#progressbar #div_progress").css("width", progress + "%"); 384 $("#progressbar").show(); 385} 386</script> 387</head> 388<body> 389 390<table width="100%" border="0" align="center" cellpadding="0" cellspacing="0" style="overflow:hidden;"> 391 <tr height="50px"> 392 <td> 393 <table width="100%"> 394 <td><tr> 395 <span id='hint'></span> 396 <span id='progress'></span> 397 </td></tr> 398 </table> 399 </td> 400 </tr> 401 <tr> 402 <td> 403 <div id="progressbar" style="text-align:center;position:relative;"> 404 <div id="div_progress" style="position: absolute;"></div> 405 <div style="position:relative;width:100%;"><label id="lb_Progress" style="color:#ffffff;"></label></div> 406 </div> 407 </td> 408 </tr> 409 <tr> 410 <td> 411 <div class="table_block_footer" style="float:right;height:30px;"> 412 <button id="cancel" class="btnStyle" onClick="doCancel();">Close</button> 413 <div id="save"> 414 </div> 415 </div> 416 </td> 417 </tr> 418</table> 419</body> 420</html> 421