mypackage_wrt/preview/script/nokia.js
changeset 42 20be4dd42b12
equal deleted inserted replaced
41:315255cd1aef 42:20be4dd42b12
       
     1 /*
       
     2 	@chinnapp
       
     3 */
       
     4 
       
     5 if(typeof NOKIA == "undefined" || !NOKIA) 
       
     6 {
       
     7 	var NOKIA = {
       
     8 		version : 'WRT 1.1',
       
     9 		currentDevice : '240x320',
       
    10 		mode : 'portrait',
       
    11 		resolution : ['240x320', '320x240', '360x640', '800x352'],
       
    12 		scriptsLoaded : {
       
    13 			loader : false,
       
    14 			widget : false,
       
    15 			systeminfo : false,
       
    16 			menu   : false,
       
    17 			menuItem : false,
       
    18 			console : false
       
    19 		}
       
    20 	};
       
    21 	NOKIA.namespace = function(name)
       
    22 	{
       
    23 		var parts = name.split('.');
       
    24 		var current = NOKIA;
       
    25 		for(var key in parts){
       
    26 			if(!current[parts[key]]){
       
    27 				current[parts[key]] = {};
       
    28 			}
       
    29 			current = current[parts[key]];
       
    30 		}  
       
    31 	};
       
    32 	
       
    33 	NOKIA.init = function()
       
    34 	{
       
    35 		// Not-Supported Browser check
       
    36 		NOKIA.emulator.is_browserReady = (/MSIE/i.test(navigator.userAgent));
       
    37 		if(NOKIA.emulator.is_browserReady)
       
    38 		{
       
    39 			var notSupportedBrowser = NOKIA.helper.readCookie('NOKIA_NOT_SUPPORTED_BROWSER');
       
    40 			if (notSupportedBrowser != 1) {
       
    41 				$("#NotificationDiv")[0].className = 'show';
       
    42 				$("#NotificationDiv").dialog({
       
    43 					width: 550,
       
    44 					minWidth: 550,
       
    45 					minHeight: 350,
       
    46 					height: 150,
       
    47 					autoOpen: true,
       
    48 					position: top,
       
    49 					title: 'Notification window',
       
    50 					buttons: {
       
    51 						Cancel: function(){
       
    52 							$("#NotificationDiv").dialog('close');
       
    53 						},
       
    54 						Continue: function(){
       
    55 							$("#NotificationDiv").dialog('close');
       
    56 							NOKIA.helper.createCookie('NOKIA_NOT_SUPPORTED_BROWSER', 1);
       
    57 							NOKIA.init();
       
    58 						}
       
    59 					}
       
    60 				});
       
    61 				return false;
       
    62 			}else{
       
    63 				$("#BrowserNotificationBar").css({display:'block'});
       
    64 				$("#BrowserNotificationBar > p > a").click(function(){ $("#BrowserNotificationBar").hide(); });
       
    65 			}
       
    66 		}
       
    67 	
       
    68 		$('iframe')[0].src = "wrt_preview_main.html";
       
    69 
       
    70 		NOKIA.data.load(deviceResolutionList);
       
    71 		
       
    72 		var url = window.location.toString();			
       
    73 		url = url.split('/');
       
    74 		
       
    75 		var pointer = 3;
       
    76 		if(url[0] == 'http:')
       
    77 			pointer = 2;
       
    78 
       
    79 		var t = ''; 
       
    80 		for(var i=pointer; i<url.length-1; i++){ 	t = t + url[i] + '/'; 	}
       
    81 		if(url[0] == 'file:')
       
    82 			NOKIA.emulator.url = 'file:///' + t;
       
    83 		else
       
    84 			NOKIA.emulator.url = 'http://' + t;
       
    85 
       
    86 		//	Common Error/Notification Dialog
       
    87 		NOKIA.helper.errorDailog = $("#Dialog").dialog({
       
    88 			bgiframe: true, minHeight: 150, width: 450, modal: true, autoOpen: false,
       
    89 			buttons: {	
       
    90 					Cancel: function(){ $(this).dialog('close');	},			
       
    91 					Reload: function(){ 
       
    92 						$(this).dialog('close');
       
    93 						$("#loaderDiv").html("Widget is reloading. Please wait...");
       
    94 						$("#loaderDiv")[0].className = 'green';
       
    95 						$("#loaderDiv").show();
       
    96 						window.setTimeout(function(){
       
    97 							document.location = document.location;
       
    98 						}, 3000);
       
    99 					}			
       
   100 				}
       
   101 		});
       
   102 
       
   103 		//	validating Info.plist
       
   104 		this.helper.getInfo('Info.plist', NOKIA.helper.getInfoCallback);	
       
   105 
       
   106 		//	For getting Icon.png
       
   107 		this.helper.getInfo('Icon.png', NOKIA.helper.getIconCallback);	
       
   108 	};
       
   109 
       
   110 	/*
       
   111 	 * NOKIA.data
       
   112 	 */
       
   113 	NOKIA.namespace('data.load');
       
   114 
       
   115 	NOKIA.data.load = function(data){
       
   116 		NOKIA.deviceList = data;
       
   117 	}
       
   118 
       
   119 
       
   120 
       
   121 	/*
       
   122 	 * NOKIA.emulator
       
   123 	 */
       
   124 	NOKIA.namespace('menu');
       
   125 	NOKIA.menu = {
       
   126 		is_menu_visible : false,		// true/false
       
   127 		is_softkeys_visible : false,	// true : only when MenuItem's are displayed
       
   128 		softkeys_visibility : true,		// true/false : for hide/show SFK's
       
   129 		is_dimmed : false,
       
   130 		is_rsk_overridden : false,
       
   131 		log_counter : 1,
       
   132 		enable_log : false,
       
   133 		rsk_label : '',
       
   134 		rsk_event : false,
       
   135 		highlighted_item : null,
       
   136 		
       
   137 		hide : function()
       
   138 		{
       
   139 			$("#MenuItemsArea").fadeIn("slow");
       
   140 
       
   141 			//	Hide the SFK's If user hidden them from his code
       
   142 			if(NOKIA.menu.softkeys_visibility)
       
   143 				$("#SoftKeysArea").fadeIn("slow");
       
   144 			
       
   145 			NOKIA.menu.is_softkeys_visible = false;
       
   146 		},
       
   147 
       
   148 		log : function(str)
       
   149 		{
       
   150 			if(!this.enable_log)
       
   151 				return false;
       
   152 			NOKIA.layout.log("log", NOKIA.menu.log_counter + ' ' +str);
       
   153 			NOKIA.layout.log("log", 'is_rsk_overridden: '+NOKIA.menu.is_rsk_overridden);
       
   154 			NOKIA.layout.log("log", 'rsk_label: '+NOKIA.menu.rsk_label);
       
   155 			NOKIA.layout.log("log", 'rsk_event: '+NOKIA.menu.rsk_event);
       
   156 			
       
   157 			NOKIA.menu.log_counter++;
       
   158 		},
       
   159 
       
   160 		show : function()
       
   161 		{
       
   162 			if(NOKIA.menu.is_dimmed)
       
   163 				return false;
       
   164 				
       
   165 			NOKIA.menu.showSoftKeys();
       
   166 			
       
   167 			NOKIA.menu.is_menu_visible = true;
       
   168 			$("#MenuItemsArea").show();
       
   169 			
       
   170 			NOKIA.menu.highlighted_item = $("#MenuItemsArea > ul > li")[0];
       
   171 			NOKIA.menu.highlighted_item.className = 'active';
       
   172 
       
   173 
       
   174 			$("#MenuItemsArea > ul > li").mouseover(function(){
       
   175 				if(NOKIA.menu.highlighted_item != null)
       
   176 				{
       
   177 					NOKIA.menu.highlighted_item.className = '';
       
   178 					NOKIA.menu.highlighted_item = null;
       
   179 				}
       
   180 
       
   181 				NOKIA.menu.highlighted_item = this;
       
   182 				NOKIA.menu.highlighted_item.className = 'active';
       
   183 			});
       
   184 
       
   185 			$("#SoftKeysArea").mouseout(function(){
       
   186 				if (!NOKIA.menu.is_menu_visible) {
       
   187 					return false;
       
   188 				}
       
   189 				
       
   190 				if (NOKIA.helper.intervalId) {
       
   191 					clearInterval(NOKIA.helper.intervalId);
       
   192 				}
       
   193 				NOKIA.helper.intervalId = setTimeout(function(){
       
   194 					NOKIA.menu.cancel()
       
   195 				}, 500);
       
   196 			});
       
   197 
       
   198 
       
   199 			//	Change the label "Options" to "Select" to LSK
       
   200 			$("#LskLabel > a")[0].innerHTML = "Select";
       
   201 			NOKIA.menu.setLsk(NOKIA.menu.selectMenu);
       
   202 			
       
   203 			//	Change the label "Exit" to "Cancel" to RSK
       
   204 			$("#RskLabel > a")[0].innerHTML = 'Cancel';
       
   205 			NOKIA.menu.setRsk(NOKIA.menu.cancel);
       
   206 			
       
   207 
       
   208 			NOKIA.emulator.setMenuItemsStyle();
       
   209 			
       
   210 		},
       
   211 		
       
   212 		selectMenu : function(){
       
   213 			try {
       
   214 				if(typeof NOKIA.menu.highlighted_item.onclick != 'undefined'){
       
   215 					eval(NOKIA.menu.highlighted_item.onclick)();
       
   216 				}
       
   217 			} catch (e) {
       
   218 				
       
   219 			}
       
   220 //			NOKIA.menu.cancel();
       
   221 		},
       
   222 
       
   223 		
       
   224 		cancel : function()
       
   225 		{
       
   226 			if(NOKIA.menu.is_dimmed)
       
   227 				return false;
       
   228 				
       
   229 			NOKIA.menu.hideSoftKeys();
       
   230 
       
   231 			NOKIA.menu.is_menu_visible = false;
       
   232 			$("#MenuItemsArea").hide();
       
   233 
       
   234 			//	Reset the "OPTION" label to LSK
       
   235 			$("#LskLabel > a")[0].innerHTML = 'Options';
       
   236 			NOKIA.menu.setLsk(NOKIA.emulator.child.menu.show);
       
   237 
       
   238 			//	Change the label "CANCEL" to "EXIT" to RSK
       
   239 			if(!NOKIA.menu.is_rsk_overridden)
       
   240 			{
       
   241 				$("#RskLabel > a")[0].innerHTML = 'Exit';
       
   242 				NOKIA.menu.setRsk(NOKIA.menu.exit);	
       
   243 			}
       
   244 			else
       
   245 			{
       
   246 				$("#RskLabel > a")[0].innerHTML = NOKIA.menu.rsk_label;
       
   247 				NOKIA.menu.setRsk(NOKIA.menu.rsk_event);	
       
   248 			}
       
   249 			
       
   250 		},
       
   251 
       
   252 		exit : function()
       
   253 		{
       
   254 			if(NOKIA.menu.is_dimmed)
       
   255 				return false;
       
   256 				
       
   257 			if(NOKIA.helper.setHomeScreen())
       
   258 				return false;
       
   259 
       
   260 			//	clear the Menu Settings
       
   261 			NOKIA.menu.cancel();
       
   262 			NOKIA.emulator.child.menu.setRightSoftkeyLabel('', null);
       
   263 			NOKIA.emulator.child.menu.items = [];
       
   264 			NOKIA.menu.softkeys_visibility = false;
       
   265 			
       
   266 			// Hide Widget DIV
       
   267 			NOKIA.menu.hideSoftKeys();
       
   268 			NOKIA.menu.setLsk(function(){});
       
   269 			NOKIA.menu.setRsk(function(){});
       
   270 			
       
   271 			$("#WidgetArea").hide();
       
   272 
       
   273 			//	Show Icon
       
   274 			var style = NOKIA.deviceList[NOKIA.currentDevice][NOKIA.mode]['style'];
       
   275 			$('#IconArea').css({
       
   276 				'width' 	:	'100%',
       
   277 				'height'	:	style['widget']['height']+'px',
       
   278 				'float' 	:	style['widget']['float']
       
   279 			});
       
   280 			
       
   281 			$('#IconArea')[0].className = NOKIA.mode+NOKIA.currentDevice;
       
   282 			
       
   283 			var img = document.createElement('img');
       
   284 			img.src = NOKIA.emulator.iconFile;
       
   285 			img.border = 0;
       
   286 			
       
   287 			var div = document.createElement('div');
       
   288 			var p = document.createElement('p');
       
   289 			
       
   290 			if(NOKIA.emulator.plist.DisplayName.length <= 12)
       
   291 				p.innerHTML = NOKIA.emulator.plist.DisplayName; 
       
   292 			else
       
   293 				p.innerHTML = NOKIA.emulator.plist.DisplayName.substr(0, 11) + '...' 
       
   294 
       
   295 			div.className = 'IconFile';
       
   296 			div.style.marginTop = parseInt(parseInt(style['widget']['height']/2)-80) + 'px';
       
   297 			div.appendChild(img);
       
   298 			img.onclick = function(){
       
   299 				
       
   300 				//	close the console DIV
       
   301 				NOKIA.layout._console_enabled = false;
       
   302 				NOKIA.layout.render();
       
   303 				
       
   304 				$("#loaderDiv").html("Widget is loading. Please wait...");
       
   305 				$("#loaderDiv")[0].className = 'green';
       
   306 				$("#loaderDiv").show();
       
   307 				window.setTimeout(function(){
       
   308 					document.location = document.location;
       
   309 				}, 3000);
       
   310 				
       
   311 			};
       
   312 			
       
   313 			div.appendChild(p);
       
   314 
       
   315 			$("#loaderDiv").html("Click on Icon to Launch Widget");
       
   316 			$("#loaderDiv").show();
       
   317 			$("#loaderDiv")[0].className = 'yellow';
       
   318 
       
   319 			$('#IconArea').append(div);
       
   320 			$('#IconArea').show();
       
   321 
       
   322 			NOKIA.menu.is_dimmed = true;
       
   323 			
       
   324 			$("#PreferencesBtn").hide();
       
   325 			$("#PreferencesTab").dialog('close');
       
   326 			
       
   327 		},
       
   328 		
       
   329 		setLsk : function(func)
       
   330 		{
       
   331 			//	for RSK
       
   332 			$('#LskArea')[0].onclick = function(){
       
   333 				if(!NOKIA.menu.is_dimmed)
       
   334 					func();
       
   335 			};
       
   336 		
       
   337 			$('#LskLabel > a')[0].onclick = function(){
       
   338 				if(!NOKIA.menu.is_dimmed)
       
   339 					func();
       
   340 			};
       
   341 
       
   342 			return true;
       
   343 		},
       
   344 		
       
   345 		setRsk : function(func)
       
   346 		{
       
   347 			//	for RSK
       
   348 			$('#RskArea')[0].onclick = function(){
       
   349 				if(!NOKIA.menu.is_dimmed)
       
   350 					func();
       
   351 			};
       
   352 			
       
   353 			$('#RskLabel > a')[0].onclick = function(){
       
   354 				if(!NOKIA.menu.is_dimmed)
       
   355 					func();
       
   356 			};
       
   357 			
       
   358 			return true;
       
   359 		},
       
   360 
       
   361 
       
   362 		triggerLsk : function(event)
       
   363 		{
       
   364 			var callback;
       
   365 			if(NOKIA.mode == 'portrait')
       
   366 				callback = NOKIA.menu.lsk_event;
       
   367 			else if( (NOKIA.mode == 'landscape') && (event.id =='LskLabel') )
       
   368 				callback = NOKIA.menu.lsk_event;
       
   369 			else
       
   370 				callback = NOKIA.menu.rsk_event;
       
   371 			
       
   372 			if(typeof callback == 'function' && !NOKIA.menu.is_dimmed)
       
   373 			{
       
   374 				callback();
       
   375 			}
       
   376 		},
       
   377 
       
   378 		triggerRsk : function(event)
       
   379 		{
       
   380 			var callback;
       
   381 			if(NOKIA.mode == 'portrait')
       
   382 				callback = NOKIA.menu.rsk_event;
       
   383 			else if( (NOKIA.mode == 'landscape') && (event.id =='RskLabel') )
       
   384 				callback = NOKIA.menu.rsk_event;
       
   385 			else
       
   386 				callback = NOKIA.menu.lsk_event;
       
   387 			
       
   388 			if(typeof callback == 'function')
       
   389 			{
       
   390 				if(!NOKIA.menu.is_dimmed)
       
   391 				{
       
   392 					callback();
       
   393 					NOKIA.menu.cancel();
       
   394 				}
       
   395 			}
       
   396 		},
       
   397 		
       
   398 		render : function()
       
   399 		{
       
   400 			if(!NOKIA.menu.softkeys_visibility)
       
   401 				NOKIA.menu.hideSoftKeys();
       
   402 			else
       
   403 				NOKIA.menu.showSoftKeys();
       
   404 			
       
   405 			NOKIA.emulator.setWidgetStyle();
       
   406 		},
       
   407 		
       
   408 
       
   409 		init : function()
       
   410 		{
       
   411 			NOKIA.menu.render();
       
   412 		},
       
   413 		
       
   414 		createSFKArea : function()
       
   415 		{
       
   416 			var a = $('#SoftKeys > a');
       
   417 			a.html('');
       
   418 			
       
   419 			var preferences = NOKIA.deviceList[NOKIA.currentDevice][NOKIA.mode];
       
   420 			
       
   421 			var lsk = document.createElement('img');
       
   422 			lsk.border="0";
       
   423 			lsk.id = "LskArea";
       
   424 			lsk.name ="LskArea";
       
   425 			lsk.src = "preview/images/TransperantImage.png";
       
   426 			lsk.style.width = preferences.style.softkeysImg.width; 
       
   427 			lsk.style.height = preferences.style.softkeysImg.height;
       
   428 			
       
   429 			var rsk = document.createElement('img');
       
   430 			rsk.border = 0;
       
   431 			rsk.id = "RskArea";
       
   432 			rsk.name = "RskArea";
       
   433 			rsk.src = "preview/images/TransperantImage.png";
       
   434 			rsk.style.width = preferences.style.softkeysImg.width; 
       
   435 			rsk.style.height = preferences.style.softkeysImg.height;
       
   436 
       
   437 			if(NOKIA.mode == 'portrait')
       
   438 			{	
       
   439 				lsk.onclick = function(){
       
   440 					$("#LskLabel > a").trigger('click');
       
   441 				}
       
   442 				a[0].appendChild(lsk);
       
   443 
       
   444 				rsk.onclick = function(){
       
   445 					$("#RskLabel > a").trigger('click');
       
   446 				}
       
   447 				a[1].appendChild(rsk);
       
   448 
       
   449 			}else{
       
   450 
       
   451 				rsk.onclick = function(){
       
   452 					$("#RskLabel > a").trigger('click');
       
   453 				}
       
   454 				a[0].appendChild(rsk);
       
   455 
       
   456 				lsk.onclick = function(){
       
   457 					$("#LskLabel > a").trigger('click');
       
   458 				}
       
   459 				a[1].appendChild(lsk);
       
   460 			}
       
   461 			
       
   462 			
       
   463 		},
       
   464 
       
   465 		showSoftKeys : function()
       
   466 		{
       
   467 			NOKIA.menu.is_softkeys_visible = true;
       
   468 
       
   469 			NOKIA.emulator.setWidgetStyle();
       
   470 			$("#SoftKeysArea").show();
       
   471 		},
       
   472 		
       
   473 		hideSoftKeys : function()
       
   474 		{
       
   475 			//	Hide the SFK's If user hidden them from his code
       
   476 			if(!NOKIA.menu.softkeys_visibility)
       
   477 				$("#SoftKeysArea").hide();
       
   478 			
       
   479 			NOKIA.menu.is_softkeys_visible = false;
       
   480 
       
   481 			NOKIA.emulator.setWidgetStyle();
       
   482 		}
       
   483 	};
       
   484 
       
   485 
       
   486 
       
   487 	/*
       
   488 	 * NOKIA.emulator
       
   489 	 */
       
   490 	NOKIA.namespace('emulator');
       
   491 	NOKIA.emulator = {
       
   492 		child : false,
       
   493 		iconFile : 'preview/images/default-Icon.png',
       
   494 		loaded : false,
       
   495 		plist : {
       
   496 			DisplayName	:	'',
       
   497 			Identifier	:	'',
       
   498 			MainHTML	:	'',
       
   499 			AllowNetworkAccess	:	"false",
       
   500 			Version		:	'',
       
   501 			MiniViewEnabled		:	"false",
       
   502 			is_browserReady : false
       
   503 		},
       
   504 		
       
   505 		load : function()
       
   506 		{
       
   507 			if(this.loaded)
       
   508 				return false;
       
   509 				
       
   510 			//	load the saved device Info
       
   511 			var device = NOKIA.helper.readCookie('NOKIA_EMULATOR_DEVICE');
       
   512 			NOKIA.currentDevice = device || NOKIA.currentDevice;
       
   513 
       
   514 
       
   515 			//	load the saved device mode
       
   516 			var mode = NOKIA.helper.readCookie('NOKIA_EMULATOR_DEVICE_MODE');
       
   517 			if(mode != null)
       
   518 				NOKIA.mode = mode;
       
   519 
       
   520 			//	SAVE the device DATA
       
   521 			NOKIA.helper.createCookie('NOKIA_EMULATOR_DEVICE', NOKIA.currentDevice);
       
   522 			NOKIA.helper.createCookie('NOKIA_EMULATOR_DEVICE_MODE', NOKIA.mode);
       
   523 			
       
   524 			this.loaded = true;
       
   525 			
       
   526 		},
       
   527 	
       
   528 		render : function()
       
   529 		{
       
   530 			this.load();
       
   531 			
       
   532 			if(!NOKIA.emulator.orientationSupports())
       
   533 				NOKIA.mode = NOKIA.deviceList[NOKIA.currentDevice]['default'];
       
   534 			
       
   535 			if(typeof NOKIA.deviceList == 'undefined' || typeof NOKIA.deviceList[NOKIA.currentDevice] == 'undefined' || typeof NOKIA.deviceList[NOKIA.currentDevice][NOKIA.mode] == 'undefined')
       
   536 			{
       
   537 				alert('Deive resolution: '+NOKIA.currentDevice+' or the mode: '+NOKIA.mode+' not found');
       
   538 				return false;
       
   539 			}
       
   540 			
       
   541 			this.setStyle();
       
   542 		},
       
   543 		
       
   544 		setMode : function(mode)
       
   545 		{
       
   546 			NOKIA.mode = mode;
       
   547 
       
   548 			//	SAVE the device DATA
       
   549 			NOKIA.helper.createCookie('NOKIA_EMULATOR_DEVICE_MODE', NOKIA.mode);
       
   550 
       
   551 			NOKIA.emulator.render();
       
   552 		},
       
   553 		
       
   554 		orientationSupports : function()
       
   555 		{
       
   556 			return NOKIA.deviceList[NOKIA.currentDevice]['orientation'];
       
   557 		},
       
   558 		
       
   559 		setStyle:function()
       
   560 		{
       
   561 			if(!NOKIA.helper.checkDependencies())
       
   562 			{
       
   563 				setTimeout(NOKIA.emulator.setStyle, 1000);
       
   564 			}
       
   565 			
       
   566 			var deviceProperties = NOKIA.deviceList[NOKIA.currentDevice][NOKIA.mode];
       
   567 			var style = deviceProperties['style'];
       
   568 
       
   569 			//	Apply Style and propertis to Device layers
       
   570 			$("#DeviceDisplayLayout").css(style['layout']);
       
   571 			$('#DisplayArea').css(style['display']);
       
   572 			
       
   573 			NOKIA.emulator.setWidgetStyle();
       
   574 			
       
   575 			$('#SoftKeysArea').css({
       
   576 				'width'	:	style['menu']['width']+'px',
       
   577 				'height'	:	style['menu']['height']+'px',
       
   578 				'float' 	:	style['menu']['float']
       
   579 			});
       
   580 			
       
   581 			$('#SoftKeysArea > ul > li').css('width', parseInt(style['menu']['width']/2)-10);
       
   582 
       
   583 			
       
   584 			NOKIA.emulator.setMenuItemsStyle();
       
   585 			
       
   586 			$('#SoftKeys').css(style['softkeys']);
       
   587 //			$('#SoftKeys > a > img').css(style['softkeysImg']);
       
   588 
       
   589 			NOKIA.menu.createSFKArea();
       
   590 			
       
   591 			$("#DeviceDisplayLayout").show();
       
   592 			$("#PreferencesTab").show();
       
   593 			
       
   594 			if(!NOKIA.menu.is_dimmed)
       
   595 				$("#PreferencesBtn").show();
       
   596 		},
       
   597 		
       
   598 		setWidgetStyle : function()
       
   599 		{
       
   600 			var style = NOKIA.deviceList[NOKIA.currentDevice][NOKIA.mode]['style'];
       
   601 			var height;
       
   602 			if(NOKIA.menu.softkeys_visibility || NOKIA.menu.is_softkeys_visible)
       
   603 				height = parseInt(style['widget']['height'] - style['menu']['height']);
       
   604 			else
       
   605 				height = style['widget']['height'];
       
   606 
       
   607 			$('#WidgetArea').css({
       
   608 				'width' 	:	style['widget']['width']+'px',
       
   609 				'height'	:	height+'px',
       
   610 				'float' 	:	style['widget']['float']
       
   611 			});
       
   612 		},
       
   613 		
       
   614 		setMenuItemsStyle : function()
       
   615 		{
       
   616 			var style 	= NOKIA.deviceList[NOKIA.currentDevice][NOKIA.mode]['style'];
       
   617 			var count = 1;
       
   618 			try {
       
   619 				if (NOKIA.emulator.child.menu) {
       
   620 					count = parseInt(NOKIA.helper.getElementsLengthInObject(NOKIA.emulator.child.menu.items)) + 1;
       
   621 				}
       
   622 			} catch (e) {
       
   623 				count = 1;
       
   624 			}
       
   625 			var height 	= parseInt(count*style['menu']['optionKeysheight']) + 10;
       
   626 			var top 	= parseInt(style['widget']['height'] - height); 
       
   627 
       
   628 			$('#MenuItemsArea').css({
       
   629 				'width'		:	style['widget']['width']+'px',
       
   630 				'height'	:	height+'px',
       
   631 				'marginTop'	:	'-2px',
       
   632 				'top'		:	(style['widget']['height']-height-style['menu']['height']+2)+'px',
       
   633 				'position'	: 	'relative'
       
   634 			});
       
   635 		}
       
   636 	};
       
   637 
       
   638 	/*
       
   639 	 * NOKIA.helper functions
       
   640 	 */
       
   641 	NOKIA.namespace('helper.loadScript');
       
   642 	NOKIA.helper = {
       
   643 		path : document.location.pathname,
       
   644 		errorDailog	: null,
       
   645 		prefDailog : null,
       
   646 		intervalId : null,
       
   647 		infoPlistCounter : false,
       
   648 		IconFileCounter  : false,
       
   649 		loadScript : function(path)
       
   650 		{
       
   651 			var head = document.getElementsByTagName("head")[0] || document.documentElement;
       
   652 			var script = document.createElement("script");
       
   653 	
       
   654 			script.type = "text/javascript";
       
   655 			script.src = src;
       
   656 			head.appendChild( script );
       
   657 		},
       
   658 
       
   659 		loadPreferences : function()
       
   660 		{
       
   661 			if(/dreamweaver/i.test(navigator.userAgent))
       
   662 			{
       
   663 				$("#dwDeviceHelp")[0].className = '';
       
   664 				$("#resSupportLink")[0].className = 'hide';
       
   665 			}
       
   666 			//	Selecting Resoltion
       
   667 			var resOptions = $("#resOptions")[0];
       
   668 			for(var i=0; i<NOKIA.resolution.length; i++)
       
   669 			{
       
   670 				if(NOKIA.resolution[i] == NOKIA.currentDevice)
       
   671 				{
       
   672 					resOptions.options[i].selected = true;
       
   673 					$("#resSupportLink")[0].href = resOptions.options[i].value;
       
   674 					break;
       
   675 				}				
       
   676 			}
       
   677 			
       
   678 			//	Selecting Orientation
       
   679 			if(NOKIA.mode == 'portrait')
       
   680 				$('#input_portrait')[0].checked = true;
       
   681 			else
       
   682 				$('#input_landscape')[0].checked = true;
       
   683 
       
   684 			if (!NOKIA.emulator.orientationSupports()) {
       
   685 				if (NOKIA.mode == 'portrait') 
       
   686 					$("#input_landscape")[0].disabled = true;
       
   687 				else 
       
   688 					$("#input_portrait")[0].disabled = true;
       
   689 					
       
   690 				$("#Orientation_Info").html("Not supported");
       
   691 				$("#Orientation_Info").show();
       
   692 				$("#Orientation_Controls").hide();
       
   693 			}
       
   694 			else {
       
   695 				$("#input_landscape")[0].disabled = false;
       
   696 				$("#input_portrait")[0].disabled = false;
       
   697 
       
   698 				$("#Orientation_Info").hide();
       
   699 				$("#Orientation_Controls").show();
       
   700 			}
       
   701 			
       
   702 			//	Selecting Version
       
   703 			if(NOKIA.version == 'WRT 1.0')
       
   704 				$('#wrt_version_1_0')[0].checked = true;
       
   705 			else
       
   706 				$('#wrt_version_1_1')[0].checked = true;
       
   707 				
       
   708 			//	HomeScreen Support
       
   709 			if(NOKIA.deviceList[NOKIA.currentDevice].homeScreenSupport)
       
   710 			{
       
   711 				if (typeof NOKIA.emulator.plist.MiniViewEnabled != 'undefined') {
       
   712 					if (NOKIA.emulator.plist.MiniViewEnabled == 'false') 
       
   713 						$('#HS_Control_Info').html("<span id='wrt-help' onclick='javascipt:NOKIA.helper.showMiniviewHelp();'></span><strong>Not Enabled</strong><br/><small>Click on help to read more about enabling Mini view support</small>");
       
   714 					else 
       
   715 						$('#HS_Control_Info').html("Supported");
       
   716 				}
       
   717 				else
       
   718 					$('#HS_Control_Info').html("<span id='wrt-help'></span>Not Supported");
       
   719 
       
   720 				$('#HS_Control_Info').show();
       
   721 
       
   722 			}
       
   723 			else
       
   724 			{
       
   725 				$('#HS_Control_Info').html("Not Supported for the selected Device resolution");
       
   726 				$('#HS_Control_Info').show();
       
   727 			}
       
   728 		},
       
   729 
       
   730 		getInfo : function(url, callback)
       
   731 		{
       
   732 			try {
       
   733 				var xhr = this.ajax();
       
   734 				
       
   735 				if ((/AppleWebKit/i.test(navigator.userAgent)))
       
   736 					xhr.open("GET", url, false);
       
   737 				else
       
   738 					xhr.open("GET", url, true);
       
   739 				
       
   740 				
       
   741 				xhr.onreadystatechange = function() 
       
   742 				{
       
   743 						// readyState = 4 ; "complete"
       
   744 						if (xhr.readyState==4)
       
   745 						{
       
   746 							// status = 200 ; "ok"
       
   747 							if( (xhr.status == 200) || (!xhr.status) )
       
   748 							{
       
   749 								callback(true, xhr);
       
   750 							}
       
   751 							else
       
   752 							{ 
       
   753 								callback(false, xhr);
       
   754 							}
       
   755 						}
       
   756 	
       
   757 				}
       
   758 				xhr.send(null);
       
   759 			} catch (e) {
       
   760 				if (e.name == 'NS_ERROR_FILE_NOT_FOUND') {
       
   761 					callback(false, xhr);
       
   762 				}			
       
   763 			}
       
   764 		},
       
   765 
       
   766 		getInfoCallback : function(flag, xhr)
       
   767 		{
       
   768 			//	If Info.plis NOT FOUND / FAILED LOAD
       
   769 			//	an ERROR!, unable to proceed further
       
   770 			// 	STOP there
       
   771 			if(!flag)
       
   772 			{
       
   773 				if(!NOKIA.helper.infoPlistCounter)
       
   774 				{
       
   775 					NOKIA.helper.infoPlistCounter = true;
       
   776 					NOKIA.helper.getInfo('info.plist', NOKIA.helper.getInfoCallback);
       
   777 					return false;
       
   778 				}
       
   779 
       
   780 				NOKIA.helper.error('Unable to intialize the widget, failed to process Info.plist file. <br/>Please ensure <strong style="color:#efe352;">Info.plist</strong> file exists on the widget root folder <br/>or check the filename of <strong style="color:#efe352;">Info.plist</strong> It is case-sensitive');
       
   781 				return false;
       
   782 			}
       
   783 			else{
       
   784 				
       
   785 				var xmlString = xhr.responseText;
       
   786 				
       
   787 				// do some cheating here
       
   788 				xmlString = xmlString.replace(/<\s*true\s*\/>/gi, "<string>true</string>");
       
   789 				xmlString = xmlString.replace(/<\s*false\s*\/>/gi, "<string>false</string>");
       
   790 	
       
   791 			/*
       
   792 			 * 	DomParser Logic
       
   793 				var appXml = new DOMParser();
       
   794 				var xmlobject = appXml.parseFromString(xmlString, "text/xml");
       
   795 			 */
       
   796 			
       
   797 				//	return the JSON Object
       
   798 				NOKIA.helper.validate(xml2json.parser(xmlString));
       
   799 			}
       
   800 			
       
   801 		},
       
   802 		
       
   803 		getIconCallback : function(flag, xhr)
       
   804 		{
       
   805 			
       
   806 			if(!flag)
       
   807 			{
       
   808 				if(!NOKIA.helper.IconFileCounter)
       
   809 				{
       
   810 					NOKIA.helper.IconFileCounter = true;
       
   811 					NOKIA.helper.getInfo('icon.png', NOKIA.helper.getIconCallback);
       
   812 					return false;	
       
   813 				}
       
   814 			}
       
   815 			else
       
   816 				NOKIA.emulator.iconFile =  (NOKIA.helper.IconFileCounter) ? "icon.png" : "Icon.png";
       
   817 		},
       
   818 		
       
   819 
       
   820 		validate : function(xmlObject)
       
   821 		{
       
   822 			window.xmlObject = xmlObject;
       
   823 			
       
   824 			//	<plist>
       
   825 			if(typeof xmlObject.plist != 'object' || xmlObject.plist == 'undefined')
       
   826 			{
       
   827 				NOKIA.helper.error('Corrupted Info.plist file');
       
   828 				return false;
       
   829 			}
       
   830 			//	<dict>
       
   831 			xmlObject = xmlObject.plist;
       
   832 			if(typeof xmlObject.dict != 'object' || xmlObject.dict == 'undefined')
       
   833 			{
       
   834 				NOKIA.helper.error('Corrupted Info.plist file');
       
   835 				return false;
       
   836 			}
       
   837 
       
   838 			//	<key>
       
   839 			xmlObject = xmlObject.dict;
       
   840 			if(typeof xmlObject.key != 'object' || xmlObject.key == 'undefined')
       
   841 			{
       
   842 				NOKIA.helper.error('Corrupted Info.plist file');
       
   843 				return false;
       
   844 			}
       
   845 
       
   846 			//	<string>
       
   847 			if(typeof xmlObject.string != 'object' || xmlObject.string == 'undefined')
       
   848 			{
       
   849 				NOKIA.helper.error('Corrupted Info.plist file');
       
   850 				return false;
       
   851 			}
       
   852 
       
   853 			//	num of <key> = num of <string>
       
   854 			if(xmlObject.key.length != xmlObject.string.length)
       
   855 			{
       
   856 				NOKIA.helper.error('Corrupted Info.plist file');
       
   857 				return false;
       
   858 			}
       
   859 
       
   860 			for(var val in xmlObject.key)
       
   861 			{
       
   862 				if(NOKIA.emulator.plist[xmlObject.key[val]] != 'undefined'){
       
   863 					NOKIA.emulator.plist[xmlObject.key[val]] = xmlObject.string[val].toString(); 
       
   864 				}
       
   865 			}
       
   866 
       
   867 			try {
       
   868 				if(typeof NOKIA.emulator.plist.DisplayName != 'undefined'){
       
   869 					document.title = NOKIA.emulator.plist.DisplayName + ' - ' + document.title;
       
   870 				}
       
   871 			} catch (e) {}
       
   872 
       
   873 			//	Add UI-Event listeners
       
   874 			NOKIA.helper.addListeners();
       
   875 			NOKIA.layout.init();
       
   876 			NOKIA.emulator.render();
       
   877 		},
       
   878 
       
   879 
       
   880 		ajax : function() 
       
   881 		{
       
   882 			//	xmlHttpRequest object	
       
   883 			var request = null;
       
   884 		
       
   885 		    // branch for native XMLHttpRequest object
       
   886 		    if(window.XMLHttpRequest && !(window.ActiveXObject)) {
       
   887 		    	try 
       
   888 				{
       
   889 					request = new XMLHttpRequest();
       
   890 					try
       
   891 					{
       
   892 						//	attach the Bypass code, if the browser is firefox
       
   893 						if(netscape.security.PrivilegeManager.enablePrivilege)
       
   894 						{
       
   895 							//	duplicate the function
       
   896 							request._open = request.open;
       
   897 							
       
   898 							//	redefine the function definition
       
   899 							request.open = function(method, url, flag)
       
   900 							{
       
   901 								try
       
   902 								{
       
   903 									// Enable Universal Browser Read
       
   904 									netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");
       
   905 		
       
   906 									//	call the native XmlHttpRequest.open method
       
   907 									this._open(method, url, flag);
       
   908 								}catch(e)
       
   909 								{
       
   910 									//	call the native XmlHttpRequest.open method
       
   911 									this._open(method, url, flag);
       
   912 								}
       
   913 							}
       
   914 						}
       
   915 					}
       
   916 					catch(e)
       
   917 					{
       
   918 						//	eatup all exceptions
       
   919 					}
       
   920 				} 
       
   921 				catch(e) {
       
   922 					request = null;
       
   923 		        }
       
   924 		    // branch for IE/Windows ActiveX version
       
   925 		    } else if(window.ActiveXObject) {
       
   926 		       	try {
       
   927 		        	request = new ActiveXObject("Msxml2.XMLHTTP");
       
   928 		      	} catch(e) {
       
   929 		        	try {
       
   930 		          		request = new ActiveXObject("Microsoft.XMLHTTP");
       
   931 		        	} catch(e) {
       
   932 		          		alert('Failed to create XmlHttprequest');
       
   933 						return null;
       
   934 		        	}
       
   935 				}
       
   936 		    }
       
   937 			
       
   938 			return (request);
       
   939 		},
       
   940 
       
   941 		error : function(msg)
       
   942 		{
       
   943 			if(NOKIA.menu.enable_log)
       
   944 				NOKIA.layout.log("log", msg);
       
   945 			
       
   946 			$("#Dialog").html(msg);
       
   947 			$("#Dialog").dialog('open');
       
   948 		},
       
   949 
       
   950 		createCookie : function(name,value) 
       
   951 		{
       
   952 			var days = 240000;
       
   953 		    if (days) {
       
   954 				var date = new Date();
       
   955 				date.setTime(date.getTime()+(days*24*60*60*1000));
       
   956 				var expires = "; expires="+date.toGMTString();
       
   957 			}
       
   958 			else var expires = "";
       
   959 			document.cookie = "Nokia_WRT#" + NOKIA.helper.path + "#" + name + "=" + value + expires + "; path=/";
       
   960 		},
       
   961 		
       
   962 		readCookie : function(name) 
       
   963 		{
       
   964 			var nameEQ = "Nokia_WRT#" + NOKIA.helper.path + "#" + name + "=";
       
   965 			var ca = document.cookie.split(';');
       
   966 			for(var i=0;i < ca.length;i++) {
       
   967 				var c = ca[i];
       
   968 				while (c.charAt(0)==' ') c = c.substring(1,c.length);
       
   969 				if (c.indexOf(nameEQ) == 0) {
       
   970 					return c.substring(nameEQ.length,c.length);
       
   971 				}
       
   972 			}
       
   973 			return undefined;
       
   974 		},
       
   975 
       
   976 		toggle : function(ele)
       
   977 		{
       
   978 			if (NOKIA.emulator.orientationSupports()) {
       
   979 //				var mode = (NOKIA.mode == 'portrait') ? 'landscape' : 'portrait';
       
   980 				NOKIA.emulator.setMode(ele.value);
       
   981 			}
       
   982 			else
       
   983 			{	
       
   984 				ele.checked = false;
       
   985 				if(ele.value == 'portrait')
       
   986 					$("#input_landscape")[0].checked = true;
       
   987 				else
       
   988 					$("#input_portrait")[0].checked = true;
       
   989 			}
       
   990 		},
       
   991 
       
   992 		version : function(ele)
       
   993 		{
       
   994 			if (confirm('Would you like to reload the widget to apply the changes on the Version settings?')) 
       
   995 			{
       
   996 				NOKIA.helper.createCookie('_WRT_VERSION', ele.value);
       
   997 				$("#loaderDiv").html("Applying the " + ele.value + ", please wait...");
       
   998 				$("#loaderDiv").show();
       
   999 				$("#loaderDiv")[0].className = 'green';
       
  1000 				
       
  1001 				$("#PreferencesTab").dialog('close');
       
  1002 				
       
  1003 				window.setTimeout(function(){
       
  1004 					document.location = document.location;
       
  1005 				}, 3000);
       
  1006 			}
       
  1007 			else
       
  1008 			{
       
  1009 				ele.checked = false;
       
  1010 				if(ele.value != 'WRT 1.0')
       
  1011 					$("#wrt_version_1_0")[0].checked = true;
       
  1012 				else
       
  1013 					$("#wrt_version_1_1")[0].checked = true;
       
  1014 			}
       
  1015 		},
       
  1016 
       
  1017 		addListeners : function()
       
  1018 		{
       
  1019 			/*
       
  1020 			 * Render Emulator for Interaction
       
  1021 			 */
       
  1022 			NOKIA.helper.prefDailog = $("#PreferencesTab").dialog({
       
  1023 					width: 550,	minWidth: 550, minHeight: 350, height: 350, autoOpen: false, position : top, title : '&nbsp;',
       
  1024 					buttons : {
       
  1025 						Close : function(){
       
  1026 							$("#PreferencesTab").dialog('close');
       
  1027 
       
  1028 							//	Hack for Mac firefox
       
  1029 							if(/Mac/i.test(navigator.userAgent))
       
  1030 							{
       
  1031 								$("#WidgetArea iframe").css({overflow:'auto'});
       
  1032 							}
       
  1033 							
       
  1034 							//	select index : 0 tab selected
       
  1035 							$('#tabs').tabs( 'select' , 0);
       
  1036 						}
       
  1037 					}
       
  1038 				});
       
  1039 				
       
  1040 			$('#PreferencesBtn').click(function(){
       
  1041 				//	Load preferences
       
  1042 				NOKIA.helper.loadPreferences();
       
  1043 				$('#PreferencesTab').dialog('open');
       
  1044 
       
  1045 				//	Hack for Mac firefox
       
  1046 				if(/Mac/i.test(navigator.userAgent))
       
  1047 				{
       
  1048 					$("#WidgetArea iframe").css({overflow:'hidden'});
       
  1049 				}
       
  1050 			});
       
  1051 			
       
  1052 			$('#input_portrait').change(function(){
       
  1053 				NOKIA.helper.toggle(this);
       
  1054 			});
       
  1055 
       
  1056 			$('#input_landscape').change(function(){
       
  1057 				NOKIA.helper.toggle(this);
       
  1058 			});
       
  1059 
       
  1060 			$('#resOptions').change(function(ele){
       
  1061 				ele = ele.target || this;
       
  1062 				
       
  1063 				NOKIA.currentDevice = ele.options[ele.selectedIndex].text;
       
  1064 				$("#resSupportLink")[0].href = ele.value;
       
  1065 		
       
  1066 				//	SAVE the device DATA
       
  1067 				NOKIA.helper.createCookie('NOKIA_EMULATOR_DEVICE', NOKIA.currentDevice);
       
  1068 		
       
  1069 				NOKIA.emulator.render();
       
  1070 				NOKIA.helper.loadPreferences();
       
  1071 			});
       
  1072 
       
  1073 			//	Hack for Mac firefox
       
  1074 			if (/Mac/i.test(navigator.userAgent)) {
       
  1075 				if (!(/AppleWebKit/i.test(navigator.userAgent))) {
       
  1076 					$("#resOptions")[0].size = '4';
       
  1077 				}
       
  1078 			}
       
  1079 
       
  1080 
       
  1081 			//	WRT Version controls
       
  1082 			$('#wrt_version_1_0').change(function(){
       
  1083 				NOKIA.helper.version(this);
       
  1084 			});
       
  1085 			
       
  1086 			$('#wrt_version_1_1').change(function(){
       
  1087 				NOKIA.helper.version(this);
       
  1088 			});
       
  1089 
       
  1090 
       
  1091 			$("#orientationIcon").click(function(){
       
  1092 				var mode = (NOKIA.mode == 'portrait') ? 'landscape' : 'portrait';
       
  1093 				NOKIA.emulator.setMode(mode);
       
  1094 				$("#WidgetArea")[0].className = 'hs_'+NOKIA.mode;
       
  1095 			});
       
  1096 
       
  1097 
       
  1098 			$("#iframeMask").click(function(){
       
  1099 
       
  1100 				$("#PreferencesBtn").show();
       
  1101 				$("#orientationIcon").hide();
       
  1102 				$("#iframeMask").hide();
       
  1103 				$("#loaderDiv").hide();
       
  1104 
       
  1105 				NOKIA.menu.is_dimmed = false;
       
  1106 				
       
  1107 				$("#WidgetArea")[0].className = '';
       
  1108 				
       
  1109 				NOKIA.menu.softkeys_visibility = true;
       
  1110 				NOKIA.menu.showSoftKeys();
       
  1111 
       
  1112 			});
       
  1113 
       
  1114 
       
  1115 			//	MenuItems DIV events
       
  1116 			$("#MenuItemsArea").mouseover(function(){
       
  1117 				if(NOKIA.helper.intervalId)
       
  1118 					clearInterval(NOKIA.helper.intervalId);
       
  1119 
       
  1120 				$("#MenuItemsArea").show();
       
  1121 			});
       
  1122 
       
  1123 			$("#MenuItemsArea").mouseout(function(){
       
  1124 				if(NOKIA.helper.intervalId)
       
  1125 					clearInterval(NOKIA.helper.intervalId);
       
  1126 
       
  1127 				NOKIA.helper.intervalId = setTimeout(function(){
       
  1128 					NOKIA.menu.cancel()
       
  1129 				}, 500);
       
  1130 			});
       
  1131 
       
  1132 
       
  1133 			// Tabs
       
  1134 			$('#tabs').tabs({
       
  1135 				select : function(event, ui){
       
  1136 					if(parseInt(ui.index) == 1)
       
  1137 					{
       
  1138 						$("#event-icons").show();
       
  1139 						$("#event-battery-info").hide();
       
  1140 						$("#event-messaging-info").hide();
       
  1141 						$("#event-memory-info").hide();
       
  1142 						
       
  1143 						//	WRT versionn check
       
  1144 						if(NOKIA.version == 'WRT 1.1')
       
  1145 						{
       
  1146 							$("#event-messaging")[0].className = 'active';
       
  1147 							$("#event-memory")[0].className = 'active';
       
  1148 						}else
       
  1149 						{
       
  1150 							$("#event-messaging")[0].className = 'inactive';
       
  1151 							$("#event-memory")[0].className = 'inactive';
       
  1152 						}
       
  1153 						$("#event-battery")[0].className = 'active';
       
  1154 					}else if(parseInt(ui.index) == 0)
       
  1155 					{
       
  1156 						$("#settings-view").show();
       
  1157 						$("#mini-view-info").hide();
       
  1158 					}
       
  1159 				}
       
  1160 			});
       
  1161 
       
  1162 			
       
  1163 			/*	
       
  1164 			 * 	Event triggering
       
  1165 			 */
       
  1166 			
       
  1167 			//	for battery
       
  1168 			$("#event-battery").click(function(event){
       
  1169 				if(event.target.className == 'active')
       
  1170 				{
       
  1171 					$("#event-icons").hide();
       
  1172 					$("#event-battery-info").show();
       
  1173 
       
  1174 /*
       
  1175 				$('#slider').slider('option', 'value', NOKIA.emulator.child._BRIDGE_REF.helper.getBatteryStrength());
       
  1176 				NOKIA.emulator.child._BRIDGE_REF.helper.getBatteryStrength()
       
  1177 				$('#slider').slider('option', 'value', 10);
       
  1178 				$('#slider').slider();
       
  1179 */
       
  1180 				}
       
  1181 			});
       
  1182 
       
  1183 			$("#event-battery-back").click(function(event){
       
  1184 				$("#event-icons").show();
       
  1185 				$("#event-battery-info").hide();
       
  1186 			});
       
  1187 
       
  1188 
       
  1189 			//	for messaging
       
  1190 			$("#event-messaging").click(function(event){
       
  1191 				if(event.target.className == 'active')
       
  1192 				{
       
  1193 					$("#event-icons").hide();
       
  1194 					$("#event-messaging-info").show();
       
  1195 				}
       
  1196 			});
       
  1197 
       
  1198 			$("#event-messaging-back").click(function(event){
       
  1199 				$("#event-icons").show();
       
  1200 				$("#event-messaging-info").hide();
       
  1201 			});
       
  1202 
       
  1203 
       
  1204 			//	for memory
       
  1205 			$("#event-memory").click(function(event){
       
  1206 				if(event.target.className == 'active')
       
  1207 				{
       
  1208 					$("#event-icons").hide();
       
  1209 					$("#event-memory-info").show();
       
  1210 				}
       
  1211 			});
       
  1212 
       
  1213 			$("#event-memory-back").click(function(event){
       
  1214 				$("#event-icons").show();
       
  1215 				$("#event-memory-info").hide();
       
  1216 			});
       
  1217 
       
  1218 
       
  1219 			//	for minView more info
       
  1220 			$("#mini-view-back").click(function(event){
       
  1221 				$("#settings-view").show();
       
  1222 				$("#mini-view-info").hide();
       
  1223 			});
       
  1224 
       
  1225 
       
  1226 			// Slider
       
  1227 			$('#slider').slider({
       
  1228 				range: true,
       
  1229 				min : 0,
       
  1230 				max : 100,
       
  1231 				step : 1,
       
  1232 				value : 10,
       
  1233 				animate: true,
       
  1234 				slide: function(event, ui) {
       
  1235 					$("#slider-value-panel > span").html(ui.value.toString());
       
  1236 				}
       
  1237 				});
       
  1238 
       
  1239 			//	Bind Buttons to trigger values to WRT 1.0 / 1.1 bindings
       
  1240 			
       
  1241 			$("#connect-charger").click(NOKIA.helper.triggerEvents);
       
  1242 			$("#disconnect-charger").click(NOKIA.helper.triggerEvents);
       
  1243 			$("#update-batter-strength").click(NOKIA.helper.triggerEvents);
       
  1244 
       
  1245 			$("#send-sms").click(NOKIA.helper.triggerEvents);
       
  1246 			$("#send-mms").click(NOKIA.helper.triggerEvents);
       
  1247 
       
  1248 			$("#connect-memory-card").click(NOKIA.helper.triggerEvents);
       
  1249 			$("#disconnect-memory-card").click(NOKIA.helper.triggerEvents);
       
  1250 			
       
  1251 		},
       
  1252 		
       
  1253 		setHomeScreen : function()
       
  1254 		{
       
  1255 			//	HomeScreen Support
       
  1256 			if (NOKIA.deviceList[NOKIA.currentDevice].homeScreenSupport) {
       
  1257 
       
  1258 				if (typeof NOKIA.emulator.plist.MiniViewEnabled != 'undefined') {
       
  1259 					if (NOKIA.emulator.plist.MiniViewEnabled != 'false') 
       
  1260 					{
       
  1261 						$("#WidgetArea")[0].className = 'hs_' + NOKIA.mode;
       
  1262 						
       
  1263 						//	menu handlining
       
  1264 						NOKIA.menu.softkeys_visibility = false;
       
  1265 						NOKIA.menu.cancel();
       
  1266 						NOKIA.menu.is_dimmed = true;
       
  1267 						
       
  1268 
       
  1269 						$("#loaderDiv").html("Click on widget for Return to Full view");
       
  1270 						$("#loaderDiv")[0].className = 'green';
       
  1271 						$("#loaderDiv").show();
       
  1272 
       
  1273 						$("#iframeMask").show();
       
  1274 						$("#orientationIcon").show();
       
  1275 						$("#PreferencesBtn").hide();
       
  1276 
       
  1277 						$("#PreferencesTab").dialog('close');
       
  1278 						return true;
       
  1279 					}
       
  1280 				}
       
  1281 			}
       
  1282 			return false;			
       
  1283 		},
       
  1284 		
       
  1285 		getElementsLengthInObject : function(items){
       
  1286 			var count = 0;
       
  1287 			for (var i in items) 
       
  1288 			{
       
  1289 				if(!items[i].isDimmed)
       
  1290 					count++;
       
  1291 			}
       
  1292 			
       
  1293 			return count;
       
  1294 		},
       
  1295 		
       
  1296 		triggerEvents : function(event)
       
  1297 		{
       
  1298 			if(typeof event.target.id == 'undefined')
       
  1299 			return false;
       
  1300 			
       
  1301 			switch(event.target.id)
       
  1302 			{
       
  1303 				//	for battery
       
  1304 				case 'connect-charger': 
       
  1305 										NOKIA.helper.trigger("power", "chargerconnected", 1);
       
  1306 										if(NOKIA.version == 'WRT 1.1')
       
  1307 											NOKIA.helper.triggerSapi("Service.SysInfo", "Battery.ChargingStatus", {Status: 1});
       
  1308 										break;
       
  1309 
       
  1310 				case 'disconnect-charger': 
       
  1311 										NOKIA.helper.trigger("power", "chargerconnected", 0);
       
  1312 										if(NOKIA.version == 'WRT 1.1')
       
  1313 											NOKIA.helper.triggerSapi("Service.SysInfo", "Battery.ChargingStatus", {Status: 0});
       
  1314 										break;
       
  1315 
       
  1316 				case 'update-batter-strength': 
       
  1317 										var chargeValue = parseInt($('#slider').slider('value'));
       
  1318 										NOKIA.helper.trigger("power", "chargelevel", chargeValue);
       
  1319 										if(NOKIA.version == 'WRT 1.1')
       
  1320 											NOKIA.helper.triggerSapi("Service.SysInfo", "Battery.BatteryStrength", {Status: chargeValue});
       
  1321 										break;
       
  1322 
       
  1323 				//	for messaging
       
  1324 				case 'send-sms': 
       
  1325 										if(NOKIA.version == 'WRT 1.1')
       
  1326 											NOKIA.helper.triggerSapi("Service.Messaging", "NewMessage", {MessageType: 'SMS'});
       
  1327 										break;
       
  1328 				case 'send-mms': 
       
  1329 										if(NOKIA.version == 'WRT 1.1')
       
  1330 											NOKIA.helper.triggerSapi("Service.Messaging", "NewMessage", {MessageType: 'MMS'});
       
  1331 										break;
       
  1332 
       
  1333 				//	for memory
       
  1334 				case 'connect-memory-card': 
       
  1335 										if(NOKIA.version == 'WRT 1.1')
       
  1336 											NOKIA.helper.triggerSapi("Service.SysInfo", "Memory.MemoryCard", {Status: 1});
       
  1337 										break;
       
  1338 				case 'disconnect-memory-card': 
       
  1339 										if(NOKIA.version == 'WRT 1.1')
       
  1340 											NOKIA.helper.triggerSapi("Service.SysInfo", "Memory.MemoryCard", {Status: 0});
       
  1341 										break;
       
  1342 			}
       
  1343 		},	
       
  1344 
       
  1345 		triggerSapi : function(provider, eventType, data){
       
  1346 			NOKIA.emulator.child.device.implementation.triggerListener(provider, eventType, data);
       
  1347 		},	
       
  1348 
       
  1349 		trigger : function(provider, eventType, data){
       
  1350 			NOKIA.emulator.child.widget.triggerListener(provider, eventType, data);
       
  1351 		},
       
  1352 		
       
  1353 		showMiniviewHelp : function(){
       
  1354 			$("#settings-view").hide();
       
  1355 			$("#mini-view-info").show();
       
  1356 		},
       
  1357 		
       
  1358 		checkDependencies : function(){
       
  1359 			
       
  1360 			for(var key in NOKIA.scriptsLoaded)
       
  1361 			{
       
  1362 				if(!NOKIA.scriptsLoaded[key])
       
  1363 					return false;
       
  1364 			}
       
  1365 
       
  1366 			//	for LSK
       
  1367 			NOKIA.menu.setLsk(NOKIA.emulator.child.menu.show);
       
  1368 		
       
  1369 			//	for RSK
       
  1370 			NOKIA.menu.setRsk(NOKIA.menu.exit);
       
  1371 
       
  1372 			return true;
       
  1373 		}
       
  1374 	};
       
  1375 	
       
  1376 
       
  1377 	/*
       
  1378 	 * NOKIA.layout functions
       
  1379 	 */
       
  1380 	NOKIA.namespace('layout');
       
  1381 	NOKIA.layout = {
       
  1382 		_console_minimized : true,
       
  1383 		_console_enabled : false,
       
  1384 		_consoleWindowHeight : 200,
       
  1385 		_consoleHeaderHeight : 31,
       
  1386 
       
  1387 		init : function(){
       
  1388 			
       
  1389 			//	Toggle console window
       
  1390 			$('#Console-Toggle-Button').click(function(){
       
  1391 				
       
  1392 				NOKIA.layout._console_minimized = (NOKIA.layout._console_minimized) ? false : true;
       
  1393 				NOKIA.layout.render();
       
  1394 			});
       
  1395 			
       
  1396 			// clear Log
       
  1397 			$("#Console-Clear-Button").click(function(){
       
  1398 				$("#preview-ui-bottom-body")[0].innerHTML = '';
       
  1399 			});
       
  1400 
       
  1401 
       
  1402 			$('#preview-ui-bottom').show();
       
  1403 			NOKIA.layout.render();
       
  1404 		},
       
  1405 		
       
  1406 		log : function(type, msg){
       
  1407 			var p = document.createElement('p');
       
  1408 			p.className = type;
       
  1409 			p.innerHTML = msg;
       
  1410 			var divBody = $('#preview-ui-bottom-body')
       
  1411 			divBody.append(p);
       
  1412 			divBody[0].scrollTop = divBody[0].scrollHeight;
       
  1413 		},
       
  1414 		
       
  1415 		
       
  1416 		render : function(){
       
  1417 			var _width = parseInt(window.innerWidth);
       
  1418 			var _height = parseInt(window.innerHeight);
       
  1419 			
       
  1420 			if(!NOKIA.layout._console_enabled)
       
  1421 			{
       
  1422 				$('#preview-ui-bottom').css({
       
  1423 					display: 'none'
       
  1424 				});
       
  1425 				
       
  1426 				$('#preview-ui-top').css({
       
  1427 					height: _height+'px'
       
  1428 				});
       
  1429 
       
  1430 				return false;
       
  1431 			}
       
  1432 			
       
  1433 			
       
  1434 			if(!NOKIA.layout._console_minimized)
       
  1435 			{
       
  1436 				$('#Console-Toggle-Button')[0].className = 'open';
       
  1437 				
       
  1438 				//	set STYLE details for TOP window
       
  1439 				$('#preview-ui-top').css({
       
  1440 					height: parseInt(_height - NOKIA.layout._consoleWindowHeight) + 'px'
       
  1441 				});
       
  1442 				
       
  1443 				//	set STYLE details for Bottom window
       
  1444 				$('#preview-ui-bottom').css({
       
  1445 					height: NOKIA.layout._consoleWindowHeight + 'px',
       
  1446 					display : 'block'
       
  1447 				});
       
  1448 
       
  1449 				$('#preview-ui-bottom-header').css({
       
  1450 					height: NOKIA.layout._consoleHeaderHeight + 'px'
       
  1451 				});
       
  1452 
       
  1453 				$('#preview-ui-bottom-body').css({
       
  1454 					height: parseInt(NOKIA.layout._consoleWindowHeight - NOKIA.layout._consoleHeaderHeight) + 'px',
       
  1455 					display : 'block'
       
  1456 				});
       
  1457 				
       
  1458 				// Auto scroll when console window opened from MINIMIZED => MAXIMIZED state
       
  1459 				window.setTimeout(function(){
       
  1460 					$('#preview-ui-bottom-body')[0].scrollTop = $('#preview-ui-bottom-body')[0].scrollHeight;
       
  1461 				}, 100);
       
  1462 				
       
  1463 			}else{
       
  1464 				$('#Console-Toggle-Button')[0].className = 'close';
       
  1465 
       
  1466 				//	set STYLE details for TOP window
       
  1467 				$('#preview-ui-top').css({
       
  1468 					height: parseInt(_height - NOKIA.layout._consoleHeaderHeight) + 'px'
       
  1469 				});
       
  1470 				
       
  1471 				//	set STYLE details for Bottom window
       
  1472 				$('#preview-ui-bottom').css({
       
  1473 					height: NOKIA.layout._consoleHeaderHeight + 'px',
       
  1474 					display : 'block'
       
  1475 				});
       
  1476 
       
  1477 				$('#preview-ui-bottom-header').css({
       
  1478 					height: NOKIA.layout._consoleHeaderHeight + 'px',
       
  1479 					display : 'block'
       
  1480 				});
       
  1481 
       
  1482 				$('#preview-ui-bottom-body').css({
       
  1483 					display : 'none'
       
  1484 				});
       
  1485 			}
       
  1486 		}
       
  1487 		
       
  1488 	};
       
  1489 }
       
  1490 
       
  1491 $(document).ready(function () {
       
  1492 	NOKIA.init();	
       
  1493 });
       
  1494 
       
  1495 window.onresize = NOKIA.layout.render;