$.fn.addTouch = function() {
		this.each(function(i,el){
			$(el).bind('touchstart touchmove touchend touchcancel',function(){handleTouch(event);});
		});
		
		var handleTouch = function(event) {
			var touches = event.changedTouches,
			first = touches[0],
			type = '';
			
			switch(event.type)
			{
				case 'touchstart':
					type = 'mousedown';
					break;
					
				case 'touchmove':
					type = 'mousemove';
					break;        
					
				case 'touchend':
					type = 'mouseup';
					break;
					
				default:
					return;
			}
			
			var simulatedEvent = document.createEvent('MouseEvent');
			simulatedEvent.initMouseEvent(type, true, true, window, 1, first.screenX, first.screenY, first.clientX, first.clientY, false, false, false, false, 0/*left*/, null);							 
			first.target.dispatchEvent(simulatedEvent);
			event.preventDefault();
		};
};

var preBuiltState = true;
var themeName = "";
var themeBuiltYet = false;

function showIcons() {
   $("#springboard-bar").fadeIn(2000);
   $("#springboard-items").fadeIn(1000);
}

$(document).ready(function() {
   var cache = [];
   $.preLoadImages = function () {
      var args_len = arguments.length;
      for (var i = args_len; i--;) {
         var cacheImage = document.createElement('img');
         cacheImage.src = arguments[i];
         cache.push(cacheImage);
      }
   }
   $.preLoadImages("../img/iphone/load.gif", "../img/iphone/loading.gif", "../img/iphone/bigloader.gif", "../img/iphone/clean.png", "../img/iphone/arrow.gif", "../img/iphone/black_arrow.png", "../img/iphone/close.png", "../img/iphone/drop.png", "../img/iphone/iphone4-bg.png", "../img/iphone/iphone-bg2.png", "../img/iphone/question.png", "../img/iphone/spotlight.png", "../img/iphone/spotlight-white.png", "../img/iphone/uploadloader.gif", "../img/iphone/uploadtinyloader.gif", "../img/iphone/battery.png", "../img/iphone/batteryFill.png", "../img/iphone/batteryLowFill.png", "../img/iphone/batteryCharging.png", "../img/iphone/transferProgress.gif");
   $("#iphone").disableTextSelect();
   $(document).click(function() {$("#iphone .icon").removeClass('selected');});
   $("#springboard .icon").click(function (e) {
      e.stopPropagation();
   });

   $("#unlock-slider").slider({
      animate: true,
      slide: function (e, ui) {
         $("#slide-to-unlock").css("opacity", 1 - (parseInt($("#unlock-slider > .ui-slider-handle").position().left) / 70));
      },
      stop: function (e, ui) {
         if ($("#unlock-slider > .ui-slider-handle").position().left >= 200) {
	      $("#unlock-bottom").animate({
	         top: 480
	      }, 300);
	      $("#unlock-top").animate({
	         top: - 100
	      }, 300);
	      $("#iphone-inside").fadeOut("normal", function () {
	         $("#springboard").fadeIn();
		  $("#springboard-bar").fadeIn(1500);
	         $("#springboard-items").fadeIn(1000);
 	         $("#statusbar .lockicon").hide();
 	         $("#statusbar .addicon").slideDown();
	      });
         } else {
            $("#unlock-slider > .ui-slider-handle").animate({
               left: 0
            }, 400);
            $("#slide-to-unlock").animate({
               opacity: 1
            }, 200);
         }
      }
   }).addTouch();
   $("#power-slider").slider({
      animate: true,
      slide: function (e, ui) {
         $("#slide-to-power-off").css("opacity", 1 - (parseInt($("#power-slider > .ui-slider-handle").position().left) / 70));
      },
      stop: function (e, ui) {
         if ($("#power-slider > .ui-slider-handle").position().left >= 200) {
            $("#poweroff-bottom").animate({
               top: 480
            }, 500);
            $("#poweroff-top").animate({
               top: - 115
            }, 500);
	     $("#iphone-turnedon").fadeOut('slow', function() {
               $("#poweroff-inside").fadeOut();
		 $(this).css('display', 'none');
		 $(".lockscreenswitch").click();
		 setTimeout(function() {
		   $("#iphone-booting").show();
		   setTimeout(function() {
		     $("#iphone-booting").hide();
		     setTimeout(function() {$("#iphone-turnedon").fadeIn('slow');}, 1000);
		   }, 5000);
		 }, 500);
	     });
         } else {
            $("#power-slider > .ui-slider-handle").animate({
               left: 0
            }, 400);
            $("#slide-to-power-off").animate({
               opacity: 1
            }, 200);
         }
      }
   }).addTouch();
   $("#call-slider").slider({
      animate: true,
      slide: function (e, ui) {
         $("#slide-to-answer").css("opacity", 1 - (parseInt($("#call-slider > .ui-slider-handle").position().left) / 70));
      },
      stop: function (e, ui) {
         if ($("#call-slider > .ui-slider-handle").position().left >= 200) {
            $("#callme-bottom").animate({
               top: 480
            }, 500);
            $("#callme-top").animate({
               top: - 115
            }, 500);
	     $("#callme-inside").fadeOut();
         } else {
            $("#call-slider > .ui-slider-handle").animate({
               left: 0
            }, 400);
            $("#slide-to-answer").animate({
               opacity: 1
            }, 200);
         }
      }
   }).addTouch();
   $("#cancelpoweroff").click(function () {
      $("#poweroff-bottom").animate({
         top: 480
      }, 500);
      $("#poweroff-top").animate({
         top: - 115
      }, 500);
      $("#poweroff-inside").fadeOut();
   });

   $(".lockscreenswitch").click(function () {
      $("#springboarditems, #springboard-bar").fadeOut();
      $("#springboard, #statusbar .addicon").hide();
      $("#statusbar .lockicon").show();
      $("#iphone-inside").fadeIn();
      $("#unlock-bottom").animate({
         top: 389
      }, 300);
      $("#unlock-top").animate({
         top: 0
      }, 300);
      $("#unlock-slider .ui-slider-handle").animate({
         left: 0
      }, 400);
      $("#slide-to-unlock").animate({
         opacity: 1
      }, 200);
   });
   $(".poweroff").click(function () {
      $("#power-slider .ui-slider-handle").css('left', 0);
      $("#poweroff-inside").fadeIn();
      $("#poweroff-bottom").animate({
         top: 389
      }, 500);
      $("#poweroff-top").animate({
         top: 20
      }, 500);
      $("#slide-to-power-off").animate({
         opacity: 1
      }, 200);
   });
   $(".callme").click(function () {
      $("#poweroff-inside").fadeOut();
      $("#poweroff-bottom").animate({
         top: 480
      }, 500);
      $("#poweroff-top").animate({
         top: - 95
      }, 500);
      $("#call-slider .ui-slider-handle").css('left', 0);
      $("#callme-inside").fadeIn();
      $("#callme-bottom").animate({
         top: 389
      }, 500);
      $("#callme-top").animate({
         top: 0
      }, 500);
      $("#slide-to-answer").animate({
         opacity: 1
      }, 200);
   });
   refreshTime();
   lowerBatteryLevel();
   refreshDots(1);
});

