Last active
May 8, 2018 19:54
-
-
Save beppe9000/ed330a6d58dea17a22728954487cd3d1 to your computer and use it in GitHub Desktop.
roba userscript vs3
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
SE STAI LEGGENDO QUESTO TESTO PROBABILMENTE NON HAI ESTENSIONE DEL BROWSER PER ESEGUIRE GLI USERSCRIPT | |
AGGIUNGI L'ESTENSIONE GREASEMONKEY OPPURE TAMPERMONKEY AL TUO BROWSER E RIPROVA | |
*/ | |
// ==UserScript== | |
// @name User Station | Beppe9000 | |
// @namespace https://gist.github.com/beppe9000/ed330a6d58dea17a22728954487cd3d1 | |
// @include http://192.168.1.1/main.cgi?page=app.html* | |
// @include https://192.168.1.1/main.cgi?page=app.html* | |
// @include http://192.168.2.1/main.cgi?page=app.html* | |
// @include https://192.168.2.1/main.cgi?page=app.html* | |
// @include http://vodafone.station/main.cgi?page=app.html* | |
// @include https://vodafone.station/main.cgi?page=app.html* | |
// @include http://192.168.1.1/main.cgi?page=index.html* | |
// @include https://192.168.1.1/main.cgi?page=index.html* | |
// @include http://192.168.2.1/main.cgi?page=index.html* | |
// @include https://192.168.2.1/main.cgi?page=index.html* | |
// @include http://vodafone.station/main.cgi?page=index.html* | |
// @include https://vodafone.station/main.cgi?page=index.html* | |
// @updateURL https://rawgit.com/beppe9000/ed330a6d58dea17a22728954487cd3d1/raw/b9k.userstation.user.js | |
// @downloadURL https://rawgit.com/beppe9000/ed330a6d58dea17a22728954487cd3d1/raw/b9k.userstation.user.js | |
// @version 1.2.1 | |
// @grant none | |
// @run-at document-start | |
// ==/UserScript== | |
console.log('UserStation by Beppe9000'); | |
var rbase ='https://rawgit.com/beppe9000/ed330a6d58dea17a22728954487cd3d1/raw/'; | |
var sss = { | |
'/js/navigationManager.js': rbase + 'z.navigationManager.mod.js' | |
}; | |
qmd5=function(){for(var m=[],l=0;64>l;)m[l]=0|4294967296*Math.abs(Math.sin(++l));return function(c){var e,g,f,a,h=[];c=unescape(encodeURI(c));for(var b=c.length,k=[e=1732584193,g=-271733879,~e,~g],d=0;d<=b;)h[d>>2]|=(c.charCodeAt(d)||128)<<8*(d++%4);h[c=16*(b+8>>6)+14]=8*b;for(d=0;d<c;d+=16){b=k;for(a=0;64>a;)b=[f=b[3],(e=b[1]|0)+((f=b[0]+[e&(g=b[2])|~e&f,f&e|~f&g,e^g^f,g^(e|~f)][b=a>>4]+(m[a]+(h[[a,5*a+1,3*a+5,7*a][b]%16+d]|0)))<<(b=[7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21][4*b+a++%4])|f>>>32-b),e,g];for(a=4;a;)k[--a]=k[a]+b[a]}for(c="";32>a;)c+=(k[a>>3]>>4*(1^a++&7)&15).toString(16);return c}}(); | |
//indirizzi parziali per script remoti addizionali | |
sss['/js/utils.js'] = rbase + 'z.utils.mod.js'; | |
window.addEventListener('beforescriptexecute', b); | |
function b(c) { | |
var a = c.target; | |
if (a.src=="") {console.log("nuovo script in-line:",a);} else { console.log('nuovo script: ', a);} | |
for (var key in sss) { | |
var d = sss[key]; | |
if (a.src.includes(key)) { | |
console.log('triggered:', key); | |
get_run(d); //nuovo metodo | |
/* | |
var e = document.createElement('script'); | |
console.log('script sostitutivo: ', d); | |
e.src = d; | |
a.parentNode.replaceChild(e, a); | |
*/ | |
c.preventDefault(); | |
document.addEventListener('DOMContentLoaded', zk); | |
return; | |
} | |
} | |
if (a.id=="pageSpecificScript"){ | |
var h = qmd5(a.innerText); | |
console.log("page-specific script: "+h); | |
if (h==="ce4f6faccd555089f1adffe73b595eaa"){ | |
console.log("rilevato script per call blocking. inibizione del codice."); | |
c.preventDefault(); | |
console.log("scarico ed eseguo script modificato per aggirare il controllo numeri"); | |
//$.getScript( rbase+"z.phone_number_blocking.mod.js", function( data, textStatus, jqxhr ) {console.log( "fatto" ,textStatus );}); | |
get_run(rbase+"z.phone_number_blocking.mod.js"); | |
} | |
} | |
} | |
function zk(){ | |
var bim = 'url(data:image/png;base64,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)'; | |
console.log('DCL -> cambio icona'); | |
document.getElementById("rhombus-logo").style.backgroundImage = bim; | |
$('#rhombus-logo').css('background-image', bim); | |
} | |
//window.addEventListener('afterscriptexecute', b2); | |
//function b2(t){} | |
function get_run(url){ | |
var lreq; | |
$.ajax({ | |
type: 'GET', | |
url: url, | |
dataType: "html", | |
success: function(klop){ | |
lreq=klop; | |
console.log("download script ok", url); | |
}, | |
async:false | |
}); | |
if (!(lreq === undefined)) {console.log("eseguo script scaricato:", lreq); jQuery.globalEval(lreq);} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
console.log("CARICATA MOD PER INPUT VALIDATION DELLA BLACKIST"); | |
(function(page_switch_counter_local) { | |
var loadingPageTimer = window.setInterval(function() { | |
if (page_switch_counter_local == page_switch_counter) { | |
if (pageChange_AllLoaded) { | |
window.clearInterval(loadingPageTimer); | |
init_phone_number_blocking(); | |
} | |
} | |
else { | |
window.clearInterval(loadingPageTimer); | |
} | |
}, | |
200); | |
var rsrc_mngr; | |
var page_texts; | |
var sPageHtml = ""; | |
var page_main_controls_original; | |
var page_main_controls; | |
function ResetPageVariables() { | |
all_controls = {}; | |
} | |
function init_phone_number_blocking() { | |
var param_arr = controls_to_param_arr(page_main_controls_original); | |
param_arr.push("activation_wizard.is_finished"); | |
rsrc_mngr = new ResourcesMngr(param_arr); | |
load_page_content(); | |
do_action("get", rsrc_mngr, init_phone_number_blocking_continue, {} | |
); | |
} | |
function init_phone_number_blocking_continue(status_obj, context) { | |
if (CheckCriticalError(status_obj, true)) { | |
return; | |
} | |
CheckActivationStatusForInitMode(rsrc_mngr, init_page_content, sPageHtml, page_texts); | |
} | |
function init_page_content(bResetPage) { | |
if (bResetPage) { | |
DiscardAjaxRequests(); | |
} | |
RemoveAlerts(); | |
ResetPageVariables(); | |
page_main_controls = json_copy({ | |
"ctrl": page_main_controls_original | |
}).ctrl; | |
RegisterControls(page_main_controls); | |
registerDefaultResources(page_main_controls); | |
$("#" + main_content_area_id).html(sPageHtml); | |
ResourceToControl(rsrc_mngr, page_main_controls); | |
init_lists(page_main_controls); | |
init_controls_gui(page_main_controls); | |
init_texts(page_texts); | |
var outgoingNumbersList = get_control_by_id("voice.number_blocking.outgoing.numbers"); | |
var addedListItem; | |
if (!outgoingNumbersList.items.length) { | |
AddListItem("voice.number_blocking.outgoing.numbers"); | |
addedListItem = outgoingNumbersList.items[outgoingNumbersList.items.length - 1]; | |
addedListItem.auto_created = true; | |
} | |
var incomingNumbersList = get_control_by_id("voice.number_blocking.incoming.numbers"); | |
if (!incomingNumbersList.items.length) { | |
AddListItem("voice.number_blocking.incoming.numbers"); | |
addedListItem = incomingNumbersList.items[incomingNumbersList.items.length - 1]; | |
addedListItem.auto_created = true; | |
} | |
initApplyFunctions(); | |
$("#" + main_content_area_id).fadeIn(); | |
if (bResetPage) { | |
scroll_to_top(true); | |
} | |
} | |
function initApplyFunctions() { | |
var applyManager = new app.ApplyManager(page_main_controls); | |
applyManager.cancelChanges = function() { | |
init_page_content(true); | |
}; | |
applyManager.handleUpdateResponse = handle_update_response; | |
applyManager.afterCriticalErrorCommitResponseAction = function() { | |
init_page_content(false); | |
}; | |
applyManager.init(); | |
} | |
function load_page_content() { | |
sPageHtml = $("<div>" + loadedPageHtml + "</div>").find("#pageMainDataContent").append(utils.applyTemplate("errorMessageTpl", {} | |
)).append(utils.applyTemplate("mainButtonsTpl", {} | |
)).end().html(); | |
} | |
var blockedNum = ["0180#", "0137#", "0190#", "0900#"]; | |
function rsrc_forbidden_numbers_string_to_value_array() { | |
var sVal, aVals; | |
var rsrc_ids = this.rsrc_ids; | |
var rsrc = this.rsrc; | |
sVal = rsrc.value_get(rsrc_ids[0]); | |
if (sVal.length > 0) { | |
aVals = sVal.split(","); | |
if (aVals.indexOf('00#') >= 0) { | |
aVals.splice(aVals.indexOf('00#'), 1); | |
} | |
if (aVals.indexOf('118#') >= 0) { | |
aVals.splice(aVals.indexOf('118#'), blockedNum.length + 1); | |
} | |
} | |
else { | |
aVals = []; | |
} | |
this.value = aVals; | |
this.value_original = aVals; | |
} | |
function parse_numbers_string_into_array(listItemData) { | |
var listItem = this; | |
get_control_by_id(listItem.id + ".number").value = listItemData; | |
get_control_by_id(listItem.id + ".number").value_original = listItemData; | |
} | |
function numbers_list_value_to_resource() { | |
var i, j, oNumberRow; | |
var sNumbersArr = ""; | |
var oNumbersList = this; | |
for (i = 0; i < oNumbersList.items.length; i++) { | |
if (oNumbersList.items[i].listItemStatus == "update" || oNumbersList.items[i].listItemStatus == "add") { | |
oNumberRow = oNumbersList.items[i]; | |
if (get_control_value(oNumberRow.id + ".number") != "") { | |
sNumbersArr += get_control_value(oNumberRow.id + ".number") + ","; | |
} | |
} | |
} | |
if (oNumbersList.id.indexOf("outgoing") >= 0) { | |
var blockAllForeignNumbers = get_control_value("phoneNumberBlocking_blockAllForeignNumbers"); | |
if (blockAllForeignNumbers) { | |
sNumbersArr += "00#,"; | |
} | |
var blockAllSpecialNumbers = get_control_value("phoneNumberBlocking_blockAllSpecialNumbers"); | |
if (blockAllSpecialNumbers) { | |
sNumbersArr += "118#,"; | |
for (i = 0; i < blockedNum.length; i++) { | |
if (sNumbersArr.search(blockedNum[i]) == -1) { | |
sNumbersArr += blockedNum[i] + ","; | |
} | |
} | |
} | |
} | |
sNumbersArr = sNumbersArr.slice(0, sNumbersArr.length - 1); | |
oNumbersList.rsrc.value_set(oNumbersList.rsrc_ids[0], sNumbersArr); | |
} | |
function blockAllForeignNumbers_rsrc_to_value() { | |
var rsrc_ids = this.rsrc_ids; | |
var rsrc = this.rsrc; | |
var forbiddenOutgoingNumbers = rsrc.value_get(rsrc_ids[0]); | |
if (forbiddenOutgoingNumbers.length) { | |
forbiddenOutgoingNumbers = forbiddenOutgoingNumbers.split(","); | |
} | |
this.value = forbiddenOutgoingNumbers.indexOf("00#") >= 0; | |
this.value_original = this.value; | |
} | |
function blockAllSpecialNumbers_rsrc_to_value() { | |
var rsrc_ids = this.rsrc_ids; | |
var rsrc = this.rsrc; | |
var forbiddenOutgoingNumbers = rsrc.value_get(rsrc_ids[0]); | |
if (forbiddenOutgoingNumbers.length) { | |
forbiddenOutgoingNumbers = forbiddenOutgoingNumbers.split(","); | |
} | |
this.value = forbiddenOutgoingNumbers.indexOf("118#") >= 0; | |
for (var i = 0; i < blockedNum.length; i++) { | |
if (forbiddenOutgoingNumbers.indexOf(blockedNum[i]) == -1) { | |
this.value = false; | |
break; | |
} | |
} | |
this.value_original = this.value; | |
} | |
function validateBlockOutgoingNumbers() { | |
var aMessages = []; | |
var msg = ""; | |
var test = this.value; | |
if (!validateOutgoingPhoneNumber(test)) { | |
msg = _("PAGE_NUMBER_BLOCKING_INVALID_BLOCKING"); | |
aMessages.push(msg); | |
} | |
return aMessages; | |
} | |
function isEmergencyNumber(sPhoneNumber) { | |
var emergPhoneList = ["110", "112", "115"]; | |
for (var i = 0; i < emergPhoneList.length; i++) { | |
if (emergPhoneList[i] == sPhoneNumber) | |
return true; | |
} | |
return false; | |
} | |
function validateBlockIncomingNumbers() { | |
var aMessages = []; | |
var msg = ""; | |
var test = this.value; | |
if (isEmergencyNumber(test) || !validateBlockPhoneNumber(test)) { | |
msg = _("ERROR_INVALID_BLOCKING_INCOMING_PHONE_NUMBER"); | |
aMessages.push(msg); | |
} | |
return aMessages; | |
} | |
function validateOutgoingPhoneNumber(sPhoneNumber) { | |
var blockForeignNumbers = get_control_value("phoneNumberBlocking_blockAllForeignNumbers"); | |
var blockSpecialNumbers = get_control_value("phoneNumberBlocking_blockAllSpecialNumbers"); | |
if (sPhoneNumber == "" && (blockForeignNumbers || blockSpecialNumbers)) { | |
return true; | |
} | |
if (isEmergencyNumber(sPhoneNumber)) | |
return false; | |
if (isSpecialCallNumbers(sPhoneNumber)) | |
return true; | |
return validateBlockPhoneNumber(sPhoneNumber); | |
} | |
function validateBlockPhoneNumber(sPhoneNumber) { | |
return true; | |
} | |
function handle_update_response(oStatus, oContext) { | |
if (!oStatus.errors.length) { | |
FinalizeDataUpdate(rsrc_mngr, page_main_controls); | |
var outgoingNumbersList = get_control_by_id("voice.number_blocking.outgoing.numbers"); | |
for (var i = 0; i < outgoingNumbersList.items.length; i++) { | |
if (outgoingNumbersList.items[i].listItemStatus == "add") { | |
outgoingNumbersList.items[i].listItemStatus = "update"; | |
} | |
if (outgoingNumbersList.items[i].listItemStatus == "delete") { | |
outgoingNumbersList.items[i].listItemStatus = "none"; | |
} | |
} | |
var incomingNumbersList = get_control_by_id("voice.number_blocking.incoming.numbers"); | |
for (i = 0; i < incomingNumbersList.items.length; i++) { | |
if (incomingNumbersList.items[i].listItemStatus == "add") { | |
incomingNumbersList.items[i].listItemStatus = "update"; | |
} | |
if (incomingNumbersList.items[i].listItemStatus == "delete") { | |
incomingNumbersList.items[i].listItemStatus = "none"; | |
} | |
} | |
} | |
} | |
page_texts = [ ["phoneNumberBlocking_title", "PAGE_NUMBER_BLOCKING_TITLE"], ["phoneNumberBlocking_infoText", "PAGE_NUMBER_BLOCKING_SUBTITLE"], ["outgoingTitle", "PAGE_NUMBER_BLOCKING_OUTGOING_CALLS"], ["incomingTitle", "PAGE_NUMBER_BLOCKING_INCOMING_CALLS"], ["phoneNumberBlocking_blockRangesOutgoing", "PAGE_NUMBER_BLOCKING_YOU_CAN_ALSO"], ["phoneNumberBlocking_blockRangesIncoming", "PAGE_NUMBER_BLOCKING_YOU_CAN_ALSO"]]; | |
page_main_controls_original = [{ | |
id: "phoneNumberBlocking_outgoingSwitch", | |
type: "switch", | |
labels: [ ["phoneNumberBlocking_outgoingSwitch_Label", "PAGE_NUMBER_BLOCKING_OUTGOING_NUMBER_BLOCKING"]], | |
value: false, | |
rsrc: null, | |
rsrc_ids: ["voice.number_blocking.outgoing.enabled"], | |
default_rsrc_ids: ["voice.number_blocking.outgoing.enabled"], | |
rsrc_to_value: plain_copy_rsrc_to_value, | |
value_to_rsrc: plain_copy_value_to_rsrc, | |
on_change_dependency: function(byUser) { | |
SetModuleVisibility(this, "outgoingSettings", byUser, null); | |
} | |
}, | |
{ | |
id: "voice.number_blocking.outgoing.numbers", | |
type: "list", | |
labels: [ ["phoneNumberBlocking_forbiddenOutgoingNumbers", "PAGE_NUMBER_BLOCKING_DO_NOT_ALLOW"]], | |
value: null, | |
rsrc: null, | |
rsrc_ids: ["voice.number_blocking.outgoing.numbers"], | |
default_rsrc_ids: ["voice.number_blocking.outgoing.numbers"], | |
rsrc_to_value: rsrc_forbidden_numbers_string_to_value_array, | |
value_to_rsrc: numbers_list_value_to_resource, | |
reset_if: [ ["phoneNumberBlocking_outgoingSwitch", false]], | |
items: [], | |
min_length: "1", | |
max_length: PhoneNumberBlockingOutgoingMaxLength, | |
itemHtmlTemplate: "", | |
itemControlTemplate: { | |
id: "voice.number_blocking.outgoing.numbers.INDEX_IN_ITEMS_ARRAY", | |
type: "listItem", | |
labels: [], | |
value: null, | |
rsrc: null, | |
rsrc_ids: [], | |
rsrc_to_value: null, | |
value_to_rsrc: null, | |
parentListControl: null, | |
listItemStatus: "", | |
set_controls_values: parse_numbers_string_into_array, | |
get_controls_values: null, | |
controls: [], | |
controlsTemplate: [ | |
{ | |
id: "voice.number_blocking.outgoing.numbers.INDEX_IN_ITEMS_ARRAY.number", | |
type: "text", | |
labels: [ ["wifiTimerFromLabel_INDEX_IN_ITEMS_ARRAY_From", "PAGE_SCHEDULE_FROM"]], | |
value: "", | |
rsrc: null, | |
rsrc_ids: [], | |
rsrc_to_value: null, | |
value_to_rsrc: null, | |
parentListItemControl: null, | |
validation: validateBlockOutgoingNumbers, | |
placeholder: BlockedPhoneNumbersRangeExample | |
} | |
] | |
} | |
}, | |
{ | |
id: "phoneNumberBlocking_blockAllForeignNumbers", | |
type: "switch", | |
labels: [ ["phoneNumberBlocking_blockAllForeignNumbers_Label", "PAGE_NUMBER_BLOCKING_BLOCK_CONNECTIONS_FOREIGN"]], | |
value: false, | |
rsrc: null, | |
rsrc_ids: ["voice.number_blocking.outgoing.numbers"], | |
rsrc_to_value: blockAllForeignNumbers_rsrc_to_value, | |
value_to_rsrc: null | |
}, | |
{ | |
id: "phoneNumberBlocking_blockAllSpecialNumbers", | |
type: "switch", | |
labels: [ ["phoneNumberBlocking_blockAllSpecialNumbers_Label", "PAGE_NUMBER_BLOCKING_BLOCK_CONNECTIONS_ALL"]], | |
value: false, | |
rsrc: null, | |
rsrc_ids: ["voice.number_blocking.outgoing.numbers"], | |
rsrc_to_value: blockAllSpecialNumbers_rsrc_to_value, | |
value_to_rsrc: null | |
}, | |
{ | |
id: "phoneNumberBlocking_incomingSwitch", | |
type: "switch", | |
labels: [ ["phoneNumberBlocking_incomingSwitch_Label", "PAGE_NUMBER_BLOCKING_INCOMING_NUMBER"]], | |
value: false, | |
rsrc: null, | |
rsrc_ids: ["voice.number_blocking.incoming.enabled"], | |
default_rsrc_ids: ["voice.number_blocking.incoming.enabled"], | |
rsrc_to_value: plain_copy_rsrc_to_value, | |
value_to_rsrc: plain_copy_value_to_rsrc, | |
on_change_dependency: function(byUser) { | |
SetModuleVisibility(this, "incomingSettings", byUser, null); | |
} | |
}, | |
{ | |
id: "voice.number_blocking.incoming.numbers", | |
type: "list", | |
labels: [ ["phoneNumberBlocking_forbiddenIncomingNumbers", "PAGE_NUMBER_BLOCKING_DO_NOT_ALLOW_2"]], | |
value: null, | |
rsrc: null, | |
rsrc_ids: ["voice.number_blocking.incoming.numbers"], | |
default_rsrc_ids: ["voice.number_blocking.incoming.numbers"], | |
rsrc_to_value: rsrc_forbidden_numbers_string_to_value_array, | |
value_to_rsrc: numbers_list_value_to_resource, | |
reset_if: [ ["phoneNumberBlocking_incomingSwitch", false]], | |
items: [], | |
min_length: "1", | |
max_length: PhoneNumberBlockingIncomingMaxLength, | |
itemHtmlTemplate: "", | |
itemControlTemplate: { | |
id: "voice.number_blocking.incoming.numbers.INDEX_IN_ITEMS_ARRAY", | |
type: "listItem", | |
labels: [], | |
value: null, | |
rsrc: null, | |
rsrc_ids: [], | |
rsrc_to_value: null, | |
value_to_rsrc: null, | |
parentListControl: null, | |
listItemStatus: "", | |
set_controls_values: parse_numbers_string_into_array, | |
get_controls_values: null, | |
controls: [], | |
controlsTemplate: [ | |
{ | |
id: "voice.number_blocking.incoming.numbers.INDEX_IN_ITEMS_ARRAY.number", | |
type: "text", | |
labels: [ ["wifiTimerFromLabel_INDEX_IN_ITEMS_ARRAY_From", "PAGE_SCHEDULE_FROM"]], | |
value: "", | |
rsrc: null, | |
rsrc_ids: [], | |
rsrc_to_value: null, | |
value_to_rsrc: null, | |
parentListItemControl: null, | |
validation: validateBlockIncomingNumbers, | |
placeholder: BlockedPhoneNumbersRangeExample | |
} | |
] | |
} | |
}]; | |
})(page_switch_counter); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
function cwmp_gpn(path) { | |
var my_soap_obj=new SOAPObject("ParameterPath").val(path); | |
var my_next_level=new SOAPObject("NextLevel").val("1"); | |
invoke_rpc("cwmp:GetParameterNames", new Array(my_soap_obj,my_next_level), function(xml){console.log(new XMLSerializer().serializeToString(xml))}); | |
} | |
function cwmp_gpv(target) { | |
var my_soap_obj=new SOAPObject("ParameterNames").val("<string>"+target+"</string>"); | |
var my_next_level=new SOAPObject("NextLevel").val("1"); | |
invoke_rpc("cwmp:GetParameterValues", new Array(my_soap_obj,my_next_level), function(xml){console.log(new XMLSerializer().serializeToString(xml))}); | |
} | |
function cwmp_spv(target, value) { | |
send_value(target, value, function(x){console.log(new XMLSerializer().serializeToString(x))}); | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
console.log("CARICATA MOD ALLE UTILITY"); | |
var DefaultTextboxMaxLength = 128; | |
var HostNameMaxLength = 64; | |
var SSIDNameMaxLength = 32; | |
var PasswordMaxLength = 32; | |
var WiFiScheduleRuleName = 32; | |
var PSKMaxLength = 63; | |
var HexKeyMaxLength = 32; | |
var WPS_PIN_MaxLength = 128; | |
var MAC_Filter_MaxLength = 32; | |
var DomainNameMaxLength = 128; | |
var DhcpStaticListMaxLength = (FC.layout == wbm_layout.VOX_2_5_DE_VDSL) ? 10 : null; | |
var PopUpDefaultWidth = 620; | |
var ConfigurationCommentMaxLength = 250; | |
var UmtsApnMaxLength = 255; | |
var PortLength = 5; | |
var ServiceNameMaxLength = 80 - 1; | |
var IpPartMaxLength = 3; | |
var UmtsDefaultIdelTime = 5; | |
var PhoneExtensionsNameMaxLength = 10; | |
var LtePinMaxLength = 4; | |
var LteSuperPinMaxLength = 8; | |
var UmtsPinMaxLength = 4; | |
var UmtsSuperPinMaxLength = 8; | |
var UmtsLocalAreaMaxLength = 4; | |
var UmtsNumberMinLength = 5; | |
var ContactNameMaxLength = 128; | |
var GreetingMessagesMaxLength = 3; | |
var GreetingMessageAnswerCallAfterMaxLength = 2; | |
var WhakeupCallNameMaxLength = 79; | |
var PhoneNumberBlockingOutgoingMaxLength = 9000; | |
var PhoneNumberBlockingIncomingMaxLength = 9000; | |
var PrinterNameMaxLength = 64; | |
var SharingUsernameMaxLength = 64; | |
var SharingPasswordMaxLength = 64; | |
var VpnUsernameMaxLength = 32; | |
var VpnPasswordMaxLength = 32; | |
var VpnSharedSecretMaxLength = 32; | |
var XdslMicLength = 20; | |
var LoginURL = "main.cgi?page=login.html"; | |
var LteAwURL = "main.cgi?page=lte_aw.html"; | |
var xDslAwURL = "main.cgi?page=xdsl_aw.html"; | |
var UmtsAwURL = "main.cgi?page=umts_aw.html"; | |
var sUmtsAwUrl = "umts_aw"; | |
var IsServerAliveTimeOutMilliseconds = 2000; | |
var TimoutBeforeDisplayRebootPopup = 15000; | |
var StartIsServerAliveTimeOutMilliseconds = 20000; | |
var SharedDevicesRefreshInterval = 5000; | |
var EMailAddressExample = "you@example.com"; | |
var SmtpServerExample = "smtp.example.com"; | |
var UsernameExample = "you@example.com"; | |
var BlockedPhoneNumbersRangeExample = "0160#"; | |
var OverviewPageRefreshInterval = 10000; | |
var NATMappingTableRefreshInterval = 3000; | |
var StatusLTEandUMTSRefreshInterval = 3000; | |
var StatusVoiceRefreshInterval = OverviewPageRefreshInterval; | |
var StatusDslStatusRefreshInterval = 3000; | |
var CertificatesPageRefreshInterval = 4000; | |
var DiagnosticRefreshInterval = 2000; | |
var StatusGeneralRefreshInterval = 5000; | |
var WAN_IP_RefreshInterval = 15000; | |
var UmtsStickActivationContinueNavigationAfterFinishTimeout = 5000; | |
var EnterKeyBindingDelay = 1000; | |
var StatusVodafoneTVRefreshInterval = 3000; | |
var CallForwardingRefreshInterval = 3000; | |
var WiFiGeneralRefreshInterval = 3000; | |
var KeepAliveTimeout = 15000; | |
var KeepAliveRetryTimeout = 5000; | |
var HiddenDataPlaceholder = "**********"; | |
var DictionaryServerErrorMessageCodePrefix = "ERR_FROM_ROUTER_"; | |
var ProductNamePlaceholder = "VF_PRODUCT_NAME"; | |
var IgnoreCriticalErrors = false; | |
var CriticalErrorOccured = false; | |
var is_debug_mode = false; | |
var page_switch_counter = 1; | |
var popup_switch_counter = 1; | |
var activation_page_switch_counter = 1; | |
var main_content_area_id = "pageContentInner"; | |
var oWarnMsgsContainer = {}; | |
var AcsAwUrl = ""; | |
(function() { | |
switch (FC.layout) { | |
case wbm_layout.VOX_2_0_DE_LTE: | |
AcsAwUrl = "lte_aw"; | |
break; | |
case wbm_layout.VOX_2_0_DE_VDSL: | |
case wbm_layout.VOX_2_5_DE_VDSL: | |
AcsAwUrl = "xdsl_aw"; | |
break; | |
case wbm_layout.VOX_1_5_NZ: | |
case wbm_layout.VOX_2_5_IT_1_5HW: | |
break; | |
case wbm_layout.VOX_2_5_IT: | |
AcsAwUrl = "setup_wizard"; | |
break; | |
default: | |
break; | |
} | |
})(); | |
var global_buttons = [ ["btn_popUpButton_CriticalError_Ok", ClosePopUpCriticalError, "PAGE_WPS_POPUP_BUTTON_TIMEOUT_OK"], ["btn_popUpButton_Message_Ok", ClosePopUpCriticalError, "PAGE_WPS_POPUP_BUTTON_TIMEOUT_OK"]]; | |
var oCommitter; | |
$(window).load(function() { | |
AddButtonPressedStateEvent(); | |
init_buttons(global_buttons); | |
DisableFocusOnBlockedElements(); | |
}); | |
var currentLanguage = readCookie("current_language"); | |
if (currentLanguage != null) { | |
curr_lang = currentLanguage; | |
createCookie("current_language", currentLanguage); | |
} | |
else if (FC.product_conf.languages.length) { | |
curr_lang = FC.product_conf.languages[0]; | |
} | |
$("html").addClass("lang_" + curr_lang); | |
if (!('indexOf' in Array.prototype)) { | |
Array.prototype.indexOf = function(find, i) { | |
if (i === undefined) | |
i = 0; | |
if (i < 0) | |
i += this.length; | |
if (i < 0) | |
i = 0; | |
for (var n = this.length; i < n; i++) { | |
if (i in this && this[i] === find) { | |
return i; | |
} | |
} | |
return - 1; | |
}; | |
} | |
function DisableFocusOnBlockedElements() { | |
$('body').on('focusin', '.blockedContent input, .blockedContent a, .blockedContent select, .blockedContent textarea', function(event) { | |
var elm = event.target; | |
elm.focus(); | |
elm.blur(); | |
$("html").focus(); | |
scroll_to_top(true); | |
}); | |
} | |
function isValidIpAddress(address) { | |
var i = 0; | |
if (/(0+\.){3}0+/.test(address) || address == '255.255.255.255') | |
return false; | |
var addrParts = address.split('.'); | |
if (addrParts.length != 4) | |
return false; | |
for (i = 0; i < 4; i++) { | |
if (isNaN(addrParts[i]) || addrParts[i] == "") | |
return false; | |
if (addrParts[i].length > 3 || addrParts[i].length < 1) | |
return false; | |
if (is_decimal_number(addrParts[i]) == false) | |
return false; | |
var num = parseInt(addrParts[i], 10); | |
if (i == 0 && num == 0) | |
return false; | |
if (num < 0 || num > 255) | |
return false; | |
} | |
return true; | |
} | |
function isValidMicCode(code) { | |
if (code.length != XdslMicLength) | |
return false; | |
if (!is_decimal_number(code)) | |
return false; | |
return true; | |
} | |
function is_mac(mac) { | |
var regex = /^([0-9a-fA-F]{2}[:-]){5}([0-9a-fA-F]{2})$/i; | |
return regex.test(mac); | |
} | |
function is_decimal_number(num) { | |
if (num == "") | |
return false; | |
for (var i = 0; i < num.length; i++) { | |
if (!is_char_numeric(num.charAt(i))) | |
return false; | |
} | |
return true; | |
} | |
function IsHex(sHexCode) { | |
return !(/[^0-9a-fA-F]/gi.test(sHexCode)); | |
} | |
function IsHexLettersOnly(sHexCode) { | |
return !(/[^a-fA-F]/gi.test(sHexCode)); | |
} | |
function numeric_validation(e) { | |
var key = e.charCode || e.keyCode || 0; | |
var vKey = 86; | |
return(is_key_F1toF12(key) || is_key_basic(key) || (is_key_numeric(key) && !e.shiftKey) || is_key_enter(key) || (e.ctrlKey && key == vKey)); | |
} | |
function mac_char_validation(e) { | |
var key = e.charCode || e.keyCode || 0; | |
var vKey = 86; | |
return((is_key_numeric(key) && !e.shiftKey) || IsHexLettersOnly(String.fromCharCode(key)) || is_key_basic(key) || is_key_enter(key) || (e.ctrlKey && key == vKey)); | |
} | |
function numeric_validation_with_negative(e) { | |
var key = e.charCode || e.keyCode || 0; | |
return(is_key_basic(key) || (is_key_numeric(key) && !e.shiftKey) || is_key_minus(key) || is_key_enter(key)); | |
} | |
function is_key_enter(key) { | |
return key == 13; | |
} | |
function is_key_space(key) { | |
return key == 32; | |
} | |
function is_char_numeric(c) { | |
return(c >= '0' && c <= '9'); | |
} | |
function is_unicode(val) { | |
return val.search(/[\u0080-\uffff]/) != -1; | |
} | |
function is_ascii(val) { | |
return(val.match(/[^\u0000-\u007f]/) ? false : true); | |
} | |
function is_key_basic(key) { | |
return key == 8 || key == 9 || key == 46 || (key >= 37 && key <= 40); | |
} | |
function is_key_control(key) { | |
return key < 48 && key != 32; | |
} | |
function is_key_numeric(key) { | |
return(key >= 48 && key <= 57) || (key >= 96 && key <= 105); | |
} | |
function is_key_minus(key) { | |
return(key == 109 || key == 189); | |
} | |
function is_key_F1toF12(key) { | |
return(key >= 112 && key <= 123); | |
} | |
function reject_sharp_to_be_start_symbol(e) { | |
return !(e.target.selectionStart == 0 && e.shiftKey && (e.charCode || e.keyCode) == 51); | |
} | |
function delete_sharps() { | |
if (/^#+/.test(this.value)) { | |
set_control_value(this.id, this.value.replace(/^#+/, ''), true); | |
} | |
} | |
function key2char(e) | |
{ | |
var key = e.charCode || e.keyCode || 0; | |
if (key >= 96 && key <= 105) | |
key = key + 48 - 96; | |
if (key >= 48 && key <= 90) | |
return String.fromCharCode(key); | |
var charmap = { | |
32: ' ', | |
109: '-', | |
110: '.', | |
189: '-', | |
190: '.', | |
107: '+' | |
}; | |
return charmap[key]; | |
} | |
function is_char_alpha(c) | |
{ | |
return((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z')); | |
} | |
function is_char_alphanumeric(c) | |
{ | |
return is_char_alpha(c) || is_char_numeric(c); | |
} | |
function is_expression_numeric(expr) { | |
var numericExpression = /^[0-9]+$/; | |
if (expr.toString().match(numericExpression)) { | |
return true; | |
} | |
else { | |
return false; | |
} | |
} | |
function is_expression_integer(expr) { | |
var numericExpression = /^-?\d+$/; | |
if (expr.toString().match(numericExpression)) { | |
return true; | |
} | |
else { | |
return false; | |
} | |
} | |
function is_expression_alpha_numeric(expr) { | |
var apphaNumericExpression = /^[0-9a-zA-Z]+$/; | |
if (expr.toString().match(apphaNumericExpression)) { | |
return true; | |
} | |
else { | |
return false; | |
} | |
} | |
function validate_ip(e, id, val) | |
{ | |
var key = e.charCode || e.keyCode || 0; | |
var dot_allow = true, digit_allow = true; | |
var dots = val.split("."); | |
if (val.length == 0 || val.lastIndexOf(".") == val.length - 1) | |
dot_allow = false; | |
if (dots.length == 4) | |
dot_allow = false; | |
if (dots.length && dots[dots.length - 1].length == 3) | |
digit_allow = false; | |
return is_key_basic(key) || (digit_allow && is_key_numeric(key)) || (dot_allow && key2char(e) == '.'); | |
} | |
function validate_mac(e, id, val) | |
{ | |
return true; | |
} | |
function validate_port(e, id, val) | |
{ | |
var key = e.charCode || e.keyCode || 0; | |
var ckey = String.fromCharCode(key); | |
if (!is_key_basic(key) && !is_key_numeric(key)) | |
return false; | |
var newval = val + ckey; | |
if (newval > 65535) | |
return false; | |
return true; | |
} | |
function validate_port_nz(e, id, val) | |
{ | |
var key = e.charCode || e.keyCode || 0; | |
var ckey = String.fromCharCode(key); | |
if (!validate_port(e, id, val)) | |
return false; | |
if (val.length == 0 && (ckey === '0' || ckey === '`')) | |
return false; | |
return true; | |
} | |
function pin_code_validate(e) | |
{ | |
return numeric_validation(e); | |
} | |
function username_validate(name) | |
{ | |
var str = "_.-"; | |
if (!name.length) | |
return null; | |
if (!is_char_alphanumeric(name.charAt(0))) | |
return _('USERNAME_INVALID_FIRST_CHAR'); | |
for (var i = 1; i < name.length; i++) | |
{ | |
if (!is_char_alphanumeric(name.charAt(i)) && str.indexOf(name.charAt(i)) < 0) | |
{ | |
return _('USERNAME_INVALID_CHAR', name.charAt(i)); | |
} | |
} | |
return null; | |
} | |
function IsValidTimeRange(sTimeFrom, sTimeTo) { | |
return sTimeFrom < sTimeTo; | |
} | |
function IsValidTime(sTime) { | |
if (sTime.indexOf(":") < 0) { | |
return false; | |
} | |
else { | |
var hours = sTime.split(':')[0]; | |
var minutes = sTime.split(':')[1]; | |
if (hours == "" || isNaN(hours) || (hours = parseInt(hours, 10)) > 24 || hours < 0) { | |
return false; | |
} | |
else { | |
hours = (hours < 10 ? "0" : "") + hours; | |
} | |
if (minutes == "" || isNaN(minutes) || (minutes = parseInt(minutes, 10)) > 59 || minutes < 0) { | |
return false; | |
} | |
else { | |
minutes = (minutes < 10 ? "0" : "") + minutes; | |
} | |
if (parseInt(hours, 10) == 24 && parseInt(minutes, 10) >= 0) | |
return false; | |
return hours + ":" + minutes; | |
} | |
return false; | |
} | |
function is_valid_subnet_mask(mask) | |
{ | |
var i = 0, num = 0; | |
var zero_bit_pos = 0, one_bit_pos = 0; | |
var zero_bit_existed = false; | |
if (mask == '0.0.0.0' || mask == '255.255.255.255') | |
return false; | |
var mask_parts = mask.split('.'); | |
if (mask_parts.length != 4) | |
return false; | |
for (i = 0; i < 4; i++) | |
{ | |
if (isNaN(mask_parts[i]) == true) | |
return false; | |
if (is_decimal_number(mask_parts[i]) == false) | |
return false; | |
num = parseInt(mask_parts[i], 10); | |
if (num < 0 || num > 255) | |
return false; | |
if (zero_bit_existed == true && num != 0) | |
return false; | |
zero_bit_pos = get_left_most_zero_bit_pos(num); | |
one_bit_pos = get_right_most_one_bit_pos(num); | |
if (zero_bit_pos < one_bit_pos) | |
return false; | |
if (zero_bit_pos < 8) | |
zero_bit_existed = true; | |
} | |
return true; | |
} | |
function get_left_most_zero_bit_pos(num) | |
{ | |
var i = 0; | |
var num_arr = [128, 64, 32, 16, 8, 4, 2, 1]; | |
var tmp; | |
for (i = 0; i < num_arr.length; i++) | |
{ | |
tmp = num & num_arr[i]; | |
if (tmp == 0) | |
return i; | |
} | |
return num_arr.length; | |
} | |
function get_right_most_one_bit_pos(num) | |
{ | |
var i = 0; | |
var num_arr = [1, 2, 4, 8, 16, 32, 64, 128]; | |
var tmp; | |
for (i = 0; i < num_arr.length; i++) | |
{ | |
tmp = (num & num_arr[i]) >> i; | |
if (tmp == 1) | |
return(num_arr.length - i - 1); | |
} | |
return - 1; | |
} | |
function ip_canonize(ip) | |
{ | |
var arr = ip.split('.'); | |
for (var i = 0; i < arr.length; i++) | |
arr[i] = leading_zeros(arr[i], 3); | |
return arr.join('.'); | |
} | |
function leading_zeros(num, zeros) | |
{ | |
var i; | |
var padding = zeros - num.toString().length; | |
for (i = 0; i < padding; i++) | |
num = "0" + num; | |
return num; | |
} | |
function is_valid_filename(filename) { | |
var regexp = new RegExp("^[^ \\\/:*?\"<>|]+([ ]+[^ \\\/:*?\"<>|]+)*$"); | |
var isValidFileName = regexp.test(filename); | |
return isValidFileName; | |
} | |
function safe_dot(element_name) { | |
return element_name.replace(/\./g, '\\.'); | |
} | |
function _(id) { | |
var i, text; | |
if (typeof _DICTIONARY[id] === "undefined") | |
{ | |
; | |
return id; | |
} | |
text = _DICTIONARY[id][curr_lang] ? _DICTIONARY[id][curr_lang] : (_DICTIONARY[id]['DEF'] ? _DICTIONARY[id]['DEF'] : id); | |
text = text.replaceAll(ProductNamePlaceholder, FC.product_name); | |
for (i = 1; i < arguments.length; i++) | |
text = text.replace(/%s/, arguments[i]); | |
return text; | |
} | |
$.fn.disableSelection = function() { | |
return this.each(function() { | |
$(this).attr('unselectable', 'on').css({ | |
'-moz-user-select': 'none', | |
'-webkit-user-select': 'none', | |
'user-select': 'none', | |
'-ms-user-select': 'none' | |
}).each(function() { | |
this.onselectstart = function() { | |
return false; | |
}; | |
}); | |
}); | |
}; | |
String.prototype.replaceAll = function(sFrom, sTo) { | |
return this.replace(new RegExp(sFrom, "gi"), sTo); | |
}; | |
String.prototype.nthIndexOf = function(s, n) { | |
var i = -1; | |
while (n-- > 0 && -1 != (i = this.indexOf(s, i + 1))) | |
; | |
return i; | |
}; | |
function trim(stringToTrim) | |
{ | |
return stringToTrim.replace(/^\s+|\s+$/g, ""); | |
} | |
function normalize_name(name) | |
{ | |
return trim(name).replace(/ +/g, ' '); | |
} | |
function json_copy(src) | |
{ | |
return jQuery.extend(true, {}, src); | |
} | |
function scroll_to_top(instant) { | |
if (instant) | |
window.scrollTo(0, 0); | |
else | |
$("html,body").animate({ | |
scrollTop: 0 | |
}, | |
"fast"); | |
} | |
function scroll_to_bottom(instant) { | |
var vieportHeight = $(window).height(); | |
var contentHeight = $("#pageWrapper").height(); | |
if (instant) { | |
window.scrollTo(0, contentHeight - vieportHeight); | |
} | |
else { | |
$("html,body").animate({ | |
scrollTop: contentHeight - vieportHeight | |
}, | |
"fast"); | |
} | |
} | |
function ctrlRoot(ctrlId) { | |
return ctrlId.split('.').shift(); | |
} | |
function ctrlTail(ctrlId) { | |
return ctrlId.split('.').pop(); | |
} | |
function giveMeRandomNumbers() { | |
var randomNumber = ' '; | |
for (var i = 0; i < 8; i++) { | |
randomNumber = randomNumber + Math.floor(Math.random() * 11); | |
} | |
return randomNumber; | |
} | |
function CalcIpNetwork(sIpAddress, sSubnetMask) { | |
var parts = sIpAddress.split('.'); | |
parts[parts.length - 1] = "0"; | |
sIpAddress = parts.join('.'); | |
var mask = ConvertSubnetMask(sSubnetMask); | |
var result = sIpAddress + "/" + mask; | |
return result; | |
} | |
function ConvertSubnetMask(subnetMask) { | |
var parts = subnetMask.split('.'); | |
var part1 = parts[0]; | |
var part2 = parts[1]; | |
var part3 = parts[2]; | |
var part4 = parts[3]; | |
var sumofbits = 0; | |
var tmpvar = parseInt(part1, 10); | |
if (isNaN(tmpvar)) { | |
return "N/A"; | |
} | |
var bitsfromleft = h_countbitsfromleft(tmpvar); | |
if (isNaN(bitsfromleft)) { | |
return "N/A"; | |
} | |
sumofbits += bitsfromleft; | |
tmpvar = parseInt(part2, 10); | |
if (isNaN(tmpvar)) { | |
return "N/A"; | |
} | |
bitsfromleft = h_countbitsfromleft(tmpvar); | |
if (isNaN(bitsfromleft)) { | |
return "N/A"; | |
} | |
sumofbits += bitsfromleft; | |
tmpvar = parseInt(part3, 10); | |
if (isNaN(tmpvar)) { | |
return "N/A"; | |
} | |
bitsfromleft = h_countbitsfromleft(tmpvar); | |
if (isNaN(bitsfromleft)) { | |
return "N/A"; | |
} | |
sumofbits += bitsfromleft; | |
tmpvar = parseInt(part4, 10); | |
if (isNaN(tmpvar)) { | |
return "N/A"; | |
} | |
bitsfromleft = h_countbitsfromleft(tmpvar); | |
if (isNaN(bitsfromleft)) { | |
return "N/A"; | |
} | |
sumofbits += bitsfromleft; | |
return sumofbits; | |
} | |
function h_countbitsfromleft(num) { | |
if (num == 255) { | |
return(8); | |
} | |
var i = 0; | |
var bitpat = 0xff00; | |
while (i < 8) { | |
if (num == (bitpat & 0xff)) { | |
return(i); | |
} | |
bitpat = bitpat >> 1; | |
i++; | |
} | |
return(Number.NaN); | |
} | |
function format_time(iSeconds) | |
{ | |
function FormatMinutes(iMinutes) { | |
if (iMinutes > 1) { | |
return _("GATEWAY_MINUTES").replaceAll("%s", iMinutes); | |
} | |
else { | |
if (iMinutes == 1) { | |
return _("GATEWAY_MINUTE").replaceAll("%s", iMinutes); | |
} | |
else { | |
return ""; | |
} | |
} | |
} | |
function FormatHours(iHours) { | |
if (iHours > 1) { | |
return _("GATEWAY_HOURS").replaceAll("%s", iHours); | |
} | |
else { | |
if (iHours == 1) { | |
return _("GATEWAY_HOUR").replaceAll("%s", iHours); | |
} | |
else { | |
return ""; | |
} | |
} | |
} | |
function FormatDays(iDays) { | |
if (iDays > 1) { | |
return _("GATEWAY_DAYS").replaceAll("%s", iDays); | |
} | |
else { | |
if (iDays == 1) { | |
return _("GATEWAY_DAY").replaceAll("%s", iDays); | |
} | |
else { | |
return ""; | |
} | |
} | |
} | |
var sDurationTime = ""; | |
var iMinutes, iHours, iDays; | |
var aTimeUnits = []; | |
if (iSeconds === undefined) | |
return ""; | |
if ((iSeconds % 60) > 0) | |
iSeconds = iSeconds - (iSeconds % 60) + 60; | |
iMinutes = iSeconds / 60; | |
if (iMinutes < 60) { | |
sDurationTime = FormatMinutes(iMinutes); | |
} | |
else { | |
iHours = (iMinutes - (iMinutes % 60)) / 60; | |
iMinutes = iMinutes % 60; | |
if (iHours < 24) { | |
sDurationTime = FormatHours(iHours) + ((FormatMinutes(iMinutes) != "") ? (" " + _('GATEWAY_AND') + " " + FormatMinutes(iMinutes) + " ") : ""); | |
} | |
else { | |
iDays = (iHours - (iHours % 24)) / 24; | |
iHours = (iHours % 24); | |
if (FormatDays(iDays) != "") | |
aTimeUnits.push(FormatDays(iDays)); | |
if (FormatHours(iHours) != "") | |
aTimeUnits.push(FormatHours(iHours)); | |
if (FormatMinutes(iMinutes) != "") | |
aTimeUnits.push(FormatMinutes(iMinutes)); | |
switch (aTimeUnits.length) { | |
case 0: | |
sDurationTime = ""; | |
break; | |
case 1: | |
sDurationTime = aTimeUnits[0]; | |
break; | |
case 2: | |
sDurationTime = aTimeUnits[0] + " " + _('GATEWAY_AND') + " " + aTimeUnits[1]; | |
break; | |
case 3: | |
sDurationTime = aTimeUnits[0] + ", " + aTimeUnits[1] + " " + _('GATEWAY_AND') + " " + aTimeUnits[2]; | |
break; | |
default: | |
break; | |
} | |
} | |
} | |
return sDurationTime; | |
} | |
var BlockUIdefaultOptions = { | |
message: null, | |
overlayCSS: { | |
backgroundColor: "#ffffff", | |
opacity: 0.01, | |
cursor: "default" | |
}, | |
showOverlay: true, | |
baseZ: 999, | |
fadeIn: 0, | |
fadeOut: 0 | |
}; | |
var BlockUIloadingInProgress = { | |
message: null, | |
overlayCSS: { | |
backgroundColor: "#ffffff", | |
opacity: 0.01, | |
cursor: "wait" | |
}, | |
showOverlay: true, | |
baseZ: 998, | |
fadeIn: 0, | |
fadeOut: 0 | |
}; | |
var BlockUITRansactionInProgress = { | |
message: null, | |
overlayCSS: { | |
backgroundColor: "#ffffff", | |
opacity: 0.01, | |
cursor: "wait" | |
}, | |
showOverlay: true, | |
baseZ: 1020, | |
fadeIn: 0, | |
fadeOut: 0 | |
}; | |
var BlockUIChromeFix = { | |
message: null, | |
overlayCSS: { | |
backgroundColor: "#ffffff", | |
opacity: 0.01, | |
cursor: "default" | |
}, | |
showOverlay: true, | |
baseZ: 1020, | |
fadeIn: 0, | |
fadeOut: 0 | |
}; | |
function BlockUI(sElementsSelector, oOptions) { | |
if (!oOptions) { | |
oOptions = BlockUIdefaultOptions; | |
} | |
if (!sElementsSelector) { | |
$.blockUI(oOptions); | |
$("body").addClass("blockedContent"); | |
} | |
else { | |
$(sElementsSelector).block(oOptions).addClass("blockedContent"); | |
} | |
} | |
function UnblockUI(sElementsSelector) { | |
if (!sElementsSelector) { | |
sElementsSelector = null; | |
} | |
BlockUI(sElementsSelector, BlockUIChromeFix); | |
if (!sElementsSelector) { | |
$.unblockUI(); | |
$("body").removeClass("blockedContent"); | |
} | |
else { | |
$(sElementsSelector).unblock().removeClass("blockedContent"); | |
} | |
} | |
function BlockApplicationUIonTransactionStart() { | |
BlockUI(null, BlockUITRansactionInProgress); | |
} | |
function UnblockApplicationUIonTransactionEnd() { | |
UnblockUI(null); | |
} | |
function esc(data) { | |
if (typeof(data) == "string") { | |
data = data.replace(/&/g, "&").replace(/"/g, """).replace(/'/g, "'").replace(/</g, "<").replace(/>/g, ">").replace(/\//g, "/"); | |
} | |
return data; | |
} | |
function esc2(data) { | |
if (typeof(data) == "string") { | |
data = data.replace(/"/g, """).replace(/'/g, "'").replace(/</g, "<").replace(/>/g, ">").replace(/\//g, "/"); | |
} | |
return data; | |
} | |
function esc3(data) { | |
if (typeof(data) == "string") { | |
data = data.replace(/&/g, "&").replace(/"/g, """).replace(/'/g, "'"); | |
} | |
return data; | |
} | |
function unesc(data) { | |
if (typeof(data) == "string") { | |
data = data.replace(/&/g, "&").replace(/"/g, '"').replace(/'/g, "'").replace(/</g, "<").replace(/>/g, ">").replace(///g, "/"); | |
} | |
return data; | |
} | |
function OpenPopUp(sHTMLContent, iWidth) { | |
if (IsPopUpOpenedCriticalError() || IsMessagePopUpOpened()) | |
return; | |
popup_switch_counter++; | |
BlockUI("#pageWrapper"); | |
var popUpWidth = (iWidth !== undefined && typeof iWidth !== "undefined") ? iWidth : PopUpDefaultWidth; | |
$("#popUpContent").html(sHTMLContent); | |
$("#popUpContent").css("width", popUpWidth + "px"); | |
$("#popUpWrapper").show(); | |
if ($("#popUpWrapper").length) { | |
$("#popUpContent").focus(); | |
} | |
var iHtmlScrollTopPosition = $("body").scrollTop() || $("html").scrollTop(); | |
if (iHtmlScrollTopPosition > 0) { | |
scroll_to_top(false); | |
} | |
CancelClosingPopupOnEscape(); | |
} | |
function ClosePopUp() { | |
popup_switch_counter++; | |
UnblockUI("#pageWrapper"); | |
$("#popUpWrapper").hide(); | |
$("#popUpContent").html(""); | |
CancelClosingPopupOnEscape(); | |
} | |
function IsPopUpOpened() { | |
return $("#popUpWrapper").is(":visible"); | |
} | |
function SwitchPopupView(sPopUpViewId, aPopUpButtons) { | |
var i = 0; | |
var oElement; | |
var EscapeKeyEventFunction = null; | |
var fEventFunction; | |
CancelClosingPopupOnEscape(); | |
$("#" + safe_dot(sPopUpViewId)).show(); | |
if ($("#" + safe_dot(sPopUpViewId) + " .keyEscape").length) { | |
fEventFunction = null; | |
oElement = $("#" + safe_dot(sPopUpViewId) + " .keyEscape"); | |
for (i = 0; i < aPopUpButtons.length; i++) { | |
if (aPopUpButtons[i][0] == oElement.attr('id')) { | |
EscapeKeyEventFunction = aPopUpButtons[i][1]; | |
oElement.bind("keydown.PopUpButtonsEvents", function(e) { | |
if (e.which == 13) { | |
EscapeKeyEventFunction(); | |
} | |
}); | |
break; | |
} | |
} | |
} | |
$(document).bind("keydown.PopupKeysEvents", function(e) { | |
if (!$("#" + safe_dot(sPopUpViewId) + " .keyEscape").hasClass('disabled')) { | |
switch (e.which) { | |
case 27: | |
if (EscapeKeyEventFunction) { | |
EscapeKeyEventFunction(); | |
} | |
break; | |
default: | |
break; | |
} | |
} | |
}); | |
} | |
function CancelClosingPopupOnEscape() { | |
$(document).unbind("keyup.cancelPopup"); | |
$(document).unbind("keydown.PopupKeysEvents"); | |
$(document).unbind("keydown.PopUpButtonsEvents"); | |
} | |
function CloseAllPopUpViews() { | |
CancelClosingPopupOnEscape(); | |
$(".popupView").hide(); | |
} | |
function OpenMessagePopUp(sMessageType, sMessage, fButtonEvent) { | |
if (IsPopUpOpened()) | |
ClosePopUp(); | |
popup_switch_counter++; | |
BlockUI("#pageWrapper"); | |
switch (sMessageType) { | |
case "error": | |
$("#popUpHeading_Message").html(_("GATEWAY_MESSAGE_POPUP_ERROR_TITLE")); | |
break; | |
case "warning": | |
$("#popUpHeading_Message").html(_("GATEWAY_MESSAGE_POPUP_WARNING_TITLE")); | |
break; | |
case "info": | |
default: | |
$("#popUpHeading_Message").html(_("GATEWAY_MESSAGE_POPUP_INFO_TITLE")); | |
break; | |
} | |
$("#popUpMessage_Message").html(sMessage); | |
$("#btn_popUpButton_Message_Ok").unbind("click").bind("click", function() { | |
if (typeof fButtonEvent == "function") { | |
fButtonEvent(); | |
} | |
else { | |
CloseMessagePopUp(); | |
} | |
return false; | |
}); | |
$(document).unbind("keyup.errorPopupClosing").bind("keyup.errorPopupClosing", function(e) { | |
if (e.which == 13) { | |
CloseMessagePopUp(); | |
} | |
}); | |
$("#popUpWrapper_Message").show(); | |
$("#btn_popUpButton_Message_Ok").focus(); | |
var iPopUpContentTop = $("#popUpContent_Message").offset().top; | |
var iHtmlScrollTopPosition = $("body").scrollTop() || $("html").scrollTop(); | |
if (iHtmlScrollTopPosition > iPopUpContentTop) { | |
scroll_to_top(false); | |
} | |
} | |
function CloseMessagePopUp() { | |
popup_switch_counter++; | |
$(document).unbind("keyup.errorPopupClosing"); | |
UnblockUI("#pageWrapper"); | |
$("#popUpWrapper_Message").hide(); | |
} | |
function IsMessagePopUpOpened() { | |
return $("#popUpWrapper_Message").is(":visible"); | |
} | |
function OpenPopUpCriticalError(sMessage, bReloadPage, fCallBack) { | |
if (IsPopUpOpened()) | |
ClosePopUp(); | |
if (IsMessagePopUpOpened()) | |
CloseMessagePopUp(); | |
popup_switch_counter++; | |
BlockUI("#pageWrapper"); | |
$("#popUpHeading_CriticalError").html(sMessage); | |
$("#btn_popUpButton_CriticalError_Ok").unbind("click").bind("click", function() { | |
ClosePopUpCriticalError(); | |
if (typeof fCallBack != "undefined") | |
fCallBack(); | |
if (bReloadPage) | |
window.location.reload(); | |
return false; | |
}); | |
$(document).unbind("keyup.errorPopupClosing").bind("keyup.errorPopupClosing", function(e) { | |
if (e.which == 13) { | |
ClosePopUpCriticalError(); | |
if (typeof fCallBack != "undefined") | |
fCallBack(); | |
if (bReloadPage) | |
window.location.reload(); | |
} | |
}); | |
$("#popUpWrapper_CriticalError").show(); | |
$("#btn_popUpButton_CriticalError_Ok").focus(); | |
var iPopUpContentTop = $("#popUpContent_CriticalError").offset().top; | |
var iHtmlScrollTopPosition = $("body").scrollTop() || $("html").scrollTop(); | |
if (iHtmlScrollTopPosition > iPopUpContentTop) { | |
scroll_to_top(false); | |
} | |
} | |
function ClosePopUpCriticalError() { | |
popup_switch_counter++; | |
$(document).unbind("keyup.errorPopupClosing"); | |
UnblockUI("#pageWrapper"); | |
$("#popUpWrapper_CriticalError").hide(); | |
} | |
function IsPopUpOpenedCriticalError() { | |
return $("#popUpWrapper_CriticalError").is(":visible"); | |
} | |
function CloseAllOpenedPopUps() { | |
if (IsPopUpOpened()) | |
ClosePopUp(); | |
if (IsPopUpOpenedCriticalError()) | |
ClosePopUpCriticalError(); | |
if (IsMessagePopUpOpened()) | |
CloseMessagePopUp(); | |
} | |
function CheckCriticalError(oStatus, bReloadPage, bSkipHandler) { | |
if (oStatus.result !== "success") { | |
CriticalErrorOccured = true; | |
if (!bSkipHandler && !IgnoreCriticalErrors) { | |
HandleCriticalError(oStatus, bReloadPage); | |
} | |
return true; | |
} | |
return false; | |
} | |
function HandleCriticalError(oStatus, bReloadPage) { | |
UnblockApplicationUIonTransactionEnd(); | |
if (IsPopUpOpenedCriticalError()) { | |
$("#btn_popUpButton_CriticalError_Ok").unbind("click").bind("click", function() { | |
window.location.reload(); | |
return false; | |
}); | |
$(document).unbind("keyup.errorPopupClosing").bind("keyup.errorPopupClosing", function(e) { | |
if (e.which == 13) { | |
window.location.reload(); | |
} | |
}); | |
} | |
else { | |
switch (oStatus.result) { | |
case "internal_error": | |
; | |
break; | |
case "timeout": | |
OpenPopUpCriticalError(_("GATEWAY_ERR_TIMEOUT"), bReloadPage); | |
break; | |
default: | |
if (oStatus.result == "error" && !checkCookiesEnabled()) { | |
link_to("cookies_disabled", "&org_url=" + encodeURIComponent(window.location.href)); | |
} | |
else if (oStatus.result == "error" && oStatus.error_code == "403") { | |
OpenPopUpCriticalError(_("PAGE_WARNING_MESSAGES_SESSION_EXPIRED_TITLE"), true); | |
} | |
else { | |
OpenPopUpCriticalError(_("GATEWAY_ERR_UNREACHABLE"), bReloadPage); | |
} | |
break; | |
} | |
} | |
} | |
function link_to(page_name, params) | |
{ | |
var _params = (params) ? params : ''; | |
window.location = 'main.cgi?page=' + page_name + '.html' + _params; | |
} | |
function LogOut() { | |
if (IsPageDataChanged()) { | |
ShowUnsavedChangesWarning(); | |
} | |
else { | |
gw_wbm_logout(LogOutHandler, {} | |
); | |
} | |
} | |
function LogOutHandler(oStatus, oContext) { | |
if (CheckCriticalError(oStatus, false)) { | |
return; | |
} | |
else { | |
link_to('login', ''); | |
} | |
} | |
function is_valid_url(url) | |
{ | |
var tmp = url; | |
tmp = tmp.replace("http://", ""); | |
if (isValidIpAddress(tmp)) | |
return true; | |
var regex = RegExp(/^(([\-\w]+\.)+\w{2,3}(\/[%\-\w]+(\.\w{2,})?)*(([\w\-\.\?\/+@&#;`~=%!]*)(\.\w{2,})?)*\/?)$/i); | |
return(regex.test(url)); | |
} | |
function IsServerAlive(fCB_success, oContext, timeout_ms, fCB_timeout) { | |
$.ajax({ | |
type: "GET", | |
url: "js/connection.test", | |
dataType: 'text', | |
timeout: timeout_ms ? timeout_ms : IsServerAliveTimeOutMilliseconds * 2, | |
data: { | |
timeStamp: (new Date().getTime()) | |
}, | |
success: function(data, textStatus) { | |
fCB_success(oContext); | |
}, | |
error: function(data, textStatus) { | |
if (fCB_timeout && textStatus === "timeout") | |
fCB_timeout(oContext); | |
setTimeout(function() { | |
IsServerAlive(fCB_success, oContext, timeout_ms, fCB_timeout); | |
}, | |
IsServerAliveTimeOutMilliseconds); | |
} | |
}); | |
} | |
function IsServerAliveDefaultHandler(oContext) { | |
if (oContext.popup_switch_counter_cb != popup_switch_counter) | |
return; | |
window.location.href = LoginURL; | |
} | |
function hostname_is_valid(val) { | |
var pattern = new RegExp(/^(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9])\.)*([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9\-]*[A-Za-z0-9])$/i); | |
return pattern.test(val); | |
} | |
function is_domain_name_valid(domain_name) { | |
var regex = new RegExp(/^(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9])\.)+([A-Za-z]|[A-Za-z][A-Za-z0-9\-]*[A-Za-z0-9])$/i); | |
return regex.test(domain_name); | |
} | |
function email_is_valid(val) { | |
var pattern = new RegExp(/^(?!(?:(?:\x22?\x5C[\x00-\x7E]\x22?)|(?:\x22?[^\x5C\x22]\x22?)){255,})(?!(?:(?:\x22?\x5C[\x00-\x7E]\x22?)|(?:\x22?[^\x5C\x22]\x22?)){65,}@)(?:(?:[\x21\x23-\x27\x2A\x2B\x2D\x2F-\x39\x3D\x3F\x5E-\x7E]+)|(?:\x22(?:[\x01-\x08\x0B\x0C\x0E-\x1F\x21\x23-\x5B\x5D-\x7F]|(?:\x5C[\x00-\x7F]))*\x22))(?:\.(?:(?:[\x21\x23-\x27\x2A\x2B\x2D\x2F-\x39\x3D\x3F\x5E-\x7E]+)|(?:\x22(?:[\x01-\x08\x0B\x0C\x0E-\x1F\x21\x23-\x5B\x5D-\x7F]|(?:\x5C[\x00-\x7F]))*\x22)))*@(?:(?:(?!.*[^.]{64,})(?:(?:(?:xn--)?[a-z0-9]+(?:-[a-z0-9]+)*\.){1,126}){1,}(?:(?:[a-z][a-z0-9]*)|(?:(?:xn--)[a-z0-9]+))(?:-[a-z0-9]+)*)|(?:\[(?:(?:IPv6:(?:(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){7})|(?:(?!(?:.*[a-f0-9][:\]]){7,})(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,5})?::(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,5})?)))|(?:(?:IPv6:(?:(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){5}:)|(?:(?!(?:.*[a-f0-9]:){5,})(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,3})?::(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,3}:)?)))?(?:(?:25[0-5])|(?:2[0-4][0-9])|(?:1[0-9]{2})|(?:[1-9]?[0-9]))(?:\.(?:(?:25[0-5])|(?:2[0-4][0-9])|(?:1[0-9]{2})|(?:[1-9]?[0-9]))){3}))\]))$/i); | |
return val && pattern.test(val); | |
} | |
function GetContactTypeByKey(contactTypeKey) { | |
var types = []; | |
types["number"] = _("CONTACT_TYPE_OTHER"); | |
types["private_fixed"] = _("CONTACT_TYPE_PRIVATE_LANDLINE"); | |
types["private_mobile"] = _("CONTACT_TYPE_PRIVATE_MOBILE"); | |
types["work_fixed"] = _("CONTACT_TYPE_WORK_LANDLINE"); | |
types["work_mobile"] = _("CONTACT_TYPE_WORK_MOBILE"); | |
return types[contactTypeKey]; | |
} | |
function createCookie(name, value) { | |
var expiration_date = new Date(); | |
expiration_date.setFullYear(expiration_date.getFullYear() + 1); | |
document.cookie = name + "=" + value + "; path=/; expires=" + expiration_date.toGMTString(); | |
} | |
function readCookie(name) { | |
var nameEQ = name + "="; | |
var ca = document.cookie.split(';'); | |
for (var i = 0; i < ca.length; i++) { | |
var c = ca[i]; | |
while (c.charAt(0) == ' ') | |
c = c.substring(1, c.length); | |
if (c.indexOf(nameEQ) == 0) | |
return c.substring(nameEQ.length, c.length); | |
} | |
return null; | |
} | |
function createSessionCookie(name, value) { | |
document.cookie = name + "=" + value + "; path=/;"; | |
} | |
function eraseCookie(name) { | |
document.cookie = name + "=" + "; path=/; expires=Thu, 01 Jan 1970 00:00:01 GMT"; | |
} | |
function checkCookiesEnabled() { | |
var testCookie = "__testing__"; | |
var isCookieEnabled = createCookie(testCookie, "cookies_enabled"); | |
isCookieEnabled = readCookie(testCookie); | |
eraseCookie(testCookie); | |
return isCookieEnabled; | |
} | |
var iKeepAliveCriticalErrorCounter = 0; | |
var iKeepAliveCriticalErrorTriesNumber = 3; | |
var KeepAliveTimeoutAllPages = 10000; | |
function SessionKeepAliveSend() { | |
gw_wbm_keep_alive(ProceedKeepAliveHandler, {} | |
); | |
} | |
function ProceedKeepAliveHandler(oStatus, oContext) { | |
var timeout = KeepAliveTimeout; | |
if ($("#app_page").length) { | |
if (oStatus.result == "error" && oStatus.error_code == "403") { | |
iKeepAliveCriticalErrorCounter++; | |
timeout = KeepAliveRetryTimeout; | |
if (iKeepAliveCriticalErrorCounter > iKeepAliveCriticalErrorTriesNumber) { | |
if (CheckCriticalError(oStatus, true)) { | |
return; | |
} | |
} | |
} | |
else { | |
iKeepAliveCriticalErrorCounter = 0; | |
} | |
window.setTimeout(function() { | |
gw_wbm_keep_alive(ProceedKeepAliveHandler, {} | |
); | |
}, | |
timeout); | |
} | |
else { | |
window.setTimeout(function() { | |
gw_wbm_keep_alive(ProceedKeepAliveHandler, {}, false); | |
}, | |
KeepAliveTimeoutAllPages); | |
} | |
} | |
var AvoidSessionExpirationTimeout = 2000; | |
function AvoidSessionExpiration() { | |
gw_wbm_get_session_userid(function() { | |
window.setTimeout(AvoidSessionExpiration, AvoidSessionExpirationTimeout); | |
}, | |
{}, false); | |
} | |
var AvoidSessionExpirationInLoginPageTimeout = 2000; | |
var bIsActivationInProgressPopupOpened = false; | |
function AvoidSessionExpirationInLoginPage() { | |
gw_wbm_get_session_userid(AvoidSessionExpirationInLoginPageHandler, {}, false); | |
} | |
function AvoidSessionExpirationInLoginPageHandler(oCbStatus, sUsername, oCbContext) { | |
if (typeof sUsername != "string") { | |
window.setTimeout(AvoidSessionExpirationInLoginPage, AvoidSessionExpirationInLoginPageTimeout); | |
} | |
else { | |
if (sUsername == "wan_user" || sUsername == "vodafone") { | |
link_to('app', ''); | |
} | |
else { | |
var BrowserURL = $.deparam.querystring(); | |
var sOrgUrlParam; | |
if (BrowserURL.org_url) { | |
sOrgUrlParam = "&org_url=" + encodeURIComponent(BrowserURL.org_url); | |
} | |
else { | |
sOrgUrlParam = ""; | |
} | |
if (!readCookie("sMeInitiator")) { | |
gw_wbm_login("", "", true, function(oStatus, oContext) { | |
if (!CheckCriticalError(oStatus, true)) { | |
link_to('activation_in_progress', sOrgUrlParam); | |
} | |
}, | |
{} | |
); | |
} | |
else if (sUsername == acs_activation_username) { | |
link_to(AcsAwUrl, sOrgUrlParam); | |
} | |
else { | |
link_to(sUmtsAwUrl, sOrgUrlParam); | |
} | |
} | |
} | |
} | |
var CheckIfFirmwareUpdateInProgressTimeout = 5000; | |
var bStopFirmwareUpdateDetecting = false; | |
function CheckIfFirmwareUpdateInProgress(sOrgUrl, fPreCb, oPreCbContext) { | |
var oContext = { | |
"sOrgUrl": sOrgUrl, | |
"fPreCb": fPreCb, | |
"oPreCbContext": oPreCbContext | |
}; | |
fw_upgrade_status(CheckIfFirmwareUpdateInProgressHandler, oContext, true); | |
} | |
function CheckIfFirmwareUpdateInProgressHandler(sCbFirmwareUpdateStatus, sCbFirmwareUpdateProgressPercentage, oCbStatus, oCbContext) { | |
if (!bStopFirmwareUpdateDetecting && (sCbFirmwareUpdateStatus == "InProgress" || sCbFirmwareUpdateStatus == "LteUpgradeInProgress")) { | |
var param = oCbContext.sOrgUrl ? '&org_url=' + oCbContext.sOrgUrl : ''; | |
if (oCbContext.fPreCb) { | |
oCbContext.fPreCb(oCbContext.oPreCbContext); | |
} | |
bStopActivationDetecting = true; | |
link_to('firmware_update_in_progress', param); | |
} | |
else if (!bStopFirmwareUpdateDetecting && sCbFirmwareUpdateProgressPercentage == '100' && sCbFirmwareUpdateStatus == "Succeeded") { | |
bStopActivationDetecting = true; | |
IgnoreCriticalErrors = true; | |
if (oCbContext.fPreCb) { | |
oCbContext.fPreCb(oCbContext.oPreCbContext); | |
} | |
CloseAllPopUpViews(); | |
renderCustomPopUpMessage(_("PAGE_FIRMWARE_UPDATE_FIRMWARE_SUCCESS_UPDATE_POPUP_TITLE"), _("PAGE_FIRMWARE_UPDATE_UPLOAD_FIRMWARE_FILE_UPGRADE_SUCCESSFULLY_POPUP_DESCRIPTION"), true); | |
setTimeout(function() { | |
IsServerAlive(IsServerAliveDefaultHandler, { | |
"popup_switch_counter_cb": popup_switch_counter | |
}); | |
}, | |
StartIsServerAliveTimeOutMilliseconds); | |
} | |
else if (!CriticalErrorOccured) { | |
window.setTimeout(function() { | |
CheckIfFirmwareUpdateInProgress(oCbContext.sOrgUrl, oCbContext.fPreCb, oCbContext.oPreCbContext); | |
}, | |
CheckIfFirmwareUpdateInProgressTimeout); | |
} | |
} | |
function renderCustomPopUpMessage(title, description, hasSpinner) { | |
var popUpWrapper = $("#popUpWrapper"); | |
if (!popUpWrapper.length) { | |
popUpWrapper = $('<div>', { | |
"id": "popUpWrapper", | |
"class": "popUpWrapper displayNone" | |
}).append($('<div>', { | |
"id": "popUpContent", | |
"class": "popUpContent clearfix" | |
}), $('<div>', { | |
"class": "popUpBackground" | |
})).appendTo('body'); | |
} | |
popUpWrapper.children("#popUpContent").append($('<div>', { | |
id: "rebootWarning" | |
}).append(hasSpinner && $('<img>', { | |
"src": 'img/icon-thinking.gif' | |
}), title && $('<p>', { | |
"class": "popUpTitle" | |
}).html(title), description && $('<p>').html(description))); | |
CloseAllOpenedPopUps(); | |
popUpWrapper.show(); | |
} | |
var CheckIfActivationInProgressTimeout = 5000; | |
var bStopActivationDetecting = false; | |
function CheckIfActivationInProgress(sOrgUrl, fPreCb, oPreCbContext) { | |
var oContext = { | |
"sOrgUrl": sOrgUrl, | |
"fPreCb": fPreCb, | |
"oPreCbContext": oPreCbContext | |
}; | |
activation_get_status(CheckIfActivationInProgressHandler, oContext); | |
} | |
function CheckIfActivationInProgressHandler(oActivationStatus, oCbStatus, oCbContext) { | |
if (!bStopFirmwareUpdateDetecting && !bStopActivationDetecting && (oActivationStatus.acs_mode == "InProgress" || oActivationStatus.umts_mode == "InProgress")) { | |
var param = oCbContext.sOrgUrl ? '&org_url=' + oCbContext.sOrgUrl : ''; | |
var sMeInitiator = readCookie("sMeInitiator"); | |
if (sMeInitiator) { | |
link_to(sMeInitiator == 'umts' ? sUmtsAwUrl : AcsAwUrl, param); | |
} | |
else { | |
if (oCbContext.fPreCb) { | |
oCbContext.fPreCb(oCbContext.oPreCbContext); | |
} | |
link_to('activation_in_progress', param); | |
} | |
} | |
else if (!CriticalErrorOccured) { | |
window.setTimeout(function() { | |
CheckIfActivationInProgress(oCbContext.sOrgUrl, oCbContext.fPreCb, oCbContext.oPreCbContext); | |
}, | |
CheckIfActivationInProgressTimeout); | |
} | |
} | |
var sLatinAlphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; | |
function MapSpecialLetters(Letter) { | |
var arrNonEnglishLetters = { | |
"Ä": "A", | |
"É": "E", | |
"Ö": "O", | |
"ß": "S", | |
"Ü": "U", | |
"Ç": "C", | |
"Ğ": "G", | |
"İ": "I", | |
"Ü": "U", | |
"Ö": "O", | |
"Ş": "S", | |
"Ü": "U" | |
}; | |
if (arrNonEnglishLetters[Letter.toUpperCase()]) { | |
if (Letter == Letter.toUpperCase()) { | |
return arrNonEnglishLetters[Letter]; | |
} | |
else { | |
return arrNonEnglishLetters[Letter.toUpperCase()].toLowerCase(); | |
} | |
} | |
else { | |
return Letter; | |
} | |
} | |
function wildcardMask(aMask) { | |
var a = new Array(0, 0, 0, 0); | |
for (var i = 0; i < 4; i++) { | |
a[i] = 255 - aMask[i]; | |
} | |
return a; | |
} | |
function startingIP(aNet, aMask) { | |
var a = subnetID(aNet, aMask); | |
var d = octet2dec(a); | |
d = d + 1; | |
return dec2octet(d); | |
} | |
function octet2dec(a) { | |
var d = 0; | |
d = d + parseInt(a[0], 10) * 16777216; | |
d = d + a[1] * 65536; | |
d = d + a[2] * 256; | |
d = d + a[3]; | |
return d; | |
} | |
function dec2octet(d) { | |
var zeros = "00000000000000000000000000000000"; | |
var b = d.toString(2); | |
b = zeros.substring(0, 32 - b.length) + b; | |
var a = new Array(parseInt(b.substring(0, 8), 2), (d & 16711680) / 65536, (d & 65280) / 256, (d & 255)); | |
return a; | |
} | |
function subnetID(aNet, aMask) { | |
var a = new Array(0, 0, 0, 0); | |
for (var i = 0; i < 4; i++) { | |
a[i] = aNet[i] & aMask[i]; | |
} | |
return a; | |
} | |
function endingIP(aNet, aWild) { | |
var a = new broadcast(aNet, aWild); | |
var d = octet2dec(a); | |
d = d - 1; | |
return dec2octet(d); | |
} | |
function broadcast(aNet, aWild) { | |
var a = new Array(0, 0, 0, 0); | |
for (var i = 0; i < 4; i++) { | |
a[i] = aNet[i] | aWild[i]; | |
} | |
return a; | |
} | |
function IsIpInRange(ipAddress, ipRangeStart, ipRangeEnd) { | |
var isInRange = true; | |
var ipArr = ipAddress.split("."); | |
var fromArr = ipRangeStart.split("."); | |
var toArr = ipRangeEnd.split("."); | |
for (var i = 0; i < 4; i++) { | |
if (parseInt(fromArr[i], 10) > parseInt(ipArr[i], 10)) { | |
isInRange = false; | |
} | |
if (parseInt(ipArr[i], 10) > parseInt(toArr[i], 10)) { | |
isInRange = false; | |
} | |
} | |
return isInRange; | |
} | |
function getValidIPRange(source, rsrc_mngr) { | |
var sIpAddress = rsrc_mngr.value_get(source.concat(".ip_address")); | |
var aIpAddress = sIpAddress.split("."); | |
var sSubnet = rsrc_mngr.value_get(source.concat(".ip_subnet_mask")); | |
var aSubnet = sSubnet.split("."); | |
for (var i = 0; i < 4; i++) { | |
aIpAddress[i] = parseInt(aIpAddress[i]); | |
aSubnet[i] = parseInt(aSubnet[i]); | |
} | |
var wcMask = wildcardMask(aSubnet); | |
var aStartIpAddressRange = startingIP(aIpAddress, aSubnet); | |
var sStartIpAddressRange = aStartIpAddressRange.join("."); | |
var aEndIpAddressRange = endingIP(aIpAddress, wcMask); | |
var sEndIpAddressRange = aEndIpAddressRange.join("."); | |
return { | |
sStartIPRange: sStartIpAddressRange, | |
sEndIPRange: sEndIpAddressRange | |
}; | |
} | |
function validateIpv6Address(ip_address) { | |
var reg_exp = /^((?=.*::)(?!.*::.+::)(::)?([\dA-F]{1,4}:(:|\b)|){5}|([\dA-F]{1,4}:){6})((([\dA-F]{1,4}((?!\3)::|:\b|$))|(?!\2\3)){2}|(((2[0-4]|1\d|[1-9])?\d|25[0-5])\.?\b){4})$/i; | |
var emptyIp = "0000:0000:0000:0000:0000:0000:0000:0000"; | |
return ip_address && ip_address !== "::" && ip_address !== emptyIp && reg_exp.test(ip_address); | |
} | |
function cutLeadingZeros(str) { | |
return str.replace(/(^|:)0+(?!:|$)/g, '$1'); | |
} | |
function getShortenedAddress(str) { | |
return cutLeadingZeros(str).replace(/(((^|:)0){2,8}(:|$))(?!.*(\1)0)/, '::'); | |
} | |
function isValidPrefix(str) { | |
return str !== '0:0:0:0' && (/^([a-f0-9]{1,4}:){3}[a-f0-9]{1,4}$/i).test(str); | |
} | |
var aSpecialCallNumbers = [ ["110", "110"], ["112", "112"], ["115", "115"], ["116000", "116000"], ["116006", "116006"], ["116111", "116111"], ["116116", "116116"], ["116117", "116117"], ["116123", "116123"], ["1181000", "1189999"], ["01000000", "01009999"], ["0101000", "0109999"], ["01371000", "01371999"], ["01375000", "01375999"], ["01372000", "01372999"], ["01373000", "01373999"], ["01374000", "01374999"], ["0138000", "0138999"], ["01376000", "01376999"], ["01377000", "01377999"], ["01378000", "01378999"], ["01379000", "01379999"], ["0164000", "0164999"], ["01682000", "01691999"], ["016951000", "016951999"], ["016952000", "016952999"], ["01680000", "01680999"], ["01681000", "01681999"], ["01696000", "01696999"], ["01699000", "01699999"], ["01692000", "01692999"], ["01693000", "01693999"], ["016953000", "016953999"], ["01801000", "01801999"], ["01802000", "01802999"], ["01803000", "01803999"], ["01804000", "01804999"], ["01805000", "01805999"], ["01806000", "01806999"], ["01807000", "01807999"], ["0181000", "0189999"], ["0191000", "0194999"], ["32000", "32999"], ["700000", "700999"], ["800000", "800999"], ["800000", "800999"], ["09001000", "09001999"], ["09003000", "09003999"], ["09005000", "09005999"], ["09009000", "09009999"]]; | |
var iContactPhoneNumberMinLength = 5; | |
var iOutgoingPhoneNumberMinLength = 5; | |
var iIncomingPhoneNumberMinLength = 5; | |
function validateStringMinLength(sString, iMinLength) { | |
return((sString.length >= iMinLength) ? true : false); | |
} | |
function isFirstDigitZero(sPhoneNumber) { | |
return((sPhoneNumber.substring(0, 1) == "0") ? true : false); | |
} | |
function isLocalPhoneNumber(sPhoneNumber) { | |
return((sPhoneNumber.substring(0, 2) != "00") ? true : false); | |
} | |
function validateNumericHashOnLastDigit(sPhoneNumber) { | |
var sLastChar = sPhoneNumber.substring(sPhoneNumber.length - 1, sPhoneNumber.length); | |
var sNumberPart = (sLastChar == "#") ? sPhoneNumber.substring(0, sPhoneNumber.length - 1) : sPhoneNumber; | |
if (is_expression_numeric(sNumberPart)) { | |
if (sLastChar == "#" || is_expression_numeric(sLastChar)) { | |
return true; | |
} | |
else { | |
return false; | |
} | |
} | |
else { | |
return false; | |
} | |
} | |
function isInternationalPhoneNumber(sPhoneNumber) { | |
var sFirst2Digits = sPhoneNumber.substring(0, 2); | |
var sFirst4Digits = sPhoneNumber.substring(0, 4); | |
if (sFirst2Digits == "00") { | |
if (sFirst4Digits != "0049") { | |
return true; | |
} | |
else { | |
return false; | |
} | |
} | |
else { | |
return false; | |
} | |
} | |
function isSpecialCallNumbers(sPhoneNumber) { | |
var i; | |
var bMatchSpecialCallNumbers = false; | |
for (i = 0; i < aSpecialCallNumbers.length; i++) { | |
if (sPhoneNumber.length == aSpecialCallNumbers[i][0].length && sPhoneNumber.length == aSpecialCallNumbers[i][1].length) { | |
if (sPhoneNumber >= aSpecialCallNumbers[i][0] && sPhoneNumber <= aSpecialCallNumbers[i][1]) { | |
bMatchSpecialCallNumbers = true; | |
} | |
} | |
} | |
return bMatchSpecialCallNumbers; | |
} | |
function validateContactPhoneNumber(sPhoneNumber) { | |
if (is_expression_numeric(sPhoneNumber)) { | |
if (validateStringMinLength(sPhoneNumber, iContactPhoneNumberMinLength)) { | |
if (isFirstDigitZero(sPhoneNumber)) { | |
if (isLocalPhoneNumber(sPhoneNumber)) { | |
return true; | |
} | |
else { | |
return isInternationalPhoneNumber(sPhoneNumber); | |
} | |
} | |
else { | |
return isSpecialCallNumbers(sPhoneNumber); | |
} | |
} | |
else { | |
return isSpecialCallNumbers(sPhoneNumber); | |
} | |
} | |
else { | |
return false; | |
} | |
} | |
function is_valid_phone_number(number) { | |
var c = number.charAt(0); | |
var start = 0; | |
if (c == "#" || c == "+" || c == "*" || c == "-") { | |
if (number.length == 1) { | |
return false; | |
} | |
start++; | |
} | |
return number.substr(start).search(/[^0-9-]/g) == -1; | |
} | |
function validateContactNumber() { | |
var aMessages = []; | |
var msg = ""; | |
var test = this.value; | |
var bValidationResult = false; | |
if (FC.layout == wbm_layout.VOX_2_5_IT_1_5HW) { | |
bValidationResult = is_valid_phone_number(test); | |
} | |
else { | |
bValidationResult = validateContactPhoneNumber(test); | |
} | |
if (!bValidationResult) { | |
msg = _("ERROR_INVALID_CONTACT_PHONE_NUMBER"); | |
aMessages.push(msg); | |
} | |
return aMessages; | |
} | |
function get_extension_name_as_array(ctrl, extId) { | |
var rsrc = ctrl.rsrc; | |
var extension = rsrc.value_get("voice.extensions.array")[extId]; | |
var connection_name = extension.display_name.value; | |
if (connection_name == "") { | |
var label; | |
switch (FC.layout) { | |
case wbm_layout.VOX_2_5_IT_1_5HW: | |
label = ["TEL1", "TEL2"]; | |
break; | |
case wbm_layout.VOX_2_5_DE_VDSL: | |
case wbm_layout.VOX_2_5_IT: | |
label = ["PHONE_SETTINGS_ANALOG1", "PHONE_SETTINGS_ANALOG2"]; | |
break; | |
default: | |
label = ["PHONE_SETTINGS_PHONE1", "PHONE_SETTINGS_PHONE2"]; | |
break; | |
} | |
connection_name = _(label[extId]); | |
} | |
if (FC.layout == wbm_layout.VOX_2_5_DE_VDSL || FC.layout == wbm_layout.VOX_2_5_IT) { | |
var extension_name = extension.name.value; | |
if (extension.type.value == "sip") { | |
var ext_idx = extId - Object.keys(FC.voip.ext).length + 1; | |
if (!connection_name && rsrc.value_get("voice.sip_proxy.array")) { | |
connection_name = rsrc.value_get("voice.sip_proxy.array")[ext_idx - 1].auth_name.value; | |
} | |
extension_name = _("SIP_EXT_NAME").replace("%s", ext_idx); | |
} | |
} | |
return[extension_name, connection_name]; | |
} | |
function get_extension_name(ctrl, extension, deny_change_ctrl_value) { | |
var names = get_extension_name_as_array(ctrl, extension); | |
var value = names[0] + " (" + names[1] + ")"; | |
if (!deny_change_ctrl_value) { | |
ctrl.value = value; | |
ctrl.value_original = ctrl.value; | |
} | |
return value; | |
} | |
function hideDisabledSipClients(aExtensions, aSipClients, listHtmlId) { | |
var sip_ext_count = 0; | |
for (var i = 0; i < aExtensions.length; i++) { | |
var sip_ext_iter = aExtensions[i]; | |
if (sip_ext_iter.type.value != "sip") | |
continue; | |
if (!aSipClients[sip_ext_count].enabled.value) { | |
$(safe_dot("#" + listHtmlId + "." + i)).remove(); | |
} | |
sip_ext_count++; | |
} | |
SetListGUIRowNumbers(listHtmlId); | |
} | |
var fi_remote_login; | |
function isIPv6GlobalAddr(ipv6) { | |
var unique_site_local = ["fe80", "fc", "fd"]; | |
if (!validateIpv6Address(ipv6)) { | |
return false; | |
} | |
for (var i = 0; i < unique_site_local.length; i++) { | |
if (ipv6.indexOf(unique_site_local[i]) == 0) | |
return false; | |
} | |
return true; | |
} | |
function getIPv6Address(aIpv6Addr, sep) { | |
var ipv6 = ""; | |
sep = sep || "<br />"; | |
for (var i = 0; i < aIpv6Addr.length; i++) { | |
var ipv6_addr_entry = aIpv6Addr[i].ip.value; | |
if (isIPv6GlobalAddr(ipv6_addr_entry)) | |
ipv6 += ipv6 ? sep + ipv6_addr_entry : ipv6_addr_entry; | |
} | |
return ipv6; | |
} | |
function getWANIPv6PrefixList(prefixes, addresses) { | |
var sList = '', originList = ['Child', 'RouterAdvertisement', 'Static']; | |
if (FC.ipv6.footer_prefix) { | |
sList = prefixes.reduce(function(data, pfxData) { | |
if (pfxData.origin && originList.indexOf(pfxData.origin.value) !== -1) { | |
data = data ? data + '<br />' + pfxData.prefix.value : pfxData.prefix.value; | |
} | |
return data; | |
}, | |
'') || addresses.reduce(function(data, ipData) { | |
if (ipData.ip && isIPv6GlobalAddr(ipData.ip.value)) { | |
var parts = ipData.ip.value.split('::'), left = parts[0].split(':'), right = parts[1] ? parts[1].split(':') : [], prefix; | |
while (left.length + right.length < 8) { | |
left.push('0'); | |
} | |
prefix = left.concat(right).slice(0, 4).join(':') + '::/ 64'; | |
data = data ? data + '<br />' + prefix : prefix; | |
} | |
return data; | |
}, | |
''); | |
} | |
else { | |
sList = addresses.reduce(function(data, ipData) { | |
if (ipData.ip && isIPv6GlobalAddr(ipData.ip.value)) { | |
data = data ? data + '<br />' + ipData.ip.value : ipData.ip.value; | |
} | |
return data; | |
}, | |
''); | |
} | |
return sList; | |
} | |
var InitFooter = (function() { | |
var rsrc_mngr, fw = "", fw_rsrc_id = "gateway.device_info.fw_version", IPv4_rsrc_id = "main_wan.connections.data.ip_address", IPv6_rsrc_id = "main_wan.connections.data.ipv6.ip_interface.array.0.ip_address.array", IPv6_prefix_rsrc_id = "main_wan.connections.data.ipv6.interface_prefixes.array.0.ip_prefix.array", WAN_IP_rsrc_ids = [IPv4_rsrc_id].concat(FC.ipv6.enabled ? [IPv6_rsrc_id, IPv6_prefix_rsrc_id] : []); | |
function ShowFooterInfo(oStatus, ctx) { | |
var ipv4, ipv6; | |
if (oStatus.result == "success" && !CheckNonCriticalErrors(oStatus, [])) { | |
ipv4 = rsrc_mngr.value_get(IPv4_rsrc_id); | |
ipv6 = FC.ipv6.enabled && getWANIPv6PrefixList(rsrc_mngr.value_get(IPv6_prefix_rsrc_id), rsrc_mngr.value_get(IPv6_rsrc_id)); | |
(!fw) && (fw = rsrc_mngr.value_get(fw_rsrc_id)) && (rsrc_mngr = new ResourcesMngr(WAN_IP_rsrc_ids)); | |
renderFooter(getFooterData(fw, ipv4, ipv6)); | |
} | |
CriticalErrorOccured || setTimeout(function() { | |
rsrc_mngr.pull(ShowFooterInfo, {} | |
); | |
}, | |
WAN_IP_RefreshInterval); | |
} | |
function getFooterData(fw, ipv4, ipv6) { | |
var footerData = []; | |
(!fi_remote_login && fw) && footerData.push({ | |
'title': _("PAGE_BOTTOM_INFO_FIRMWARE_VERSION") + ": ", | |
'value': fw | |
}); | |
(ipv4 && ipv4 !== "0.0.0.0") && footerData.push({ | |
'title': _(FC.ipv6.enabled ? "PAGE_BOTTOM_INFO_WAN_IPV4_ADDRESS" : "PAGE_BOTTOM_INFO_WAN_IP_ADDRESS") + " ", | |
'value': ipv4 | |
}); | |
(ipv6) && footerData.push({ | |
'title': _(FC.ipv6.footer_prefix ? "PAGE_BOTTOM_INFO_WAN_IPV6_PREFIX" : "PAGE_BOTTOM_INFO_WAN_IPV6_ADDRESS") + " ", | |
'value': ipv6 | |
}); | |
return footerData; | |
} | |
function renderFooter(footerData) { | |
$("#pageFirmwareVersion").html(footerData.reduce(function(sHtml, item) { | |
return sHtml + '<p>' + item.title + '<span>' + item.value + '</span></p>'; | |
}, | |
'')); | |
} | |
return function() { | |
rsrc_mngr = new ResourcesMngr(WAN_IP_rsrc_ids.concat(fw_rsrc_id)); | |
rsrc_mngr.refresh(ShowFooterInfo, {} | |
); | |
}; | |
})(); | |
var AwContinueOnEnterKey = { | |
elmKeyDownTarget: null, | |
elmKeyDownBody: window.IsPopUpOpened() ? "Popup" : "Page", | |
ignoreEnterKeyOnElements: function() { | |
$(".ignoreEnterKeyEvent").on({ | |
"keyup": function(e) { | |
e.stopPropagation(); | |
} | |
}); | |
}, | |
setEnterKeyOnElements: function(fAwContinue) { | |
var that = this; | |
$(document).on({ | |
"keydown": function(e) { | |
that.elmKeyDownTarget = e.target; | |
that.elmKeyDownBody = window.IsPopUpOpened() ? "Popup" : "Page"; | |
}, | |
"keyup": function(e) { | |
var currentElmKeyDownBody = window.IsPopUpOpened() ? "Popup" : "Page"; | |
if (e.which == 13 && that.elmKeyDownTarget && that.elmKeyDownBody == currentElmKeyDownBody) { | |
var $elm = $(that.elmKeyDownTarget); | |
if ($elm.hasClass("ignoreEnterKeyEvent") || $elm.closest(".ignoreEnterKeyEvent").length) {} | |
else { | |
; | |
if (window.IsPopUpOpened()) { | |
if ($(".btnPopupContinue:visible").length && !$(".btnPopupContinue:visible").hasClass("disabled")) { | |
; | |
fAwContinue(); | |
} | |
else { | |
; | |
} | |
} | |
else { | |
if ($(".btnPageContinue:visible").length && !$(".btnPageContinue:visible").hasClass("disabled")) { | |
; | |
fAwContinue(); | |
} | |
else { | |
; | |
} | |
} | |
} | |
} | |
} | |
}); | |
}, | |
init: function(fAwContinue) { | |
this.ignoreEnterKeyOnElements(); | |
this.setEnterKeyOnElements(fAwContinue); | |
} | |
}; | |
var EnterKeyUpAndDownVerifier = { | |
eventTargetKeyDown: null, | |
bindKeyDownRegister: function() { | |
var that = this; | |
$(document).on({ | |
"keydown": function(e) { | |
if (e.which == 13) { | |
that.eventTargetKeyDown = e.target; | |
} | |
} | |
}); | |
}, | |
isKeyUpAndDownOnSameElement: function(e) { | |
if (e.which == 13) { | |
if (e.target == this.eventTargetKeyDown) { | |
return true; | |
} | |
else { | |
return false; | |
} | |
} | |
} | |
}; | |
function retrieve_org_url() | |
{ | |
var org_url; | |
$(window.location.href.slice(window.location.href.indexOf('?') | |
+1).split('#')[0].split('&')).each(function(i, v) | |
{ | |
var vars = v.split('='); | |
if (vars[0] == 'org_url') | |
org_url = vars[1]; | |
}); | |
return org_url; | |
} | |
function IsSupportedFeature(sFeature) { | |
return eval("FC." + sFeature) ? true : false; | |
} | |
function isControlSupported(control) | |
{ | |
if (control.scope && control.scope.toLowerCase() != app.modeSelectorManager.getSelectedMode().toLowerCase()) { | |
return false; | |
} | |
if (!control.is_supported) { | |
return true; | |
} | |
if (typeof(control.is_supported) == "function") { | |
return control.is_supported(); | |
} | |
for (var i = 0; i < control.is_supported.length; i++) { | |
if (IsSupportedFeature(control.is_supported[i])) { | |
return true; | |
} | |
} | |
return false; | |
} | |
function ChangePasswordStrengthIndicator(password) { | |
var strength = get_password_strength(password); | |
var new_class = ""; | |
switch (strength) { | |
case PASSW_STRENGTH.STRONG: | |
$("#passwordStrengthIndicator").text(_("PAGE_PASSWORD_POPUP_PASSWORD_STRENGTH_STRONG")); | |
new_class = "strength5"; | |
break; | |
case PASSW_STRENGTH.GOOD: | |
$("#passwordStrengthIndicator").text(_("PAGE_PASSWORD_POPUP_PASSWORD_STRENGTH_GOOD")); | |
new_class = "strength2"; | |
break; | |
case PASSW_STRENGTH.WEAK: | |
$("#passwordStrengthIndicator").text(_("PAGE_PASSWORD_POPUP_PASSWORD_STRENGTH_WEAK")); | |
new_class = "strength0"; | |
break; | |
default: | |
break; | |
} | |
$("#passwordStrengthIndicator")[0].className = $("#passwordStrengthIndicator")[0].className.replace(/strength\d/, new_class); | |
return strength; | |
} | |
function warnMsgsRegister(sMsg, sHtmlId, iPrio, fNeedWarnCb, oContext) { | |
oWarnMsgsContainer[iPrio] = { | |
"msg": sMsg, | |
"htmlId": sHtmlId, | |
"needWarning": fNeedWarnCb, | |
"ctx": oContext | |
}; | |
} | |
function warnMsgsDisplay(iMaxWarningsCount, sBlockButtonId) { | |
var nDisplayed = 0; | |
var nBlock = 0; | |
HideAllPageWarnings(); | |
for (var i in oWarnMsgsContainer) { | |
var obj = oWarnMsgsContainer[i]; | |
if (obj.needWarning(obj.ctx) && nDisplayed++ < iMaxWarningsCount) { | |
if (obj.ctx.block == undefined || obj.ctx.block) { | |
nBlock++; | |
} | |
RemoveAlerts(); | |
DisplayLocalWarning(obj.msg, obj.htmlId); | |
} | |
} | |
if (nDisplayed && nBlock) { | |
DisableButton(sBlockButtonId); | |
} | |
else { | |
EnableButton(sBlockButtonId); | |
} | |
} | |
function refresh_captcha() | |
{ | |
gw_wbm_get_captcha(refresh_captcha_cb); | |
} | |
function refresh_captcha_cb(img) | |
{ | |
$("#captcha_img").attr("src", "data:image/gif;base64," + img); | |
} | |
function gen_usb_state_warning() | |
{ | |
var ref = "<a href='#cat=settings_energy-settings'><span>" + _("PAGE_ENERGY_SETTINGS_TITLE") + "</span></a>"; | |
return _("PAGE_FIRMWARE_UPDATE_FIRMWARE_UPDATE_USB_OFF").replace("%s", ref); | |
} | |
function getPhoneLines(profiles) { | |
var linesArray = []; | |
if (FC.layout == wbm_layout.VOX_2_5_DE_VDSL) { | |
profiles.forEach(function(profile) { | |
if (profile.enabled.value) { | |
linesArray.push(profile.lines.array[0]); | |
} | |
}); | |
} | |
else if (profiles[0].enabled.value) { | |
linesArray = profiles[0].lines.array; | |
} | |
return linesArray; | |
} | |
function is_line_type_valid(profile, types) | |
{ | |
for (var i = 0; i < types.length; i++) | |
{ | |
if (profile["lines"].array[0]["type"].value == types[i]) | |
return 1; | |
} | |
return 0; | |
} | |
function getConfiguredLines(profiles) { | |
return getPhoneLines(profiles).filter(function(item) { | |
return item.enabled.value && item.number.value; | |
}); | |
} | |
function getLineItemRsrcPath() { | |
return FC.layout == wbm_layout.VOX_2_5_DE_VDSL ? "voice.profiles.array.INDEX_FROM_ROUTER.lines.array.0" : "voice.profiles.array.0.lines.array.INDEX_FROM_ROUTER"; | |
} | |
function CreateDateObjectFromISO(dateValue) { | |
var dateTimeStr = dateValue.substr(5, 2) + "/" + dateValue.substr(8, 2) + "/" + dateValue.substr(0, 4) + " " + dateValue.substr(11, 2) + ":" + dateValue.substr(14, 2); | |
return new Date(dateTimeStr); | |
} | |
function getDNSfromList(aAddresses, oDNS) { | |
for (var i = 0; i < aAddresses.length; i++) { | |
if (isValidIpAddress(aAddresses[i])) { | |
oDNS.ipv4Dns.push(aAddresses[i]); | |
} | |
else { | |
oDNS.ipv6Dns.push(aAddresses[i]); | |
} | |
} | |
} | |
function packet_trace_stop_wrapper() { | |
packet_trace_stop(); | |
} | |
function convertBytes(bytes) { | |
var sizes = ["B", "kB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB"]; | |
var type = 0; | |
for (; bytes > 1024; type++, bytes = bytes / 1024) | |
; | |
return(Math.round(bytes * 100) / 100) + " " + sizes[type]; | |
} | |
function getDeviceType() { | |
return FC.product_conf.hardware && FC.product_conf.hardware[CONFIG_BOARD_TYPE] || "default"; | |
} | |
function replaceDomainAndHostName(value, rsrc_mngr) { | |
var domainName = rsrc_mngr.value_get("gateway.domain_name"); | |
var hostName = rsrc_mngr.value_get("gateway.host_name"); | |
return value.replace("s1%", hostName).replace("s2%", domainName); | |
} | |
function isIOS() { | |
return $.ua.os.name === 'iOS'; | |
} | |
var utils = {}; | |
(function() { | |
var loadedTemplates = {}, template; | |
utils.applyTemplate = function(templateId, data, def) { | |
var tpl = $('#' + templateId); | |
if (!loadedTemplates[templateId]) { | |
loadedTemplates[templateId] = doT.template(tpl.html(), undefined, def); | |
tpl.remove(); | |
} | |
template = loadedTemplates[templateId]; | |
return template(data); | |
}; | |
}()); | |
utils.mergeObjects = function(obj1, obj2) { | |
for (var attrName in obj2) { | |
if (obj2.hasOwnProperty(attrName)) { | |
obj1[attrName] = obj2[attrName]; | |
} | |
} | |
return obj1; | |
}; | |
utils.preloadImages = function() { | |
document.arrPI = []; | |
var arrImagesSrcForPreload = ["img/icons/arrow-down.png", "img/icons/dialled.png", "img/icons/error.png", "img/icons/missed.png", "img/icons/arrow-up.png", "img/icons/info.png", "img/icons/success.png", "img/icons/darkClose.png", "img/icons/received.png"]; | |
for (var i = 0; i < arrImagesSrcForPreload.length; i++) { | |
document.arrPI.push(new Image()); | |
document.arrPI[i].src = arrImagesSrcForPreload[i]; | |
} | |
}; | |
utils.initLanguagesSelector = function() { | |
$(".languageSelector").empty(); | |
var languages = utils.getSupportedLanguages(); | |
if (languages.length <= 1) { | |
return; | |
} | |
for (var i = 0; i < languages.length; i++) { | |
var languageId = languages[i].id; | |
var languageName = languages[i].name; | |
var languageItem = $("<li><a href='' data-id='" + languageId + "'>" + languageName + "</a></li>"); | |
$(".languageSelector").append(languageItem); | |
} | |
$(".languageSelector li a").click(function() { | |
languageId = $(this).data("id"); | |
createCookie("current_language", languageId); | |
createCookie("is_language_changed", "true"); | |
window.location.reload(); | |
return false; | |
}); | |
}; | |
(function() { | |
var arrLanguages = [{ | |
"id": "en", | |
"name": _("PAGE_FOOTER_LANGUAGE_ENGLISH") | |
}, | |
{ | |
"id": "de", | |
"name": _("PAGE_FOOTER_LANGUAGE_DEUTSCH") | |
}, | |
{ | |
"id": "tr", | |
"name": _("PAGE_FOOTER_LANGUAGE_TURKISH") | |
}, | |
{ | |
"id": "uk_en", | |
"name": _("PAGE_FOOTER_LANGUAGE_ENGLISH") | |
}, | |
{ | |
"id": "it_en", | |
"name": _("PAGE_FOOTER_LANGUAGE_ENGLISH") | |
}, | |
{ | |
"id": "it", | |
"name": _("PAGE_FOOTER_LANGUAGE_ITALIAN") | |
}]; | |
utils.getSupportedLanguages = function() { | |
return arrLanguages.filter(function(item) { | |
return FC.product_conf.languages.some(function(i) { | |
return i === item.id; | |
}); | |
}); | |
}; | |
})(); | |
(function() { | |
var defaultProperties = ['id', 'rsrc_ids', 'reset_if', 'labels']; | |
function replacePlaceholderInAttr(attr, index, placeholder) { | |
if (!attr) { | |
return null; | |
} | |
if (attr.map) { | |
attr = attr.map(function(item) { | |
return replacePlaceholderInAttr(item, index, placeholder); | |
}); | |
} | |
else { | |
attr = attr.replaceAll(placeholder, index); | |
} | |
return attr; | |
} | |
utils.replacePlaceholderOnIndex = function(control, index, placeholder, items) { | |
items = items || defaultProperties; | |
items.forEach(function(attr) { | |
control[attr] = replacePlaceholderInAttr(control[attr], index, placeholder); | |
}); | |
if (control.type == "list") { | |
control.itemControlTemplate = utils.replacePlaceholderOnIndex(control.itemControlTemplate, index, placeholder); | |
for (var j = 0; j < control.itemControlTemplate.controlsTemplate.length; j++) { | |
control.itemControlTemplate.controlsTemplate[j] = utils.replacePlaceholderOnIndex(control.itemControlTemplate.controlsTemplate[j], index, placeholder); | |
} | |
} | |
return control; | |
}; | |
}()); | |
utils.sendOnEnter = function(selector, buttonSelector, cb) { | |
$(selector).keyup(function(e) { | |
if (EnterKeyUpAndDownVerifier.isKeyUpAndDownOnSameElement(e)) { | |
if (!$(buttonSelector).hasClass("disabled")) { | |
cb(); | |
} | |
} | |
}); | |
}; | |
utils.isGuestSSIDActivated = function() { | |
return app.preLoadResources.getResourceById("wbm.is_guest_ssid_activated"); | |
}; | |
utils.isIPv6Activated = function() { | |
return app.preLoadResources.getResourceById("ipv6.enabled"); | |
}; | |
utils.isBoosterMode = function() { | |
return app.preLoadResources.getResourceById("wbm.booster_mode.enabled"); | |
}; | |
utils.vikConnectionOrderObj = function() { | |
return[{ | |
order: "11", | |
translation: _("PAGE_CONFIGURATION_INTERNET_KEY_SECTION_WIRELESS_MODE_4G") | |
}, | |
{ | |
order: "13", | |
translation: _("PAGE_CONFIGURATION_INTERNET_KEY_SECTION_WIRELESS_MODE_3G") | |
}, | |
{ | |
order: "15", | |
translation: _("PAGE_CONFIGURATION_INTERNET_KEY_SECTION_WIRELESS_MODE_2G") | |
}, | |
{ | |
order: "0", | |
translation: _("PAGE_CONFIGURATION_INTERNET_KEY_SECTION_WIRELESS_MODE_AUTO") | |
}]; | |
}; | |
utils.setLineStatusValue = function(line, rsrc_mngr) { | |
var lines = getPhoneLines(rsrc_mngr.value_get("voice.profiles.array")), lineStatus = line ? line.status.value : "", link3G = rsrc_mngr.value_get("umts.status.state"), vocsIsInitialised = rsrc_mngr.value_get("umts.status.vocs"), voiceOverPS = rsrc_mngr.value_get("gateway.fax_pos_backup.status") == "Connected" ? " " + _("PAGE_VOICE_STATUS_NUMBERS_TABLE_VIA_VIK") : "", statusObj = { | |
"VIA_VIK": _("PAGE_VOICE_STATUS_NUMBERS_TABLE_VIA_VIK"), | |
"Up": _("PAGE_VOICE_STATUS_NUMBERS_TABLE_ACTIVE") + voiceOverPS, | |
"Registering": _("PAGE_VOICE_STATUS_NUMBERS_TABLE_REGISTERING") + voiceOverPS, | |
"Disabled": _("PAGE_VOICE_STATUS_NUMBERS_TABLE_DISABLED"), | |
"Error": _("PAGE_VOICE_STATUS_NUMBERS_TABLE_INACTIVE"), | |
"": _("PAGE_VOICE_STATUS_NUMBERS_TABLE_INACTIVE") | |
}, | |
linesNotUp = lines.every(function(line) { | |
return line.status.value != "Up"; | |
}); | |
if (linesNotUp && link3G == "Registered" && vocsIsInitialised) { | |
lineStatus = "VIA_VIK"; | |
} | |
return statusObj[lineStatus]; | |
}; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment