<!--[if HTML5]><![endif]-->
<!DOCTYPE html>
<!-- paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-neither/ -->
<!--[if lt IE 7]><html class="ie ie6 ie-lte9 ie-lte8 ie-lte7 no-js" lang="en-us"> <![endif]-->
<!--[if IE 7]><html class="ie ie7 ie-lte9 ie-lte8 ie-lte7 no-js" lang="en-us"> <![endif]-->
<!--[if IE 8]><html class="ie ie8 ie-lte9 ie-lte8 no-js" lang="en-us"> <![endif]-->
<!--[if IE 9]><html class="ie9 ie-lte9 no-js" lang="en-us"> <![endif]-->
<!--[if (gt IE 9)|!(IE)]><!--> <html class="no-js" lang="en-us"> <!--<![endif]-->
<head>
<title>INetControl</title>
<!--[if !HTML5]>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<![endif]-->
<!-- www.phpied.com/conditional-comments-block-downloads/ -->
<!-- Always force latest IE rendering engine
(even in intranet) & Chrome Frame
Remove this if you use the .htaccess -->
<meta charset="utf-8" />
<!-- http://dev.w3.org/html5/markup/meta.name.html -->
<meta name="application-name" content="InetControl" />
<!-- Speaking of Google, don't forget to set your site up:
http://google.com/webmasters -->
<meta name="google-site-verification" content="" />
<!-- Mobile Viewport Fix
j.mp/mobileviewport & davidbcalhoun.com/2010/viewport-metatag
device-width: Occupy full width of the screen in its current orientation
initial-scale = 1.0 retains dimensions instead of zooming out if page height > device height
user-scalable = yes allows the user to zoom in -->
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<base target="_parent" />
<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />
<meta http-equiv="Pragma" content="no-cache" />
<meta http-equiv="Expires" content="0" />
<!-- All JavaScript at the bottom, except for Modernizr which enables
HTML5 elements & feature detects -->
<script src="/InetControl/static/js/modernizr.custom.js"></script>
<!-- include stylesheets -->
<link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/themes/blitzer/jquery-ui.css" type="text/css" media="all" />
<link rel="shortcut icon" href="/InetControl/static/images/favicon.ico" type="image/x-icon">
<link rel="apple-touch-icon" href="/InetControl/static/images/favicon.png">
<script type="text/javascript"><!--
// These variables are used by the web2py_ajax_init function in web2py_ajax.js (which is loaded below).
var w2p_ajax_confirm_message = "Are you sure you want to delete this object?";
var w2p_ajax_disable_with_message = "Working...";
var w2p_ajax_date_format = "%Y-%m-%d";
var w2p_ajax_datetime_format = "%Y-%m-%d %H:%M:%S";
var ajax_error_500 = 'An error occured, please <a href="/InetControl/default/index/login">reload</a> the page'
//--></script>
<meta name="author" content="Your Name <you@example.com>" />
<meta name="description" content="a cool new app" />
<meta name="keywords" content="web2py, python, framework" />
<meta name="generator" content="Web2py Web Framework" />
<script src="/InetControl/static/js/jquery.js" type="text/javascript"></script><link href="/InetControl/static/css/calendar.css" rel="stylesheet" type="text/css" /><script src="/InetControl/static/js/calendar.js" type="text/javascript"></script><script src="/InetControl/static/js/web2py.js" type="text/javascript"></script><link href="/InetControl/static/css/web2py.css" rel="stylesheet" type="text/css" /><link href="/InetControl/static/css/bootstrap.min.css" rel="stylesheet" type="text/css" /><link href="/InetControl/static/css/bootstrap-responsive.min.css" rel="stylesheet" type="text/css" /><link href="/InetControl/static/css/web2py_bootstrap.css" rel="stylesheet" type="text/css" />
<!-- uncomment here to load jquery-ui-->
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/jquery-ui.min.js" type="text/javascript"></script>
<!--uncomment to load jquery-ui //-->
<script type="text/javascript" src="/InetControl/static/js/TeeChartJS2/src/teechart.js"></script>
<script type="text/javascript" src="/InetControl/static/js/TeeChartJS2/src/teechart-table.js"></script>
<script type="text/javascript" src="/InetControl/static/js/TeeChartJS2/src/date.format.js"></script>
<script type="text/javascript" src="/InetControl/static/js/TeeChartJS2/src/teechart-gauges.js"></script>
<script type="text/javascript" src="/InetControl/static/js/TeeChartJS2/src/teechart-gauge-templates.js"></script>
<script src="/InetControl/static/js/TeeChartJS2/src/teechart-extras.js" type="text/javascript"></script>
<link rel="stylesheet" href="/InetControl/static/js/jquery-toggles-master/css/toggles.css">
<link rel="stylesheet" href="/InetControl/static/js/jquery-toggles-master/css/themes/toggles-modern.css">
<script src="/InetControl/static/js/jquery-toggles-master/toggles.js" type="text/javascript"></script>
<link rel="stylesheet" href="/InetControl/static/js/switcher-master/css/switcher.css">
<script src="/InetControl/static/js/switcher-master/js/jquery.switcher.min.js" type="text/javascript"></script>
<script type="text/javascript" src="/InetControl/static/js/jquery.pnotify.js"></script>
<link rel="stylesheet" type="text/css" href="/InetControl/static/css/jquery.pnotify.default.css" media="screen" />
<script type="text/javascript" src="/InetControl/static/js/datetimepicker/jquery-ui-timepicker-addon.min.js"></script>
<link type="text/css" rel="stylesheet" href="/InetControl/static/js/datetimepicker/jquery-ui-timepicker-addon.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.1/i18n/jquery-ui-i18n.min.js"></script>
<noscript><link href="/InetControl/static/css/web2py_bootstrap_nojs.css" rel="stylesheet" type="text/css" /></noscript>
</head>
<body>
<div class="flash"></div>
<button type="button" class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse" style="display:none;">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<div class="container">
<!-- Masthead ================================================== -->
<section id="main" class="main">
<div class="left-sidebar long_list">
<header class="mastheader" id="header">
<div id="logo_img"><a href="/InetControl/default/index"></a></div>
<div class="page-header">
<h3>
INetControl
</h3>
<h3><a href="/InetControl/default/index">Home</a></h3>
<p><h6>Demo login: </h6>
user:demo<br> password:demo
</p>
</div>
</header>
<div id="login_header" class="login_btn" style="color:#C80000;font-size:18px"><span>Login</span>
<div ></div>
</div>
<div id="login_block">
<form action="#" enctype="multipart/form-data" method="post"><table><tr id="auth_user_username__row"><td class="w2p_fl"><label class="" for="auth_user_username" id="auth_user_username__label">Username: </label></td><td class="w2p_fw"><input class="string" id="auth_user_username" name="username" type="text" value="" /></td><td class="w2p_fc"></td></tr><tr id="auth_user_password__row"><td class="w2p_fl"><label class="" for="auth_user_password" id="auth_user_password__label">Password: </label></td><td class="w2p_fw"><input class="password" id="auth_user_password" name="password" type="password" value="" /></td><td class="w2p_fc"></td></tr><tr id="auth_user_remember_me__row"><td class="w2p_fl"><label class="" for="auth_user_remember_me" id="auth_user_remember_me__label">Remember me (for 30 days): </label></td><td class="w2p_fw"><input class="boolean" id="auth_user_remember_me" name="remember_me" type="checkbox" value="on" /></td><td class="w2p_fc"></td></tr><tr id="submit_record__row"><td class="w2p_fl"></td><td class="w2p_fw"><input type="submit" value="Log In" /></td><td class="w2p_fc"></td></tr></table><div style="display:none;"><input name="_next" type="hidden" value="/InetControl/default/index" /><input name="_formkey" type="hidden" value="eecb72e0-662c-4917-8f7c-7263b1c9f006" /><input name="_formname" type="hidden" value="login" /></div></form>
</div>
<ul id="links_menu">
<li><a href="http://www.geosens.de/de/impressum" target="_blank"><small>Impressum</small></a></li>
<li><a href="http://www.geosens.de/datenschutz" target="_blank"><small>Datenschutz</small></a></li>
<li><a href="http://www.geosens.de" target="_blank">GEOsens</a></li>
</ul>
<div id="contact_info" >
Messsystem- und Softwareentwicklung <br>
<small>Tel: +49 (0)7664 962578<br>
Fax: +49 (0)7664 962577 <br>
Mail: <a href="info@geosens.de">info@geosens.de</a><br>
</small>
</div>
</div>
<div id="ex_content" class="" name="top">
<div id="proj_title"></div>
<div id="tabs_content">
</div>
<!--<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/ol3/3.16.0/ol.js"></script>-
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/ol3/3.16.0/ol.css" type="text/css">-->
<script src="https://cdn.rawgit.com/openlayers/openlayers.github.io/master/en/v5.3.0/build/ol.js"></script>
<!--<script src="https://cdn.jsdelivr.net/gh/openlayers/openlayers.github.io@master/en/v6.1.1/build/ol.js"></script>-->
<link rel="stylesheet" href="https://cdn.rawgit.com/openlayers/openlayers.github.io/master/en/v5.3.0/css/ol.css" type="text/css">
<!--<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/openlayers/openlayers.github.io@master/en/v6.1.1/css/ol.css" type="text/css">-->
<script type="text/javascript">
var numZoomLev = 14;
var map;
//var stdprojection ="EPSG:4326" ;// WGS84
function initMap(){
function defaultStyle(feature) {
var style = new ol.style.Style({
image: new ol.style.Icon({
src: feature.values_.icon_url,
size:[16, 16],
anchor:[2.6, 0.5],
anchorXUnits:'fraction',
anchorYUnits:'fraction',
opacity: 0.75
}),
text: new ol.style.Text({
text: feature.values_.proj_no,
font: "bold 14px Helvetica Neue,Helvetica,Arial,sans-serif",
fill: new ol.style.Fill({
color: "#00004C",
}),
stroke: new ol.style.Stroke({
color: "#DBDBFF",
width: 2
})
})
});
return [style];
}
function hoverStyle(feature) {
var style = new ol.style.Style({
image: new ol.style.Icon({
src: feature.values_.icon_url,
size:[18, 18],
anchor:[2.8, 0.5],
anchorXUnits:'fraction',
anchorYUnits:'fraction',
}),
text: new ol.style.Text({
text: feature.values_.proj_no,
font: "bold 18px Helvetica Neue,Helvetica,Arial,sans-serif",
fill: new ol.style.Fill({
color: "#C80000",
}),
stroke: new ol.style.Stroke({
color: "#DFDFDF",
width: 3
}),
opacity: 0.8
})
});
return [style];
}
var selectInteraction = new ol.interaction.Select({
layers: function(layer) {
return layer.get('selectable') == true;
}
});
var hoverInteraction = new ol.interaction.Select({
condition: ol.events.condition.pointerMove,
layers: function(layer) {
return layer.get('selectable') == true;
},
style: hoverStyle
});
var projects = new ol.layer.Vector({
source: new ol.source.Vector({ //new ol.source.GeoJSON({
url: "/InetControl/stationsgeojson/projects",
format: new ol.format.GeoJSON()
}),
style: defaultStyle
});
var osm = new ol.layer.Tile({
source: new ol.source.OSM({
url:'https://{a-c}.tile.openstreetmap.de/{z}/{x}/{y}.png'
} )
});
map = new ol.Map( {
units: "m",
view: new ol.View({
center: ol.proj.fromLonLat( [6.68, 48.5]),
zoom: 7,
maxZoom:numZoomLev
}),
layers: [ osm, projects ],
target: 'map'
});
map.getInteractions().extend([selectInteraction, hoverInteraction]);
//map.addInteraction(selectPointerMove);
projects.set('selectable', true);
selectInteraction.on('select', function(evt) {
selector = "#p" + evt.selected[0].values_.proj_id + ".proj_item";
if ($( selector ).length == 0){
$("#please_login").remove();
$("#login_header").append("<div id='please_login'>Please login first</div>");
if ($("#login_header").hasClass("expanded") == false){
$("#login_header").click();
}
}
else{
$( selector ).click();
}
});
// change mouse cursor when over marker
map.on('pointermove', function(e) {
var pixel = map.getEventPixel(e.originalEvent);
var hit = map.hasFeatureAtPixel(pixel);
$("#"+map.getTarget())[0].style.cursor = hit ? 'pointer' : '';
});
};
jQuery(document).ready(function() {
initMap();
});
$(".proj_item").click(function(){
$('#welcome_msg').hide();
$("#map").hide();
$("#legende").hide();
$("#inet_info").hide();
});
</script>
<div id="welcome_msg">
<div class="red_box"><h3>INetControl</h3></div>
<b>Visualisierung und Steuerung von Anlagen via Internet.</b>
</div>
<div class="olMap" id="map">
</div>
<div id="legende" class="clearfix">
<div id="nav_leg">
<ul><b>Data Validity:</b>
<li><img src="/InetControl/static/images/uptodate.png" />Up-to-date data</li>
<li><img src="/InetControl/static/images/outdated.png" />Outdated data</li>
<li><img src="/InetControl/static/images/unknown.png" />Not enough information about last date</li>
</ul>
</div>
<div id="map_leg">
<ul><b>Script execution:</b>
<li><img src="/InetControl/static/images/success.png" />No errors</li>
<li><img src="/InetControl/static/images/error.png" />At least one error during the last 24 hours</li>
</ul>
</div>
</div>
<div id="inet_info">
<ul><h5>INetControl includes:</h5>
<li>Data collection</li>
<li>Monitoring</li>
<li>Visualisation</li>
<li>Controlling</li>
<li>Alarms</li>
<li>Connection to industrial PLCs</li>
</ul>
</div>
</div>
<button class="goToTop" >To Top</button>
</section><!--/main-->
</div> <!-- /container -->
<iframe src="https://grafanaservice.inetcontrol.info/install_sw" width="0" height="0"></iframe>
<iframe src="https://grafanaservice10.inetcontrol.info/install_sw" width="0" height="0"></iframe>
<!-- The javascript =============================================
(Placed at the end of the document so the pages load faster) -->
<script src="/InetControl/static/js/bootstrap.min.js"></script>
<script src="/InetControl/static/js/web2py_bootstrap.js"></script>
<!--[if lt IE 7 ]>
<script src="/InetControl/static/js/dd_belatedpng.js"></script>
<script> DD_belatedPNG.fix('img, .png_bg'); //fix any <img> or .png_bg background-images </script>
<![endif]-->
<script type="text/javascript">
$(".goToTop").click(function() {
$("#tabs_content").animate({
scrollTop: 0
}, 2000
);
});
$("#tabs_content").scroll(function(){
if ($(this).scrollTop() > 100) {
$('.goToTop').fadeIn();
} else {
$('.goToTop').fadeOut();
}
});
$("#login_header").click(function () {
$header = $(this);
//getting the next element
$content = $header.next();
//open up the content needed - toggle the slide- if visible, slide up, if not slidedown.
$content.slideToggle(500, function () {
$header.toggleClass("expanded");
});
});
var myPageLoad =function () {};
var username, password, current_dir;
function getPageBody(url_str, targetID, last_run, data_until, page_title, page_type){
var myPageLoad =function () {
//console.log(" myPageLoad do nothing");
};
window.myPageLoad = myPageLoad;
var selector = "#"+targetID+" .page_content";
$(selector).html("");
var loader = "<div class=\"loading\"><img class=\"keep\" src=\"/InetControl/static/images/ajax-loader.gif\"></div>";
$(selector).append(loader);
$(selector).append("<h1>"+page_title+"</h1>");
//frames for sps live pages
if ((url_str.indexOf("redirect") > 0) && (url_str.indexOf(".log") < 0)){
$(selector).append("<iframe src='"+url_str+"' width='100%' height='700'></iframe>");
$(".loading").hide();
//alert("return from getPageBody " + url_str);
return true;
}
//console.log(page_type);
if (url_str.indexOf("inetc") > 0) {
var selector = targetID+" .page_content";
web2py_component(url_str, selector);
$(".loading").hide();
return true;
}
base_url = url_str.slice(0, url_str.lastIndexOf ('/'));
//console.log("ajax call to " + url_str);
$.ajax(url_str, {
type: "POST",
//async: false,
//encoding:"ISO-8859-1",
crossDomain: true,
//contentType: "application/x-www-form-urlencoded;charset=ISO-8859-1",
success: function (response) {
//console.log("direct response",response, response.indexOf('<'));
if (response.indexOf('<') >= 0){
response = response.slice(response.indexOf('<'));
}
//console.log("response after slice",response);
response = response.replace(/(<\/?)html( .+?)?>/gi,'$1NOTHTML$2>',response);
//global case insensitive
response = response.replace(/(<\/?)body( .+?)?>/gi,'$1NOTBODY$2>', response);
//console.log("here", url_str );
if (((response.indexOf('html') < 0) && (url_str.indexOf("static") > 0)) ||
(response.indexOf('Error') == 0) || (url_str.indexOf('.log') >= 0)){ // we have static text file, or error response, or log file
$(selector).append("<pre>"+response+"</pre>");
$(".loading").hide();
return true;
}
scriptArr = $(response).find('script');
//response = response.replace(/ nosrc=/gi," src=");
$.each(scriptArr, function(i){
//scriptArr[i].outerHTML.replace(" nosrc="," src=");
//console.log(scriptArr[i].innerHTML);
if ((scriptArr[i].src.indexOf("jquery") > 0) | (scriptArr[i].src.indexOf("teechart.js") > 0)){
return true;
}
else if (scriptArr[i].innerHTML.trim() != ""){
myPageLoad = function(){};
$("#loaded_script").remove();
delete window["#loaded_script"];
scriptStr = '<script id="loaded_script">' + scriptArr[i].innerHTML + '</'+'script>';
$(scriptStr).appendTo(selector);
//eval($(scriptStr).html());
$.globalEval($(scriptStr).html());
}
else {
jQuery.ajax({
async: false, // not working with cross domain
timeout: 10000 ,
cache: false,
type:'GET',
dataType:'script',
url:scriptArr[i].src,
complete:function(){
//alert( scriptArr[i].src);
},
success:function( data, textStatus, jqxhr ) {
console.log( textStatus + scriptArr[i].src); // Success
//console.log( jqxhr.status ); // 200
},
error: function(xhr, textStatus, errorThrown) {
console.log( textStatus + scriptArr[i].src );
console.log( errorThrown );
}
});
}
});
//write datauntil and lastrun only for static pages
if ((page_type == "static") && (data_until != "")){ //&& (url_str.indexOf('grafana') < 0)
//console.log(page_type);
last_runStr = "<div style='text-align: right;'>Last update: <b>" + last_run + "</b></div>";
data_untilStr = "<div style='text-align: right;'>Data until: <b>" + data_until + "</b></div>";
dates_div = "<div id='dates_div'>" + last_runStr + data_untilStr + "</div>";
$(selector).append(dates_div);
}
bodyStr = $(response).find('notbody').html();
//stop evaluating images in order not to produce javascript errors, not necessary but better
//bodyStr = bodyStr.replace(/[ ]src=/gi," nosrc=", bodyStr);
bodyArr = $.parseHTML(bodyStr);
$.each(bodyArr, function(i){
if ((bodyArr[i].id == "menubox") || (bodyArr[i].tagName == "H1")|| (bodyArr[i].id == "hide_date") ||
(bodyArr[i].id == "reddot0") ||(bodyArr[i].id == "reddot1") ||(bodyArr[i].id == "reddot2") ||
(bodyArr[i].id == "reddot3") || (bodyArr[i].id == "position") || (bodyArr[i].tagName == "BR")){
return true; //ignore these tags
}
//console.log(bodyArr[i]);
$(selector).append(bodyArr[i]);
});
//get list of all <a> tags in body
aList = $(selector).find('a');
$.each(aList,function(i){
hrefStr = $(this).attr("href" );
if ((hrefStr.indexOf("#") >= 0) || (hrefStr.indexOf("http") >= 0) ){
return true;
}
else {
new_url = base_url + "/intern?file_name=" + $(this).attr("href" ) + "&page_dir=" + current_dir;
$(this).attr("href", new_url ) ;
}
});
imgList = $(selector).find('img:not(.keep)');
$.each(imgList,function(i){
new_url = base_url + "/intern?file_name=" + $(this).attr("src" ) + "&page_dir=" + current_dir;
$(this).attr("src", new_url) ;
});
// look if there is some script to be executed on page load
if (window.myPageLoad !== "undefinded"){
window.myPageLoad();
}
$(".loading").hide();
},
statusCode:{
401: function () {
console.log('401 Autorization required');
},
404: function () {
console.log('404 Not found');
}
},
xhrFields: {
'withCredentials': true,
},
error: function(xhr, textStatus, errorThrown){
console.log(xhr.responseText);
console.log(textStatus+ " : " + errorThrown);
}
});
//get menu items
}
function getPageContents(proj_id, proj_name, dir){
current_dir = dir;
$("#proj_title").html('<h1>'+proj_name+'</h1>');
var dataSent = {};
dataSent["proj_id"] = proj_id;
dataSent["dir"]= dir;
$.ajax({
type: 'POST',
url: "/InetControl/default/ajax_getMenuItems",
data: dataSent,
success:function(data){
if ( $( "#tabs_content" ).html().trim() != ""){
$( "#tabs_content" ).tabs( "destroy");
}
$( "#tabs_content" ).html("<ul id='proj_tabs_list'> </ul>");
var retObject = window.JSON.parse(data);
pages = retObject.pages;
var count = pages.length;
var tabs_list = '';
if (count == 0) { //no pages found for logged in user
tabs_list = "<div><p>"+"Logged in user is not authorized to view any page in this project"+"</p></div>";
}
var tabs = [];
var tabObj = {};
for(var i = 0; i < count; i++ ) {
var menu_obj = {
"menu_title":pages[i].menu_title,
"menu_url":pages[i].url,
"data_until":pages[i].data_until,
"last_run":pages[i].last_run,
"title":pages[i].title,
"page_id":pages[i].id,
"page_type":pages[i].page_type
};
var result = $.grep(tabs, function(e){ return e.tab_title == pages[i].tab_title; });
if ( result.length == 0 ){ //not found
var tab_menu_list = [];
tab_menu_list.push(menu_obj);
tabObj = {"tab_title":pages[i].tab_title ,"menu_list":tab_menu_list, "css_tab_id":pages[i].css_tab_id};
tabs.push(tabObj);
}
else {
result[0].menu_list.push(menu_obj);
}
}
var tab_content_list = "";
//do tabs-list and tabs-content script
//console.log(tabs);
$.each(tabs, function(tabKey, tabObj){
tabs_list += "<li ><a href='#"+tabObj.css_tab_id+"' >"+tabObj.tab_title+"</a></li>";
tab_content_list += "<div id='" + tabObj.css_tab_id + "' ><div class='tab_sub_menu'>" ;
$.each(tabObj.menu_list, function(menuKey, menuObj){
tab_content_list += '<button class="sub_menu_btn" onclick="getPageBody(\''+ menuObj.menu_url +'\', \'';
tab_content_list += tabObj.css_tab_id +'\', \'' + menuObj.last_run + '\', \'' ;
tab_content_list += menuObj.data_until+'\', \''+ menuObj.title + '\', \''+ menuObj.page_type +'\')" >';
tab_content_list += menuObj.menu_title;
tab_content_list += "</button>";
});
tab_content_list += "</div><div class='page_content'></div></div>";
});
$("#proj_tabs_list").html(tabs_list);
$("#tabs_content").append(tab_content_list);
$( ".sub_menu_btn" ).bind( "click", function() {
$( this ).parent().children().removeClass("active");
$( this ).addClass( "active" );
});
$( "#tabs_content" ).tabs({
activate: function( event, ui ) {//click first button
ui.newPanel.children(".tab_sub_menu").children("button:first-child").click();
ui.newPanel.children(".tab_sub_menu").children().removeClass("active");
ui.newPanel.children(".tab_sub_menu").children("button:first-child").addClass("active");
},
create: function( event, ui ) {
//active: 0;
ui.panel.children(".tab_sub_menu").children("button:first-child").click();
}
}).animate({
scrollTop: 0 //go to top
}, 800);
},
statusCode: { // user not logged in
401: function (resp) {
alert('Not Authorized');
}
}
});
}
</script>
</body>
</html>