function doIconAnimation(which) {
   if (themeBuiltYet == false) {
      if (which) {
         var left = '280px';
         var opposite = false;
      } else {
         var left = '-190px';
         var opposite = true;
      }
      var randomSrc = $(".ico_btn:eq(" + (Math.floor(Math.random() * $(".ico_btn img").size())) + ") img").attr('src');
      $("#iconanimation").html('').html("<img src='" + randomSrc + "' id='iconanimation-img' style='position:relative;left:" + left + "' />");
      $("#iconanimation-img").animate({
         left: 0
      }, 1700, function () {
         $(this).animate({
            top: '100px'
         }, 700, function () {
            setTimeout(function () {
               doIconAnimation(opposite);
            }, 200);
         });
      });
   }
}

function refreshDots(topage) {
   var out = "<span class='firstpage'>&nbsp;</span><!-- span class='spotlight'><img src='img/iphone/spotlight.png' /></span -->";
   $(".dot").each(function () {
      if ($(this).hasClass("currentdot")) {
         $(this).removeClass("currentdot");
      }
   });
   $(".sbpage").each(function () {
      pageNumber = $(this).attr("id").replace("springboard-page", "");
      $(this).css("left", ((pageNumber - 1) * 320) + "px");
      if (pageNumber == '1') {
         out = out + "<span class='dot currentdot' rel='" + pageNumber + "'>&bull;</span>";
      } else {
         out = out + "<span class='dot' rel='" + pageNumber + "'>&bull;</span>";
      }
   });
   out = out + "<span class='lastpage'>&nbsp;</span>";
   $(".pagedots").html(out);
   $(".pagedots .firstpage").click(function () {
      var thisdot = $(".pagedots span[rel='1']");
      if (!$(thisdot).hasClass("currentdot")) {
         $("#iconscroller").animate({
            left: 0
         }, function () {
            $(".dot").each(function () {
               if ($(this).hasClass("currentdot")) {
                  $(this).removeClass("currentdot");
               }
            });
            $(thisdot).addClass("currentdot");
         });
      }
   });
   $(".pagedots .lastpage").click(function () {
      var thisdot = $(".pagedots span[rel='" + $(".sbpage").size() + "']");
      var newLeft = parseInt($(".sbpage").size() - 1) * 320;
      newLeft = -newLeft + "px";
      if (!$(thisdot).hasClass("currentdot")) {
         $("#iconscroller").animate({
            left: newLeft
         }, function () {
            $(".dot").each(function () {
               if ($(this).hasClass("currentdot")) {
                  $(this).removeClass("currentdot");
               }
            });
            $(thisdot).addClass("currentdot");
         });
      }
   });
   $(".pagedots .dot").click(function () {
      var thisdot = $(this);
      var newLeft = parseInt($(thisdot).attr('rel') - 1) * 320;
      newLeft = -newLeft + "px";
      if (!$(thisdot).hasClass("currentdot")) {
         $("#iconscroller").animate({
            left: newLeft
         }, function () {
            $(".dot").each(function () {
               if ($(this).hasClass("currentdot")) {
                  $(this).removeClass("currentdot");
               }
            });
            $(thisdot).addClass("currentdot");
         });
      }
   });
   $(".pagedots .dot[rel='" + topage + "']").click();
   $(".ico_btn").click(function (event) {
      $("#icons-tab1 .uploaded, #icons-tab1-content .scroll").fadeOut();
      $("#icontabs").tabs('select', 2);
      var application = $(this).attr("title");
      $(".ico_btn").parent().removeClass('selected');
      $(this).parent().addClass('selected');
      $("#icons-tab1-app .uploaded").load("/themebuilder/presets.php", {
         app: application
      }, function (responseText, textStatus, XMLHttpRequest) {
         if (textStatus == "error") {
            alert("An error occurred when trying to get the existing icons for that application.");
         } else {
            $("#icons-tab1-app #apptitle").text(application);
            if ($("#icons-tab1 .viewholder .inside .current").attr('id') != "icons-tab1-app") {
               $("#icons-tab1 .viewholder .inside .current").animate({
                  left: '-253px'
               }, "normal", function () {
                  $(this).removeClass('current');
               });
               $("#icons-tab1 .viewholder .inside #icons-tab1-app").animate({
                  left: '0'
               }, "normal", function () {
                  $(this).addClass('current');
                  $("#icons-tab1 .uploaded").fadeIn();
               });
            } else {
               $("#icons-tab1 .uploaded").fadeIn();
            }
         }
      });
   });
   $(".ico_btn img").droppable({
      accept: '.customicon',
      over: function () {
         $(this).attr('oldsrc', $(this).attr('src')).attr('src', 'img/iphone/drop.png').attr('width', '59').attr('height', '60');
      },
      out: function () {
         $(this).attr('src', $(this).attr('oldsrc'));
      },
      drop: function (event, ui) {
         $(this).attr('src', $(ui.draggable).attr('src'));
      }
   });
}

