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="Cache-control" content="no-cache"> 6<meta name="viewport" content="width=device-width, minimum-scale=1.0, maximum-scale=1, user-scalable=no" /> 7<meta name="apple-mobile-web-app-capable" content="yes"> 8<meta name="apple-mobile-web-app-status-bar-style" content="black"> 9<meta http-equiv="X-UA-Compatible" content="IE=edge"> 10<link rel="apple-touch-icon" href="/smb/css/appicon.png"> 11<link rel="apple-touch-startup-image" href="/smb/css/startup.png"> 12<title>AiCloud</title> 13<style> 14html{ 15margin:0 0; 16padding:0px; 17font-family:"Segoe UI",Arial; 18} 19body{ 20display: block; 21overflow: hidden; 22} 23 24input,#ok { 25background:transparent url("/smb/css/style-theme1.png") no-repeat top left; 26} 27 28#login_logo{ 29width:300px; 30height:128px; 31background:transparent url("/smb/css/logo.jpg") no-repeat top left; 32position: absolute; 33top: 10px; 34} 35 36#ok{ 37background-position: -120px -95px; 38width:40px; 39height:40px; 40float:right; 41} 42#title1{ 43color:#fff; 44font-size:30px 45} 46#title2{ 47color:#fff; 48font-size:20px 49} 50input { 51font-size: 15px; 52text-shadow: 0px 1px 0px white; 53outline: none; 54background-position: -280px -414px; 55-webkit-border-radius: 0; 56-moz-border-radius: 0; 57border-radius: 0; 58border: 0; 59-webkit-box-shadow: 0 0 0; 60-moz-box-shadow: 0 0 0; 61box-shadow: 0 0 0; 62} 63div.cap_num{ 64width:40px; 65height:40px; 66float:right; 67} 68.unselectable { 69-moz-user-select: -moz-none; 70-khtml-user-select: none; 71-webkit-user-select: none; 72-o-user-select: none; 73user-select: none; 74} 75</style> 76<script type="text/javascript" src="/smb/js/tools.js"></script> 77<script type='text/javascript' src='/smb/js/davclient_tools.js'></script> 78<script type="text/javascript"> 79var this_url; 80var m = new lang(); 81var g_storage = new myStorage(); 82var g_captcha = -1; 83 84$("document").ready(function() { 85 var loc_lan = String(window.navigator.userLanguage || window.navigator.language).toLowerCase(); 86 var lan = ( g_storage.get('lan') == undefined ) ? loc_lan : g_storage.get('lan'); 87 m.setLanguage(lan); 88 89 $('label#username').text(m.getString('title_username2')); 90 $('label#password').text(m.getString('title_password2')); 91 $('label#captcha').text(m.getString('title_captcha')); 92 93 this_url = $("input.urlInfo").attr("value"); 94 95 if(this_url!="/"){ 96 $("div#title1").text(m.getString('title_login')); 97 $("div#title2").text(this_url); 98 } 99 100 var browserVer = navigator.userAgent.toLowerCase(); 101 102 if( browserVer.indexOf("msie") != -1 && 103 getInternetExplorerVersion() <= 7 ){ 104 105 $("table#table_login").remove(); 106 107 var append_html = '<table border="0" cellpadding="0" cellspacing="3" style="position: relative;left:40px;padding-top:20px"><tbody><tr><td width="240px">'; 108 append_html += '<font color="white" size="4">'; 109 append_html += '<label>'; 110 append_html += m.getString('msg_browsersupport'); 111 append_html += '</label>'; 112 append_html += '</font>'; 113 append_html += '</td>'; 114 append_html += '</tr>'; 115 append_html += '</tbody>'; 116 append_html += '</table>'; 117 $(append_html).appendTo($("#main")); 118 119 return; 120 } 121 122 $(".captcha").css("display","none"); 123 124 generateCaptcha(); 125 126 adjustUI(); 127 128 $(window).resize(adjustUI); 129 130 $("table#table_login").css("display", "block"); 131 132 $("input#username").focus(); 133}); 134 135function parseXml(xml) { 136 if (jQuery.browser.msie) { 137 var xmlDoc = new ActiveXObject("Microsoft.XMLDOM"); 138 xmlDoc.loadXML(xml); 139 xml = xmlDoc; 140 } 141 return xml; 142} 143 144function generateCaptcha(){ 145 146 if(this_url!="/") 147 return; 148 149 $.ajax({ 150 url: 'GetCaptchaImage', 151 data: '', 152 type: 'GET', 153 dataType: 'xml', 154 timeout: 20000, 155 error: function(){ 156 //alert('Error loading XML document'); 157 }, 158 success: function(xml){ 159 160 var data = parseXml(xml); 161 var captcha_enable = $(data).find('enable').text(); 162 if(captcha_enable==1){ 163 var image_data1 = $(data).find('img1').text(); 164 var image_data1 = $(data).find('img1').text(); 165 var image_data2 = $(data).find('img2').text(); 166 var image_data3 = $(data).find('img3').text(); 167 var image_data4 = $(data).find('img4').text(); 168 g_captcha = $(data).find('code').text(); 169 170 var captcha_pattern = ""; 171 $("#captcha_pattern").empty(); 172 173 captcha_pattern += "<div class='cap_num' style='background-image: url(" + image_data4 + ")'></div>"; 174 captcha_pattern += "<div class='cap_num' style='background-image: url(" + image_data3 + ")'></div>"; 175 captcha_pattern += "<div class='cap_num' style='background-image: url(" + image_data2 + ")'></div>"; 176 captcha_pattern += "<div class='cap_num' style='background-image: url(" + image_data1 + ")'></div>"; 177 178 $(captcha_pattern).appendTo("#captcha_pattern"); 179 180 $(".captcha").css("display","block"); 181 182 $("#main").css("height",420); 183 } 184 185 } 186 }); 187} 188 189function adjustUI(){ 190 var logo_left = ($(document).width() - $("div#login_logo").width())/2; 191 $("div#login_logo").css("left", logo_left); 192} 193 194function getInternetExplorerVersion(){ 195 var rv = -1; // Return value assumes failure. 196 if (navigator.appName == 'Microsoft Internet Explorer'){ 197 var ua = navigator.userAgent; 198 var re = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})"); 199 if (re.exec(ua) != null) 200 rv = parseFloat( RegExp.$1 ); 201 } 202 return rv; 203} 204 205function doOK(e) { 206 var captcha = $('input#captcha').val(); 207 var user = ""; 208 var pass = ""; 209 var auth = ""; 210 211 if(g_captcha!=-1&&captcha!=g_captcha){ 212 alert(m.getString('msg_error_captcha')); 213 } 214 else{ 215 user = $('input#username').val(); 216 pass = $('input#password').val(); 217 auth = "Basic " + Base64.encode(user + ":" + pass); 218 } 219 220 var client = new davlib.DavClient(); 221 client.initialize(); 222 223 g_storage.set('openurl', this_url); 224 client.PROPFIND(this_url, auth, function(error, statusstring, content){ 225 if(error==401){ 226 227 $('input#password').attr("value",""); 228 229 var the_left = parseInt($('div#login_logo').css("left")); 230 231 for(var i=0; i<6; i++){ 232 233 var x = i%2; 234 var new_left = 0; 235 if(x==0) 236 new_left = the_left + i*5; 237 else if(x==1) 238 new_left = the_left - i*5; 239 240 $('div#login_logo').animate({ 241 left: new_left 242 }, 100, function(){ 243 if(i=5) 244 adjustUI(); 245 } ); 246 247 } 248 249 } 250 else{ 251 setTimeout(function(){ 252 window.location.reload(true); 253 }, 100); 254 } 255 }); 256} 257 258function getUrlVars(){ 259 var vars = [], hash; 260 var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&'); 261 for(var i = 0; i < hashes.length; i++){ 262 hash = hashes[i].split('='); 263 vars.push(hash[0]); 264 vars[hash[0]] = hash[1]; 265 } 266 return vars; 267} 268 269function onKeyHandler(e){ 270 if(e.keyCode==13) 271 doOK(e); 272} 273 274</script> 275</head> 276<body style='padding-top:20px;margin:0;background-color:#014051'> 277 278<table id="logo" width="100%" border="0" valign="middle" align="center" cellpadding="0" cellspacing="0"> 279 <tbody><tr height="128px"> 280 <tr><td valign="middle" align="center"><div id="login_logo"></div></td></tr> 281 </tr></tbody> 282</table> 283 284<table width="100%" border="0" valign="middle" align="center" cellpadding="0" cellspacing="0"> 285 <tbody> 286 <tr> 287 <td valign="middle" align="center"> 288 <div style="width:300px;height:88px;background-color:#01536B;padding-top:10px"> 289 <div id="title1">Welcome.</div> 290 <div id="title2">Who���s coming home?</div> 291 </div> 292 </td> 293 </tr> 294 <tr height="7px"></tr> 295 </tbody> 296</table> 297 298<table width="100%" height="100%"> 299 <tbody><tr> 300 <td valign="middle" align="center"> 301 302 <table valign="middle" align="center" border="0" cellpadding="0" cellspacing="0"> 303 <tbody><tr> 304 <td align="left" background="" height="106" alt=""> 305 <div id="main" style="width:300px;height:385px;background-color:#008F6D"> 306 <table id="table_login" border="0" cellpadding="0" cellspacing="3" style="position: relative;left:40px;padding-top:20px;display:none"> 307 <tbody> 308 <tr> 309 <td><font color="white" size="4"><label id="username">Username :</label></font></td> 310 </tr> 311 <tr height="5px"></tr> 312 <tr> 313 <td><input id="username" name="username" type="text" size="20" autocapitalize="off" style="font-size:20px;width:220px;height:36px"></td> 314 </tr> 315 <tr style="height:10px"></tr> 316 <tr> 317 <td><font color="white" size="4"><label id="password">Password :</label></font></td> 318 </tr> 319 <tr height="5px"></tr> 320 <tr> 321 <td><input id="password" name="password" type="password" size="20" style="font-size:20px;width:220px;height:36px" onkeydown="return onKeyHandler(event)"></td> 322 </tr> 323 <tr style="height:10px"></tr> 324 <tr class="captcha" style="display:none"> 325 <td><font color="white" size="4"><label id="captcha">Random no. :</label></font></td> 326 </tr> 327 <tr class="captcha" height="5px" style="display:none"></tr> 328 <tr class="captcha" style="display:none"> 329 <td><input id="captcha" name="captcha" type="text" size="20" autocapitalize="off" maxlength="4" style="font-size:20px;width:220px;height:36px" onkeydown="return onKeyHandler(event)"> 330 </td> 331 </tr> 332 <tr class="captcha" height="5px" style="display:none"></tr> 333 <tr class="captcha" style="display:none"> 334 <td><div id="captcha_pattern" class="unselectable" name="captcha_pattern" style="width:220px;height:40px;float:left" onclick="generateCaptcha()"></div></td> 335 </tr> 336 <tr style="height:10px"></tr> 337 <tr> 338 <td colspan="2" align="center"><div id="ok" onClick="doOK();"></div></td> 339 </tr> 340 </tbody> 341 </table> 342 </div> 343 </td> 344 </tr></tbody> 345 </table> 346 347 </td> 348 </tr></tbody> 349</table> 350 351</body> 352</html> 353