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 loc_lan = String(window.navigator.userLanguage || window.navigator.language).toLowerCase(); 118 var lan = ( g_storage.get('lan') == undefined ) ? loc_lan : g_storage.get('lan'); 119 m.setLanguage(lan); 120 121 $("#progressbar").hide(); 122 123 $('button#cancel').text(m.getString('btn_cancel')); 124 var msg = ""; 125 126 if (!navigator.javaEnabled()) { 127 showEnableJAVAUI(); 128 return; 129 } 130 131 var is_java_enabled = false; 132 if (deployJava.versionCheck("1.6.0+") || deployJava.versionCheck("1.4") || deployJava.versionCheck("1.5.0*")) { 133 is_java_enabled = true; 134 } 135 136 if(!is_java_enabled){ 137 showInstallJAVAUI(); 138 return; 139 } 140 141 if(getUrlVars()["p"]){ 142 storage_key_map["port"] = getUrlVars()["p"]; 143 } 144 145 if(getUrlVars()["a"]){ 146 storage_key_map["agent"] = getUrlVars()["a"]; 147 } 148 149 if(getUrlVars()["u"]){ 150 g_open_url = getUrlVars()["u"]; 151 } 152 153 var media_hostName = window.location.host; 154 if(media_hostName.indexOf(":")!=-1) 155 media_hostName = media_hostName.substring(0, media_hostName.indexOf(":")); 156 var jar_file = "http://" + media_hostName + ":" + g_storage.get(storage_key_map["port"]) + '/smb/css/CloudUtil.jar'; 157 158 var applet_html = '<applet name="AiCloud_Applet" id="AiCloud_Applet" ARCHIVE="'; 159 applet_html += jar_file; 160 applet_html += '" code="com.asus.aicloud.Download.class" width="100%" height="100%" >'; 161 applet_html += 'Your browser does not support JAVA!'; 162 applet_html += '<PARAM NAME="MAYSCRIPT" VALUE="true">'; 163 applet_html += '</applet>'; 164 $(applet_html).appendTo($("#save")); 165 166 this_url = getUrlVars()["v"]; 167 168 var select_folder = this_url.split(";"); 169 170 array_download_folder = []; 171 array_download_file = []; 172 173 var msg = m.getString("title_download_folder_select"); 174 msg = msg.replace("%s", select_folder.length); 175 176 refresh_hint_status(msg); 177 178 var count = select_folder.length; 179 for(var i=0; i<count; i++){ 180 var folder_path = select_folder[i]; 181 recursiove_propfind(folder_path); 182 } 183 184}); 185 186function recursiove_propfind(open_url){ 187 if(open_url==""||open_url==undefined) 188 return; 189 190 var client = new davlib.DavClient(); 191 client.initialize(); 192 193 client.PROPFIND(open_url, null, function(error, statusstring, content){ 194 if(error){ 195 if(error==207){ 196 197 var parser; 198 var xmlDoc; 199 200 var g_folder_array = new Array(); 201 var g_file_array = new Array(); 202 203 if (window.DOMParser){ 204 parser=new DOMParser(); 205 xmlDoc=parser.parseFromString(content,"text/xml"); 206 } 207 else { // Internet Explorer 208 xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); 209 xmlDoc.async="false"; 210 xmlDoc.loadXML(content); 211 212 if(!xmlDoc.documentElement){ 213 alert("Fail to load xml!"); 214 showHideLoadStatus(false); 215 return; 216 } 217 } 218 219 var i, j, k, l, n; 220 var x = xmlDoc.documentElement.childNodes; 221 222 var this_query_type = xmlDoc.documentElement.getAttribute('qtype'); //- 2: query host, 1: query share, 0: query file 223 var this_folder_readonly = xmlDoc.documentElement.getAttribute('readonly'); 224 var this_router_username = xmlDoc.documentElement.getAttribute('ruser'); 225 var this_computer_name = xmlDoc.documentElement.getAttribute('computername'); 226 var this_isusb = xmlDoc.documentElement.getAttribute('isusb'); 227 var cur_openurl = addPathSlash(g_open_url); 228 229 //- D:Response 230 for (i=0;i<x.length;i++){ 231 var this_href = ""; 232 var this_contenttype = ""; 233 var this_uniqueid = ""; 234 var this_name = ""; 235 var this_short_name = ""; 236 var this_online = ""; 237 var this_lastmodified = ""; 238 var this_contentlength = ""; 239 var this_ip = ""; 240 var this_mac = ""; 241 var this_type = ""; 242 var this_attr_readonly = ""; 243 var this_attr_hidden = ""; 244 var this_uncode_name; 245 246 var y = x[i].childNodes; 247 for (j=0;j<y.length;j++){ 248 if(y[j].nodeType==1&&y[j].nodeName=="D:propstat"){ 249 250 var z = y[j].childNodes; 251 252 for (k=0;k<z.length;k++) 253 { 254 if(z[k].nodeName=="D:prop"){ 255 256 var a = z[k].childNodes; 257 258 for (l=0;l<a.length;l++) 259 { 260 if(a[l].childNodes.length<=0) 261 continue; 262 263 if(a[l].nodeName=="D:getcontenttype"){ 264 this_contenttype = String(a[l].childNodes[0].nodeValue); 265 } 266 else if(a[l].nodeName=="D:getuniqueid"){ 267 this_uniqueid = String(a[l].childNodes[0].nodeValue); 268 } 269 else if(a[l].nodeName=="D:getonline"){ 270 this_online = String(a[l].childNodes[0].nodeValue); 271 } 272 else if(a[l].nodeName=="D:getlastmodified"){ 273 this_lastmodified = String(a[l].childNodes[0].nodeValue); 274 } 275 else if(a[l].nodeName=="D:getcontentlength"){ 276 //this_contentlength = String( size_format(parseInt(a[l].childNodes[0].nodeValue))); 277 this_contentlength = String(a[l].childNodes[0].nodeValue); 278 } 279 else if(a[l].nodeName=="D:getmac"){ 280 this_mac = String(a[l].childNodes[0].nodeValue); 281 } 282 else if(a[l].nodeName=="D:getip"){ 283 this_ip = String(a[l].childNodes[0].nodeValue); 284 } 285 else if(a[l].nodeName=="D:gettype"){ 286 this_type = String(a[l].childNodes[0].nodeValue); 287 } 288 else if(a[l].nodeName=="D:getattr"){ 289 var bb = a[l].childNodes; 290 for (n=0;n<bb.length;n++){ 291 if(bb[n].nodeName=="D:readonly") 292 this_attr_readonly = bb[n].childNodes[0].nodeValue; 293 else if(bb[n].nodeName=="D:hidden") 294 this_attr_hidden = bb[n].childNodes[0].nodeValue; 295 } 296 } 297 } 298 } 299 } 300 } 301 else if(y[j].nodeType==1&&y[j].nodeName=="D:href"){ 302 this_href = String(y[j].childNodes[0].nodeValue); 303 304 var cur_host = ""; 305 306 if(this_href.match(/^http/)) 307 cur_host = window.location.protocol + "//" + window.location.host; 308 309 var cururl = cur_host + addPathSlash(open_url); 310 311 if(this_href!=cururl){ 312 var o_url = open_url; 313 this_href = this_href.replace(cur_host,""); 314 } 315 else{ 316 this_href=""; 317 } 318 //alert(this_href); 319 } 320 } 321 322 if(this_href!=""){ 323 if( this_contenttype=="httpd/unix-directory" ){ 324 var loc = this_href.replace(addPathSlash(g_open_url),""); 325 array_download_folder.push({ folder: loc }); 326 recursiove_propfind(this_href); 327 } 328 else{ 329 var loc = this_href.replace(addPathSlash(g_open_url),""); 330 array_download_file.push({ file: loc, size: this_contentlength }); 331 } 332 } 333 } 334 } 335 } 336 }, null, 1); 337} 338 339function doCancel(e) { 340 parent.closeJqmWindow(0); 341}; 342 343function getUrlVars(){ 344 var vars = [], hash; 345 var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&'); 346 for(var i = 0; i < hashes.length; i++){ 347 hash = hashes[i].split('='); 348 vars.push(hash[0]); 349 vars[hash[0]] = hash[1]; 350 } 351 return vars; 352} 353 354function get_user_agent(){ 355 return g_storage.get(storage_key_map["agent"]); 356} 357 358function get_server_url(){ 359 var openurl = window.location.protocol + "//" + window.location.host + addPathSlash(g_open_url); 360 return openurl; 361} 362 363function get_remote_folder(){ 364 return array_download_folder; 365} 366 367function get_remote_file(){ 368 return array_download_file; 369} 370 371function start_download(){ 372 refresh_hint_status(""); 373 refresh_status(""); 374 $("#save").css("left", "999px"); 375} 376 377function finish_download(){ 378 refresh_status(m.getString("title_download_finish")); 379} 380 381function refresh_hint_status(status){ 382 $("span#hint").text(decodeURI(status)); 383} 384 385function refresh_status(status){ 386 $("span#progress").text(decodeURI(status)); 387} 388 389function refresh_progress(progress){ 390 $("#lb_Progress").text(progress+"%"); 391 $("#progressbar #div_progress").css("width", progress + "%"); 392 $("#progressbar").show(); 393} 394</script> 395</head> 396<body> 397 398<table width="100%" border="0" align="center" cellpadding="0" cellspacing="0" style="overflow:hidden;"> 399 <tr height="50px"> 400 <td> 401 <table width="100%"> 402 <td><tr> 403 <span id='hint'></span> 404 <span id='progress'></span> 405 </td></tr> 406 </table> 407 </td> 408 </tr> 409 <tr> 410 <td> 411 <div id="progressbar" style="text-align:center;position:relative;"> 412 <div id="div_progress" style="position: absolute;"></div> 413 <div style="position:relative;width:100%;"><label id="lb_Progress" style="color:#ffffff;"></label></div> 414 </div> 415 </td> 416 </tr> 417 <tr> 418 <td> 419 <div class="table_block_footer" style="float:right;height:30px;"> 420 <button id="cancel" class="btnStyle" onClick="doCancel();">Close</button> 421 <div id="save"> 422 </div> 423 </div> 424 </td> 425 </tr> 426</table> 427</body> 428</html> 429