function inarray(thearray, thevalue) {
   for (i in thearray) {
      if (thearray[i] == thevalue) {
         return true;
      }
   }
   return false;
}

function loadThemeFromJSON(data, opacityset) {
   if (data.wallpaper != undefined) {
      $("#springboard").css("background", data.wallpaper);
   }
   if (data.lockwallpaper != undefined) {
      if (data.lockwallpaper.replace(new RegExp('"', 'g'), "") != "url(img/iphone/background.png)") {
         $("#iphone-inside").css("background", data.lockwallpaper);
      }
   }
   if (data.dock != undefined) {
      $("#springboard-bar").css("background", data.dock);
   }
   if (data.opacity != undefined) {
      if (!opacityset) {
         $("#iconopacitynum").text(parseInt(data.opacity) * 100 + "%");
         $("#iconopacity").slider('value', parseInt(data.opacity) * 100);
      }
      $(".ico_btn, .ico_txt, .dock_ico_txt").css('opacity', data.opacity);
   }
   if (data.sliderUnlock != undefined) {
      $("#unlock-bottom .unlock-slider a").css('background-image', data.sliderUnlock);
   }
   if (data.sliderPower != undefined) {
      $("#poweroff-top .unlock-slider a").css('background-image', data.sliderPower);
   }
   if (data.sliderAnswer != undefined) {
      $("#callme-bottom .unlock-slider a").css('background-image', data.sliderAnswer);
   }
   if (data.sliderUnlockText != undefined) {
      $("#slide-to-unlock").html("<br><br><div>" + data.sliderUnlockText + "</div>");
   }
   if (data.sliderPowerText != undefined) {
      $("#slide-to-power-off").html("<br><br><div>" + data.sliderPowerText + "</div>");
   }
   if (data.sliderAnswerText != undefined) {
      $("#slide-to-answer").html("<br><br><div>" + data.sliderAnswerText + "</div>");
   }
   var defaultApps = ['Calendar', 'Photos', 'YouTube', 'Stocks', 'Maps', 'Weather', 'Voice Memos', 'Notes', 'Clock', 'Calculator', 'Settings', 'iTunes', 'App Store', 'Cydia', 'Contacts', 'Safari', 'Mail', 'Nike + iPod', 'Game Center'];
   if (devicetype == "iPhone") {
      defaultApps.push("Messages", "Camera", "Compass", "Phone", "iPod");
   } else if (devicetype == "iPod") {
      defaultApps.push("Music", "Videos");
   }
   $(".icon").each(function () {
      if (!inarray(defaultApps, $(this).find("img").attr('app'))) {
         $(this).remove();
      }
   });
   $("#springboard .sbpage").each(function () {
      if ($(this).find("img").size() == 0) {
         $(this).remove();
      }
   });
   if (data.icons != undefined) {
      var iconsAdded = 0;
      var iconsAddedMsg = 0;
      for (icon in data.icons) {
	  if(iconsAdded <= 208) {
	  if ($("#springboard img[alt='" + data.icons[icon][0] + "']").size() > 0) {
            $("#springboard img[alt='" + data.icons[icon][0] + "']").attr("src", data.icons[icon][1]);
         } else {
	     if(iconsAdded == 208 && iconsAddedMsg == 0) {
		alert("Warning: This theme contains more icons\nthan can be shown on the Home Screen.\n\nOnly the first 228 icons are shown.");
		iconsAddedMsg = 1;
	     } else {
            var i = 2;
            while ($("#springboard-items #springboard-page" + i + " img:not(.deleteicon)").size() == 16) {
               i++;
            }
            if ($("#springboard-items #springboard-page" + i).size() == 0) {
               var newpageNumber = $("#springboard-items div.sbpage").size() + 1;
               $("#iconscroller").append("<div id='springboard-page" + newpageNumber + "' class='sbpage'><div class='row row1'></div><div class='row row2'></div><div class='row row3'></div><div class='row row4'></div></div>");
            }
            var j = 1;
            while ($("#springboard-items #springboard-page" + i + " div.row" + j + " img:not(.deleteicon)").size() == 4) {
               j++;
            }
            var iconNumber = $("#springboard-items #springboard-page" + i + " img:not(.deleteicon)").size() + 1;
            var iconSrc = data.icons[icon][1];
            var appName = data.icons[icon][0];
            $("#springboard-items #springboard-page" + i + " div.row" + j).append("<div class='icon icon" + iconNumber + "'><a href='javascript:;' title='" + appName + "' class='ico_btn'><img src='" + iconSrc + "' alt='" + appName + "' app='" + appName + "' /></a><div class='ico_txt'>" + appName + "</div></div>");
            if($.allowdelete != undefined)
		$("#springboard-items #springboard-page" + i + " div.row" + j + " .icon" + iconNumber).prepend("<img src='img/iphone/tinyclose.png' class='deleteicon' />").mouseover(function () {
                  $(this).parent().find(".deleteicon").show();
               }).mouseout(function () {
                  $(this).parent().find(".deleteicon").hide();
               }).find(".deleteicon").click(function () {
                  var apptitle = $(this).parent().find('a').attr('title');
                  $(this).parent().fadeOut("slow", function () {
                     $(this).remove();
                     var k = 1;
                     $("#springboard-items #springboard-page" + i + " .icon").removeClass().addClass("icon").each(function () {
                        $(this).addClass("icon" + k);
                        k++;
                     });
                     $("#springboard-items .sbpage").each(function () {
                        if ($(this).find("img").size() == 0) {
                           $(this).remove();
                           refreshDots(1);
                           $("#iconscroller").animate({
                              left: 0
                           });
                        }
                     });
                  });
              });
	     iconsAdded = iconsAdded + 1;
	     }
         }
	  }
      }
      refreshDots(1);
   }
   if (data.labels != undefined) {
      if (data.labels.dock != undefined) {
         if (data.labels.dock.visible != undefined) {
            if ($("#dockapplabels").attr('rel') != data.labels.dock.visible) {
               $("#dockapplabels").click();
            }
            if (opacityset && data.labels.dock.visible == 'off') {
               $('.dock_ico_txt').animate({
                  opacity: '0'
               });
            }
         }
         if (data.labels.dock.font != undefined) {
            if (opacityset) {
               $(".dock_ico_txt").css('font-family', data.labels.dock.font);
            } else {
               $("#docklabelsfont option").attr('selected', false);
               $("#docklabelsfont option[rel='" + data.labels.dock.font + "']").attr('selected', true);
               dockLabelsFont();
            }
         }
         if (data.labels.dock.color != undefined) {
            if (!opacityset) {
               $("#dockcolorSelector div").css("background-color", data.labels.dock.color);
            }
            $(".dock_ico_txt").css("color", data.labels.dock.color);
         }
      }
      if (data.labels.sb != undefined) {
         if (data.labels.sb.visible != undefined) {
            if ($("#sbapplabels").attr('rel') != data.labels.sb.visible) {
               $("#sbapplabels").click();
            }
            if (opacityset && data.labels.sb.visible == 'off') {
               $('.ico_txt').animate({
                  opacity: '0'
               });
            }
         }
         if (data.labels.sb.font != undefined) {
            if (opacityset) {
               $(".ico_txt").css('font-family', data.labels.sb.font);
            } else {
               $("#sblabelsfont option").attr('selected', false);
               $("#sblabelsfont option[rel='" + data.labels.sb.font + "']").attr('selected', true);
               sbLabelsFont();
            }
         }
         if (data.labels.sb.color != undefined) {
            if (!opacityset) {
               $("#sbcolorSelector div").css("background-color", data.labels.sb.color);
            }
            $(".ico_txt").css("color", data.labels.sb.color);
         }
      }
   }
   if (data.name != undefined) {
      $("#savetheme-name").val(data.name);
   }
   if (data.description != undefined) {
      $("#savetheme-description").val(data.description);
   }
   if (data.category != undefined) {
      $("#savetheme-category").val(data.category);
   }
   setTimeout(function () {
      closeLoading(false);
      if($.autodownload == true) {
	  $("#downloadthemebutton").click();
	  $("li.cydia").click();
      }
   }, 1000);
}

