ginebra2/chrome/bedrockchrome/settingsview.superpage/settingsviewTenone.js
changeset 16 3c88a81ff781
equal deleted inserted replaced
14:6aeb7a756187 16:3c88a81ff781
       
     1 // header arrow icons
       
     2 var header_closed_src = "/settingsview/list_headerarrow_closed.png";
       
     3 var header_open_src = "/settingsview/list_headerarrow_open.png";
       
     4 
       
     5 // menu section backgrounds
       
     6 var bg_closed_src = "/settingsview/list_headerbg_closed.png";
       
     7 var bg_open_src = "/settingsview/list_headerbg_open.png";
       
     8 
       
     9 // menu section item background
       
    10 var bg_item_src = "/settingsview/list_itembg.png";
       
    11 var bg_item_pressed_src = "/settingsview/list_itembg_pressed.png";
       
    12 
       
    13 var icon_src = "/settingsview/broom_sweep.png";
       
    14 var icon_action_src = "/settingsview/broom_sweep.gif";
       
    15 
       
    16 var selected_src = "/settingsview/yes_selected.png";
       
    17 var deselected_src = "/settingsview/yes_deselected.png";
       
    18 
       
    19 var radio_on = "/settingsview/radio_on.png";
       
    20 var radio_off = "/settingsview/radio_off.png";
       
    21 
       
    22 var encodingArray = ['Automatic',         
       
    23     				 'Big5',                
       
    24 					 'Big5-HKSCS',
       
    25 					 'CP949',
       
    26 					 'EUC-JP',
       
    27 					 'EUC-KR',
       
    28 					 'GB18030-0',
       
    29 					 'IBM-850',
       
    30 					 'IBM-866',
       
    31 					 'IBM-874',
       
    32 					 'ISO-2022-JP',
       
    33 					 'ISO-8859-1',
       
    34 					 'ISO-8859-2',
       
    35 					 'ISO-8859-3',
       
    36 					 'ISO-8859-4',
       
    37 					 'ISO-8859-5',
       
    38 					 'ISO-8859-6',
       
    39 					 'ISO-8859-7',
       
    40 					 'ISO-8859-8',
       
    41 					 'ISO-8859-9',
       
    42 				  	 'ISO-8859-10',
       
    43 					 'ISO-8859-13',
       
    44 					 'ISO-8859-14',
       
    45 					 'ISO-8859-15',
       
    46 					 'ISO-8859-16',
       
    47 					 'KOI8-R',
       
    48 					 'KOI8-U',
       
    49 					 'MuleLao-1',
       
    50 					 'ROMAN8',
       
    51 					 'Shift-JIS',
       
    52 					 'TIS-620',
       
    53 					 'TSCII',
       
    54 					 'UTF-8',
       
    55 					 'UTF-16',
       
    56 					 'UTF-16BE',
       
    57 					 'UTF-16LE',
       
    58 					 'UTF-32',
       
    59 					 'UTF-32BE',
       
    60 					 'UTF-32LE',
       
    61 					 'Windows-1250',
       
    62 					 'Windows-1251',
       
    63 					 'Windows-1252',
       
    64 					 'Windows-1253',
       
    65 					 'Windows-1254',
       
    66 					 'Windows-1255',
       
    67 					 'Windows-1256',
       
    68 					 'Windows-1257',
       
    69 					 'Windows-1258'];
       
    70 
       
    71 var encodingOptionsInitialized = false;
       
    72 
       
    73 // sets localized text constant
       
    74 function localizeString(logicalString) {
       
    75 	$("#"+logicalString).html(window.localeDelegate.translateText(logicalString));
       
    76 }
       
    77 
       
    78 // get settings Browser history value
       
    79 function saverestoreState() {
       
    80 	return window.pageController.getSaverestoreSettings();
       
    81 }
       
    82 
       
    83 // settings view form initialization
       
    84 function initForms() {
       
    85 
       
    86 	$("span#character_encoding_value").text(encodingState());
       
    87 	
       
    88 	if (saverestoreState())
       
    89 		$("#saverestore").attr("src", selected_src);
       
    90 	else
       
    91 		$("#saverestore").attr("src", deselected_src);
       
    92 
       
    93 	$("#id1").attr("src", icon_src).click(function(){clearSelected("cache");});
       
    94 	$("#id2").attr("src", icon_src).click(function(){clearSelected("cookies");});
       
    95 	$("#id3").attr("src", icon_src).click(function(){clearSelected("history");});
       
    96 	$("#id4").attr("src", icon_src).click(function(){clearSelected("bookamrks");});
       
    97 	$("#id5").attr("src", icon_src).click(function(){clearSelected("geolocation");});
       
    98 	$("#id6").attr("src", icon_src).click(function(){clearSelected("all");});
       
    99 
       
   100 	$(".encoding_options").hide();
       
   101 		
       
   102 	localizeString("txt_browser_settings_general_settings");
       
   103 	localizeString("txt_browser_settings_general_settings_character_encoding");
       
   104 	localizeString("txt_browser_settings_general_settings_save_browser_history");
       
   105 	localizeString("txt_browser_settings_clear_data");
       
   106 	localizeString("txt_browser_settings_clear_data_cache");
       
   107 	localizeString("txt_browser_settings_clear_data_cookies");
       
   108 	localizeString("txt_browser_settings_clear_data_history");
       
   109 	localizeString("txt_browser_settings_clear_data_bookmarks");
       
   110 	localizeString("txt_browser_settings_clear_data_location");
       
   111 	// localizeString("txt_browser_settings_clear_data_form_data");
       
   112 	localizeString("txt_browser_settings_clear_data_all");
       
   113 	localizeString("txt_browser_settings_general_settings_about");
       
   114 
       
   115   if (!app.geolocation())
       
   116         $("#clearGeolocationContainer").css("display", "none");
       
   117 }
       
   118 
       
   119 // execute action according to setting value
       
   120 function clearSelected(field) {
       
   121 
       
   122 	window.pageController.setSettingsLoaded(2);
       
   123 
       
   124 	if (field == "cache") { // Cache
       
   125 
       
   126 		$("#id1").attr("src", icon_action_src);
       
   127 		setTimeout("initForms()", 2000);
       
   128 		window.pageController.deleteCache();		
       
   129 		return;
       
   130 
       
   131 	} else if (field == "cookies") { // Cookies
       
   132 
       
   133 		$("#id2").attr("src", icon_action_src);
       
   134 		setTimeout("initForms()", 2000);
       
   135 		window.pageController.deleteCookies();		
       
   136 		return;
       
   137 		
       
   138 	} else if (field == "history") { // History
       
   139 		
       
   140 		$("#id3").attr("src", icon_action_src);
       
   141 		setTimeout("initForms()", 2000);  
       
   142 		window.historyManager.clearHistory();		
       
   143 		return;    				        			 
       
   144 
       
   145 	} else if (field == "bookmarks") { // Bookmarks
       
   146 
       
   147 		$("#id4").attr("src", icon_action_src);
       
   148 		setTimeout("initForms()", 2000);
       
   149 		window.bookmarksController.clearAll();		
       
   150 		return;
       
   151 
       
   152 	} else if (field == "geolocation") { // GeoLocation
       
   153 
       
   154 		$("#id5").attr("src", icon_action_src);
       
   155 		setTimeout("initForms()", 2000);
       
   156 		window.geolocationManager.clearAllGeodata();
       
   157 		return;
       
   158 
       
   159 	} else if (field == "all") { // everything
       
   160 
       
   161 		$("#id6").attr("src", icon_action_src);
       
   162 		setTimeout("initForms()", 2000);  
       
   163 		deleteData();
       
   164 		return;
       
   165 
       
   166 	} else {
       
   167 
       
   168 		return;
       
   169 
       
   170 	}
       
   171 
       
   172 }
       
   173 
       
   174 // clear all data represented by settings
       
   175 function deleteData() {
       
   176 
       
   177 	window.pageController.deleteCache();
       
   178 	window.pageController.deleteCookies();
       
   179 	window.historyManager.clearHistory();
       
   180 	window.bookmarksController.clearAll();
       
   181 	window.geolocationManager.clearAllGeodata();
       
   182 	window.pageController.deleteDataFiles();
       
   183 }
       
   184 
       
   185 // save Browser history
       
   186 function saveSR(img_src) {
       
   187 
       
   188 	var flag;
       
   189 	if (img_src == deselected_src) {
       
   190 
       
   191 		$("#saverestore").attr("src", selected_src);
       
   192 		flag = 1;
       
   193 
       
   194 	} else {
       
   195 
       
   196 		$("#saverestore").attr("src", deselected_src);
       
   197 		flag = 0;
       
   198 
       
   199 	}
       
   200 	window.pageController.saveSaverestoreSettings(flag);
       
   201 	window.pageController.setSettingsLoaded(1);
       
   202 }
       
   203 
       
   204 //gets settings Character encoding value
       
   205 function encodingState() {
       
   206 	return window.pageController.getTextEncoding() || "Automatic"; 
       
   207 }
       
   208 
       
   209 function setEncodingState(value) {
       
   210 	window.pageController.setTextEncoding(value);
       
   211 	app.debug("Encoding State set to " + value);
       
   212 }
       
   213 
       
   214 function setupEncodingOptions() {
       
   215 	var encodingOptions = $(".encoding_options");
       
   216 	var prevOption = null;
       
   217 	var option = null;
       
   218 	var encState = encodingState();
       
   219 	for(index in encodingArray) {
       
   220 		option = $("<span class='encoding_option'>" +
       
   221 				"	<label>" + encodingArray[index]  + "</label>" +
       
   222 				"	<img class='contentCharacterEncodingItem' id='" + encodingArray[index]  + "' alt='' />" +
       
   223 				"</span><br />");
       
   224 		var img = option.find("img"); 
       
   225 		if(img.attr('id') == encState) {
       
   226 			img.attr("src", "url(" + radio_on + ")");
       
   227 		}
       
   228 		else { 
       
   229 			img.attr("src", "url(" + radio_off + ")");
       
   230 		}
       
   231     	
       
   232 		if(prevOption)
       
   233 			option.insertAfter(prevOption);
       
   234 		else
       
   235 			encodingOptions.html(option);
       
   236 
       
   237 		prevOption = option;
       
   238 	}
       
   239 	
       
   240 	$("span.encoding_option").click(function() {
       
   241 		$('.encoding_options').find("#" + encodingState()).attr("src", "url(" + radio_off + ")");
       
   242 		
       
   243 		$(this).find('img').attr("src", "url(" + radio_on + ")");
       
   244 		app.debug("option:" + $(this).find('img').attr('id') + " selected.");
       
   245 		setEncodingState($(this).find('img').attr('id'));
       
   246 		$('.encoding_options').slideUp();
       
   247 		$('span#character_encoding_value').text(encodingState());
       
   248 	});	
       
   249 	
       
   250 	encodingOptionsInitialized = true;
       
   251 	app.debug("Encoding Options Initialized");
       
   252 }
       
   253 
       
   254 $(document).ready(function() {
       
   255 	
       
   256 	initForms();
       
   257 	
       
   258 	// HIDE THE DIVS ON PAGE LOAD
       
   259 	var settingsLoaded = window.pageController.getSettingsLoaded();
       
   260 
       
   261 	$('.encoding_options').hide();
       
   262 	$('#selected_encoding_option').click(function() {
       
   263 		if(!encodingOptionsInitialized) 
       
   264 			setupEncodingOptions();
       
   265  		$('.encoding_options').slideToggle();
       
   266 	});
       
   267 
       
   268 	$('#saverestore').click(function() {
       
   269 		saveSR( $(this).attr('src') ); 
       
   270 		return false;
       
   271 	});
       
   272 	
       
   273     if(settingsLoaded == 0) {
       
   274 
       
   275         $("div.accordionContent").hide();
       
   276 
       
   277         // set menu section items background
       
   278         $("div.accordionContentItem").css("background-image", bg_item_src);
       
   279         // set menu sections background
       
   280         $('div.accordionButtonGS').css("background-image", "url(" + bg_closed_src + ")");
       
   281         $('div.accordionButtonCD').css("background-image", "url(" + bg_closed_src + ")");
       
   282         $('div.accordionButtonABT').css("background-image", "url(" + bg_closed_src + ")");
       
   283 
       
   284         // Fix margin between General and Clear Data accordion buttons
       
   285         $('div.accordionButtonCD').css("margin-top", "0px");
       
   286 
       
   287         // set header arrow image
       
   288         $("#im1").attr("src", header_closed_src);	
       
   289         $("#im2").attr("src", header_closed_src);
       
   290         $("#im3").attr("src", header_closed_src);
       
   291 
       
   292     } else if(settingsLoaded == 1) {
       
   293 
       
   294         $('div.accordionButtonGS').next().show();
       
   295 
       
   296         // set menu sections background
       
   297         $('div.accordionButtonGS').css("background-image", "url(" + bg_open_src + ")");
       
   298         $('div.accordionButtonCD').css("background-image", "url(" + bg_closed_src + ")");
       
   299         $('div.accordionButtonABT').css("background-image", "url(" + bg_closed_src + ")");
       
   300 
       
   301         // Fix margin between General and Clear Data accordion buttons
       
   302         $('div.accordionButtonCD').css("margin-top", "1px");
       
   303 
       
   304         // set header arrow image
       
   305         $("#im1").attr("src", header_open_src);
       
   306         $("#im2").attr("src", header_closed_src);  
       
   307         $("#im3").attr("src", header_closed_src);  
       
   308 
       
   309     } else if(settingsLoaded == 2) {
       
   310 
       
   311         $('div.accordionButtonCD').next().show();
       
   312 
       
   313         // set menu sections background
       
   314         $('div.accordionButtonGS').css("background-image", "url(" + bg_closed_src + ")");
       
   315         $('div.accordionButtonCD').css("background-image", "url(" + bg_open_src + ")");
       
   316         $('div.accordionButtonABT').css("background-image", "url(" + bg_closed_src + ")");
       
   317         // Fix margin between General and Clear Data accordion buttons
       
   318         $('div.accordionButtonCD').css("margin-top", "0px");
       
   319 
       
   320         // set header arrow image
       
   321         $("#im1").attr("src", header_closed_src);
       
   322         $("#im2").attr("src", header_open_src);  
       
   323         $("#im3").attr("src", header_closed_src);  
       
   324 
       
   325    } else if(settingsLoaded == 3) {
       
   326 
       
   327         $('div.accordionButtonABT').next().show();
       
   328 
       
   329         // set menu sections background
       
   330         $('div.accordionButtonGS').css("background-image", "url(" + bg_closed_src + ")");
       
   331         $('div.accordionButtonCD').css("background-image", "url(" + bg_closed_src + ")");
       
   332         $('div.accordionButtonABT').css("background-image", "url(" + bg_open_src + ")");
       
   333 
       
   334         // Fix margin between General and Clear Data accordion buttons
       
   335         $('div.accordionButtonCD').css("margin-top", "0px");
       
   336 
       
   337         // set header arrow image
       
   338         $("#im1").attr("src", header_closed_src);
       
   339         $("#im1").attr("src", header_closed_src);  
       
   340         $("#im1").attr("src", header_open_src);  
       
   341 
       
   342   }	  
       
   343 
       
   344   //ACCORDION BUTTON ACTION
       
   345   $('div.accordionButtonGS').click(function() {
       
   346        //$('div.accordionContent').slideUp('normal');
       
   347        //$(this).next().slideDown('normal');
       
   348 
       
   349        $(this).next().toggle();
       
   350        $('div.accordionButtonCD').next().hide();
       
   351        $('div.accordionButtonABT').next().hide();
       
   352          
       
   353        if( $("#im1").attr("src") == header_closed_src ) { // current state
       
   354 
       
   355             // set menu sections background
       
   356             $('div.accordionButtonGS').css("background-image", "url(" + bg_open_src + ")");
       
   357             $('div.accordionButtonCD').css("background-image", "url(" + bg_closed_src + ")");
       
   358             $('div.accordionButtonABT').css("background-image", "url(" + bg_closed_src + ")");
       
   359 
       
   360             // Fix margin between General and Clear Data accordion buttons
       
   361             $('div.accordionButtonCD').css("margin-top", "0px");
       
   362 
       
   363             // change list headerarrow icon
       
   364             $("#im1").attr("src", header_open_src);
       
   365             $("#im2").attr("src", header_closed_src);
       
   366             $("#im3").attr("src", header_closed_src);
       
   367 
       
   368        } else if( $("#im1").attr("src") == header_open_src ) {
       
   369  
       
   370             // set menu sections background
       
   371             $('div.accordionButtonGS').css("background-image", "url(" + bg_closed_src + ")");
       
   372             // change list headerarrow icon
       
   373             $("#im1").attr("src", header_closed_src);
       
   374        }       
       
   375   });
       
   376 
       
   377   $('div.accordionButtonCD').click(function() {
       
   378 
       
   379        $(this).next().toggle();
       
   380        $('div.accordionButtonGS').next().hide();
       
   381        $('div.accordionButtonABT').next().hide();
       
   382  
       
   383        if( $("#im2").attr("src") == header_closed_src ) { // current state
       
   384 
       
   385             // set menu sections background
       
   386             $('div.accordionButtonGS').css("background-image", "url(" + bg_closed_src + ")");
       
   387             $('div.accordionButtonCD').css("background-image", "url(" + bg_open_src + ")");
       
   388             $('div.accordionButtonABT').css("background-image", "url(" + bg_closed_src + ")");
       
   389 
       
   390             // Fix margin between General and Clear Data accordion buttons
       
   391             $('div.accordionButtonCD').css("margin-top", "1px");
       
   392 
       
   393             // change list headerarrow icon
       
   394             $("#im1").attr("src", header_closed_src);
       
   395             $("#im2").attr("src", header_open_src);
       
   396             $("#im3").attr("src", header_closed_src);
       
   397  		
       
   398        } else if( $("#im2").attr("src") == header_open_src ) {
       
   399  
       
   400             // set menu sections background
       
   401             $('div.accordionButtonCD').css("background-image", "url(" + bg_closed_src + ")");
       
   402             // change list headerarrow icon
       
   403             $("#im2").attr("src", header_closed_src);
       
   404        }
       
   405 
       
   406   	});
       
   407 
       
   408   	$('div.accordionButtonABT').click(function() {
       
   409 
       
   410   		$(this).next().toggle();
       
   411   		$('div.accordionButtonGS').next().hide();
       
   412 		$('div.accordionButtonCD').next().hide();
       
   413     
       
   414 		if( $("#im3").attr("src") == header_closed_src ) { // current state
       
   415 
       
   416             // set menu sections background
       
   417             $('div.accordionButtonGS').css("background-image", "url(" + bg_closed_src + ")");
       
   418             $('div.accordionButtonCD').css("background-image", "url(" + bg_closed_src + ")");
       
   419             $('div.accordionButtonABT').css("background-image", "url(" + bg_open_src + ")");
       
   420 
       
   421             // Fix margin between General and Clear Data accordion buttons
       
   422             $('div.accordionButtonCD').css("margin-top", "0px");
       
   423 
       
   424             // change list headerarrow icon
       
   425             $("#im1").attr("src", header_closed_src);
       
   426             $("#im2").attr("src", header_closed_src);
       
   427             $("#im3").attr("src", header_open_src);
       
   428  		
       
   429 		} else if( $("#im3").attr("src") == header_open_src ) {
       
   430  
       
   431             // set menu sections background
       
   432             $('div.accordionButtonABT').css("background-image", "url(" + bg_closed_src + ")");
       
   433             // change list headerarrow icon
       
   434             $("#im3").attr("src", header_closed_src);
       
   435 
       
   436 		}
       
   437   	});
       
   438   
       
   439     var UAString = navigator.userAgent;
       
   440     var brNameVer = "unknown";
       
   441     var UALen = 1;
       
   442     var nameStart = 1;
       
   443     UALen = UAString.length;
       
   444     nameStart = UAString.indexOf("NokiaBrowser");
       
   445     // test to see if "NokiaBrowser" is in the UA String at all
       
   446     if (nameStart < 0) {
       
   447         brNameVer = "NOT a NokiaBrowser Browser";
       
   448     } else {
       
   449         // crop string starting at "NokiaBrowser"
       
   450     	brNameVer = UAString.substring(nameStart, UALen);
       
   451     	// limit substring to "NokiaBrowser" and version only
       
   452     	brNameVer = brNameVer.substr(0, brNameVer.indexOf(" "));
       
   453     	// clean up string for presentation
       
   454     	brNameVer = brNameVer.replace("NokiaBrowser/", " Version: ");
       
   455     }
       
   456     $('#release_version').html(brNameVer + "<br />");
       
   457 });