function loadFullTheme(theme, mytheme) {
   $("div.close").click();
   $(".TAstatus").text("Please wait...");
   $(".TAloader").attr("src", "img/iphone/bigloader.gif");
   $(".TAhint").hide();
   $("#themeapply").overlay({
      expose: {
         color: '#333',
         loadSpeed: 200,
         opacity: 0.9
      },
      closeOnClick: false,
      api: true,
      top: 200
   }).load();
   $("div.lockscreenswitch").click();
   if (mytheme) {
      var themeInfoURL = "/themebuilder/mythemeinfo.php?id=" + theme;
   } else {
      var themeInfoURL = "/themebuilder/themeinfo.php?theme=" + theme;
   }
   $.getJSON(themeInfoURL, function (data) {
      loadThemeFromJSON(data);
   });
}

function loadFullThemeSilent(theme, mytheme) {
   $("div.close").click();
   $("div.lockscreenswitch").click();
   if (mytheme) {
      var themeInfoURL = "http://www.codethemed.com/themebuilder/mythemeinfo.php?id=" + theme;
   } else {
      var themeInfoURL = "/themebuilder/themeinfo.php?theme=" + theme;
   }
   $.getJSON(themeInfoURL, function (data) {
      loadThemeFromJSON(data, true);
   });
}

function lowerBatteryLevel() {
   $("#statusbar .battery").css({
      background: 'url(img/iphone/battery.png) no-repeat'
   });
   if ($("#statusbar .battery img").css('width') == "0px") {
      $("#statusbar .battery img").attr('src', 'img/iphone/batteryFill.png').css({
         width: '15px'
      });
   } else {
      var currentLevel = $("#statusbar .battery img").css('width').replace("px", "");
      var newLevel = parseInt(currentLevel) - 1;
      if (newLevel < 3) {
         if (newLevel != 0) {
            $("#statusbar .battery img").attr('src', 'img/iphone/batteryLowFill.png').css({
               width: newLevel
            });
         } else {
            $("#statusbar .battery").css({
               background: 'url(img/iphone/batteryCharging.png) no-repeat'
            });
            $("#statusbar .battery img").css({
               width: '0px'
            }).attr('src', 'img/iphone/batteryFill.png');
         }
      } else {
         $("#statusbar .battery img").attr('src', 'img/iphone/batteryFill.png').css({
            width: newLevel
         });
      }
   }
   setTimeout(lowerBatteryLevel, 10000);
}

function refreshTime() {
   var d_names = new Array("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday");
   var m_names = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");
   var d = new Date();
   var curr_day = d.getDay();
   var curr_date = d.getDate();
   var curr_month = d.getMonth();
   var curr_year = d.getFullYear();
   var curr_hour = d.getHours();
   var curr_min = d.getMinutes();
   $("#datepicker").replaceWith("<p class=\"date\">" + d_names[curr_day] + ", " + m_names[curr_month] + " " + curr_date + "</p>");
   if (curr_min < 10) {
      curr_min = "0" + curr_min;
   }
   if (curr_hour > 12) {
      curr_hour = curr_hour - 12;
   }
   $("#timepicker").replaceWith("<p class=\"time\">" + curr_hour + ":" + curr_min + "</p>");
   setTimeout(refreshTime, 1000);
}

function loadFromCydia(id) {
   $("#importcydia").overlay({
      expose: {
         color: '#333',
         loadSpeed: 200,
         opacity: 1.0
      },
      closeOnClick: false,
      api: true,
      top: 150
   }).load();
   $.get("/themebuilder/import.php?id=" + id, function (data) {
      if (data == 'true') {
         $("#importcydia-dl").val('Import Theme').attr('disabled', false);
         $("#importcydiaload").hide();
         $("#importcydia-status").slideUp();
      } else if (data == 'unavailable') {
         alert('Sorry, but we were unable to access the repository that has this theme.\nPlease try again later.');
      } else {
         alert('An unknown error occurred when trying to download the theme.' + data);
      }
   });
}

function loadFromCydiaSubmission(id) {
   $.getJSON("/themebuilder/themeinfocydia.php?id=" + id, function(d) {loadThemeFromJSON(d, false);});
}

function themeToJSON() {
   var themeName = $("#savetheme-name").val();
   var themeDescription = $("#savetheme-description").val();
   var themeCategory = $("#savetheme-category").val();
   var thejson = {
      "name": themeName,
      "description": themeDescription,
      "category": themeCategory,
      "id": $("#themeID").val(),
      "icons": [],
      "opacity": $(".ico_btn:eq(1)").css('opacity'),
      "dock": $("#springboard-bar").css('background-image'),
      "wallpaper": $("#springboard").css('background-image'),
      "lockwallpaper": $("#iphone-inside").css('background-image'),
      "sliderUnlock": $("#unlock-bottom .unlock-slider a").css('background-image'),
      "sliderPower": $("#poweroff-top .unlock-slider a").css('background-image'),
      "sliderAnswer": $("#callme-bottom .unlock-slider a").css('background-image'),
      "sliderUnlockText": $("#slide-to-unlock").html(),
      "sliderPowerText": $("#slide-to-power-off").html(),
      "sliderAnswerText": $("#slide-to-answer").html(),
      "labels": [{
         "dock": [{
            "visible": $("#dockapplabels").attr('rel'),
            "font": $("#docklabelsfont").val(),
            "color": $("#dockcolorSelector div").css('background-color')
         }]
      },
      {
         "sb": [{
            "visible": $("#sbapplabels").attr('rel'),
            "font": $("#sblabelsfont").val(),
            "color": $("#sbcolorSelector div").css('background-color')
         }]
      }]
   };
   if (gup("id")) {
      thejson.id = gup("id");
   }
   $(".ico_btn").each(function () {
      var appName = $(this).attr('title');
      var appIcon = $(this).find("img").attr('src');
      thejson.icons[thejson.icons.length] = [{
         "name": appName.replace("+", "%2B")
      },
      {
         "image": appIcon
      }];
   });
   return $.toJSON(thejson);
}
