/* globals =( */
var desc_id = 0;
var channels_shown = false;
var alarms_shown = false;
var news_shown = false;
var cat_selected = null;
var show_cats = readCookie("show_cats");

function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function eraseCookie(name) {
	createCookie(name,"",-1);
}

function clear_debug(){
	$('.warning').text("");
}

function set_debug(text){
	$('.warning').text(text);
}

function reload_content(id){
	$("#"+id).find(".widget-content").load('get.php?id='+id, function(){
		$(this).find(".program").each(function(){
			add_alarm_button($(this));
		});
	});
   	/*
	$.ajax({
   		  url: 'get.php?id='+id,
   		  success: function(data) {
   		 	$("#"+id).find(".widget-content").empty().html(data);
   		  }
   		});
   		*/
}

function show_description(id){
	if(desc_id == id){
		$("#description").slideUp("fast", function(){
			$("#description").remove();
		});
		desc_id = 0;
	} else {
		desc_id = id;
		if( $("#description").length > 0){
			$("#description").slideUp("fast", function(){
				$("#description").remove();
				show_description_helper(id);
			});
		} else {
			show_description_helper(id);
		}
	}
}

function show_description_helper(id){
	$("#link_"+id).append("<div id=\"description\"></div>");
	$("#description").load("get.php?action=description&id="+id, function(){$(this).fadeIn();});
}

function update_order(){
	var order1 = "";
	var order2 = "";
	var order3 = "";
	var order4 = "";
	$('#column1').find('li.widget').each(function(index) {
		order1 += $(this).get(0).id+",";
	});
	$('#column2').find('li.widget').each(function(index) {
		order2 += $(this).get(0).id+",";
	});
	$('#column3').find('li.widget').each(function(index) {
		order3 += $(this).get(0).id+",";
	});
	$('#column4').find('li.widget').each(function(index) {
		order4 += $(this).get(0).id+",";
	});

	$.get("save.php?action=order&order1="+order1+"&order2="+order2+"&order3="+order3+"&order4="+order4);
}

function change_to_category(category){
	var height = $("#bottom").height();
	$("#bottom").height(height);
	
	$("#row").fadeOut("fast", function(){
		$("#bottom").append("<div class='loading'><img src='img/ajax-loader.gif' /></div>");
		
		$("#row").load("get.php?action=category&category="+category, function(){
			$(".loading").fadeOut().remove();
			$("#row").fadeIn("fast");
			height = $("#bottom").height();
			$("#bottom").height(height);
		});
	});
}
/*
function hideBottom(){
	var height = $("#bottom").height();

	$("#row").fadeOut("slow", function(){
		$("#row").hide();
		$("#bottom").height(height);
		$("#bottom").slideUp(1000);
	});
}

function showBottom(){
	$("#bottom").append("<div class='loading'><img src='img/ajax-loader.gif' /></div>");
	$("#bottom").slideDown(1000, function(){
		$("#row").hide();
		$("#arrow").hide();
		$("#row").load("get.php?action=channels", function(){
			$(".loading").fadeOut("fast", function(){
				$("#row").fadeIn(1000);
				$("#arrow").fadeIn(1000);
			}).remove();
		});
	});
}
*/


function saveChannelList(channelList){
	$.post("save.php?action=save_channel_list", 
		{ 
			channels: channelList
		}, function(data){
	   if(data == "success"){
		   hidePage();
	   } else {
		   updateTips( "Kunne ikke legge til kanaler, prøv igjen senere" , $(".validateTips"));
	   }
	 });
}

function showChannelList(){

	$('#days').fadeOut();
	$('#columns').slideUp(function(){
		$('#channels').load("get.php?action=channels", function(){
			$(this).fadeIn();
			
			var channels = new Array();
			var channel_count = 0;

			$("#add-channels")
			.button()
			.click(function(){
				if($(".channel_check:checked").length > 0){
					$(".channel_check:checked").each(function(){
						channels[channel_count] = this.id;
						channel_count++;
					});
					saveChannelList(channels);
				}
			});
			
		});
	});
}


function showNews(){
	$('#days').fadeOut();
	$('#columns').slideUp(function(){
		$('#channels').load("get.php?action=news", function(){
			$(this).fadeIn();
		});
	});
}


function showAlarmList(){

	$('#days').fadeOut();
	$('#columns').slideUp(function(){
		$('#channels').load("get.php?action=alarms", function(){
			$(this).fadeIn(function(){
				$("#alarm-table").tablesorter( {sortList: [[5,0], [1,0]]} );
				
				$("#turn-on-alarms")
					.button()
					.click(function(){
						$('#channels').fadeOut(function(){
							$(this).load("get.php?action=download-alarm", function(){
								$(this).fadeIn(function(){
									$("#java_key").focus();
								});
							});
						});
					});
			});
		});
	});
}

function hidePage(){
	$('#channels').fadeOut(function(){
		$('#days').fadeIn();
		load_content();
	});
	
}

function load_content(){
	var loading = $(".loading");
	$("#columns").fadeOut(function(){
		loading.show();
		$(this).load("get.php?action=content", function(){
			$(this).fadeIn("fast");
			loading.hide();
			iNettuts.addWidgetControls(iNettuts.settings.columns);
			iNettuts.makeSortable();
			add_alarm_buttons();
		});
	});
}

function showOrHideNews(){
	if(alarms_shown == true || channels_shown == true){
		$('#channels').fadeOut(function(){
			showNews();
			alarms_shown = false;
			channels_shown = false;
			news_shown = true;
		});
	} else if($("#channels:visible").length > 0){
		hidePage();
		news_shown = false;
	} else {
		showNews();
		news_shown = true;
	}
}

function showOrHideChannelList(){
	if(alarms_shown == true || news_shown == true){
		$('#channels').fadeOut(function(){
			showChannelList();
			alarms_shown = false;
			channels_shown = true;
			news_shown = false;
		});
	} else if($("#channels:visible").length > 0){
		hidePage();
		channels_shown = false;
	} else {
		showChannelList();
		channels_shown = true;
	}
}

function showOrHideAlarmList(){
	
	if(channels_shown == true || news_shown == true){
		$('#channels').fadeOut(function(){
			showAlarmList();
			alarms_shown = true;
			channels_shown = false;
			news_shown = false;
		});
	} else if($("#channels:visible").length > 0){
		hidePage();
		alarms_shown = false;
	} else {
		showAlarmList();
		alarms_shown = true;
	}
	
}

function add_alarm(id){
	var menu_add_alarm = $("#menu-add-alarm");
	menu_add_alarm.load("get.php?action=new-alarm&id="+id, function(){
		$(this).dialog("open").dialog( "option", "height", 250);
		$("#alarm-before").focus();
	});
}

/*
function showOrHideBottom(){
	if($("#row:visible").length > 0){
		hideBottom();
	} else {
		showBottom();
	}
}
*/

function update_clock () {  
	var currentTime = new Date();
	
	var currentHours = currentTime.getHours();
	var currentMinutes = currentTime.getMinutes();
	var currentSeconds = currentTime.getSeconds();
	
	if(currentHours < 10){
		currentHours = "0"+currentHours;
	}
	$("#clock").find("#hours").text(currentHours);
	
	if(currentMinutes < 10){
		currentMinutes = "0"+currentMinutes;
	}
	$("#clock").find("#minutes").text(currentMinutes);
	
	var timeLeft = 60-currentSeconds;
	
	setTimeout(update_clock, timeLeft*1000);
}

function updateTips( t , tips) {
	tips
		.text( t )
		.addClass( "ui-state-highlight" );
	setTimeout(function() {
		tips.removeClass( "ui-state-highlight", 1500 );
	}, 500 );
}

function checkLength( o, n, min, max, tips, error_class) {
	if ( error_class === undefined ) {
		error_class = true;
	}
	if ( o.val().length > max || o.val().length < min ) {
		if(error_class) { o.addClass( "ui-state-error" ); }
		updateTips( "Lengden av " + n + " må være mellom " +
			min + " og " + max + ".", tips );
		o.focus();
		return false;
	} else {
		return true;
	}
}

function checkAlike( o1, o2, n, tips ) {
	if ( o1.val() != o2.val() ) {
		o1.addClass( "ui-state-error" );
		o2.addClass( "ui-state-error" );
		updateTips( n + " må være like.", tips );
		return false;
	} else {
		return true;
	}
}

function checkRegexp( o, regexp, n , tips) {
	if ( !( regexp.test( o.val() ) ) ) {
		o.addClass( "ui-state-error" );
		updateTips( n , tips);
		return false;
	} else {
		return true;
	}
}

function isNumber(o, tips){
	if ( Number(o.val()) != "NaN" && Number(o.val()) > 0) {
		return true;
	} else {
		o.addClass( "ui-state-error" );
		updateTips( "Antall minutter må være tall." , tips);
		return false;
	}
}

function showRecaptcha(element) {
    Recaptcha.create("6LcGm8ASAAAAABpjGBGQz3jKJSiLy2RxPZDEWJsU", element, {
      theme: "red",
      callback: Recaptcha.focus_response_field});
 }

function close_dialog(element){
	$(element).dialog("close");
	$("#recaptcha_div").remove();
}

function delete_alarm(id){
	var answer = confirm("Sikker du vil slette?");
	if (answer){
		$.get("save.php?action=delete-alarm&id="+id, function(data) {
			if(data == "success"){
				$("#alarm-row-"+id).fadeOut("slow", function(){
					$(this).remove();
				});
			} else {
				alert("Det oppsto en feil!");
			}
			});
		
	}
}


function make_dialogs(){
	var email = $("#settings-email"),
		password = $("#settings-password"),
		allFields = $([]).add(email).add(password),
		tips = $(".validateTips");
	
	var standard_height = 420;
	//forgot-password-form
	
	$("#add-user-form").dialog({
		autoOpen: false,
		height: standard_height,
		width: 420,
		modal: true,
		buttons: {
			"Opprett konto": function() {
				email = $("#settings-email");
				password = $("#settings-password");
				allFields = $([]).add(email).add(password);
				tips = $(".validateTips");
		
				var bValid = true;
				allFields.removeClass( "ui-state-error" );

				//bValid = bValid && checkLength(name, "username", 3, 16, tips);
				bValid = bValid && checkLength(email, "e-post", 6, 80, tips);
				bValid = bValid && checkLength(password, "passord", 5, 32, tips);

				//bValid = bValid && checkRegexp(name, /^[a-z]([0-9a-z_])+$/i, "Username may consist of a-z, 0-9, underscores, begin with a letter." );
				// From jquery.validate.js (by joern), contributed by Scott Gonzalez: http://projects.scottsplayground.com/email_address_validation/
				bValid = bValid && checkRegexp(email, /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i, "f.eks ui@jquery.com", tips );
				//bValid = bValid && checkRegexp(password, /^([0-9a-zA-Z])+$/, "Password field only allow : a-z 0-9" );

				if ( bValid ) {
					$.post("save.php?action=register", 
							{ 
								email: $("#settings-email").val(),
								password: $("#settings-password").val(),
								recaptcha_challenge_field : $("#recaptcha_challenge_field").val(),
								recaptcha_response_field : $("#recaptcha_response_field").val()
							}, function(data){
						   if(data == "success"){
							   $("#username").val($("#settings-email").val());
							   $("#add-user-form").fadeOut("fast", function(){
								   $(this).html("<div style='padding: 1em'>Bruker registrert. Du kan nå logge inn.</div>")
								   		.dialog( "option", "buttons", { "Lukk": function() { 
								   			close_dialog(this);$("#password").focus(); 
								   		}}).dialog( "option", "height", 160);
								   $("#add-user-button").fadeOut();
							   });
						   } else {
							   updateTips( data , tips);
							   Recaptcha.reload();
						   }
						 });
				}
			},
			"Avbryt" : function() {
				close_dialog(this);
			}
		},
		close: function() {
			allFields.val("").removeClass("ui-state-error");
		}
	});
	
	$("#forgot-password-form").dialog({
		autoOpen: false,
		height: standard_height,
		width: 420,
		modal: true,
		buttons: {
		//Gjenopprett passord
			"Neste": function() {
				email = $("#settings-email");
				allFields = $([]).add(email);
				tips = $(".validateTips");
		
				var bValid = true;
				allFields.removeClass( "ui-state-error" );

				bValid = bValid && checkLength(email, "e-post", 6, 80, tips);

				// From jquery.validate.js (by joern), contributed by Scott Gonzalez: http://projects.scottsplayground.com/email_address_validation/
				bValid = bValid && checkRegexp(email, /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i, "eg. ui@jquery.com" );

				if ( bValid ) {
					$.post("save.php?action=forgot-password", 
							{ 
								email: $("#settings-email").val(),
								recaptcha_challenge_field : $("#recaptcha_challenge_field").val(),
								recaptcha_response_field : $("#recaptcha_response_field").val()
							}, function(data){
						   if(data == "success"){
							   // got email and captcha, get code
							   $("#username").val($("#settings-email").val());
							   
							   $("#forgot-password-form").load("get.php?action=forgot-password-code")
							   	.dialog( "option", "buttons", {
								   "Gjennopprett passord": function() {
								    var forgot_code = $("#settings-forgot-code"),
								    	password_1 = $("#settings-password-1"),
								    	password_2 = $("#settings-password-2");
									allFields = $([]).add(forgot_code).add(password_1).add(password_2);
									tips = $(".validateTips");
							
									allFields.removeClass( "ui-state-error" );
									
									var bValid = true;
									bValid = bValid && checkLength(forgot_code, "kode", 31, 33, tips);
									bValid = bValid && checkLength(password_1, "passord", 5, 32, tips);
									bValid = bValid && checkAlike(password_1, password_2, "Passord", tips);

									if ( bValid ) {
										$.post("save.php?action=forgot-password-code", 
												{ 
													forgot_password_code: forgot_code.val(),
													password1: password_1.val(),
													password2: password_2.val()
												}, function(data){
											   if(data == "success"){
												   //password changed
												   $("#forgot-password-form").fadeOut("fast", function(){
													   $(this).html("<div style='padding: 1em'>Passord endret. Du kan nå logge inn.</div>")
													   		.dialog( "option", "buttons", { "Lukk": function() { 
													   			close_dialog(this);$("#password").focus(); 
													   		}}).dialog( "option", "height", 160);
												   });
												   
											   } else {
												   updateTips( data , tips);
												   //updateTips( "Feil kode" , tips);
												   forgot_code.addClass( "ui-state-error" );
											   }
											 });
									}
							   
								   },
									"Avbryt" : function() {
									   close_dialog(this);
									}
							   });
							   $("#settings-forgot-code").focus();
						   } else {
							   updateTips( data , tips);
							   Recaptcha.reload();
						   }
						 });
				}
			},
			"Avbryt" : function() {
				 close_dialog(this);
			}
		},
		close: function() {
			allFields.val("").removeClass("ui-state-error");
		}
	});
	
	$("#why-register-form").dialog({
		autoOpen: false,
		height: 400,
		width: 700,
		modal: true,
		buttons: {
			"Opprett bruker": function() {
				close_dialog(this);
				$("#add-user-form").load("get.php?action=add-user", function(){
					$(this).dialog("open").dialog( "option", "height", standard_height);
					showRecaptcha("recaptcha_div");
				});
			},
			"Lukk" : function() {
				close_dialog(this);
			}
		},
		close: function() {
			allFields.val("").removeClass("ui-state-error");
		}
	});
	
	$("#menu-contact-form").dialog({
		autoOpen: false,
		width: 420,
		modal: true,
		buttons: {
			"Send": function() {
				contact = $("#settings-contact");
				allFields = $([]).add(contact);
				tips = $(".validateTips");
		
				var bValid = true;
				allFields.removeClass( "ui-state-error" );

				bValid = bValid && checkLength(contact, "kontaktfeltet", 20, 1000, tips, false);

				if ( bValid ) {
					$.post("save.php?action=contact", 
							{ 
							contact: $("#settings-contact").val()
							}, function(data){
						   if(data == "success"){
							   tips.addClass("ui-state-highlight").text("Takk for tilbakemeldingen. Du vil bli kontaktet ved behov.");
							   contact.delay(1000).slideUp(function(){
								   close_dialog($("#menu-contact-form")); 
							   });
							   
						   } else {
							   updateTips( data , tips);
						   }
						 });
				}
			},
			"Avbryt" : function() {
				close_dialog(this);
			}
		},
		close: function() {
			allFields.val("").removeClass("ui-state-error");
		}
	});
	
	$("#menu-help-form").dialog({
		autoOpen: false,
		height: 600,
		width: 800,
		modal: true,
		buttons: {
			"Lukk" : function() {
				close_dialog(this);
			}
		},
		close: function() {
			allFields.val("").removeClass("ui-state-error");
		}
	});
	
	$("#menu-settings-form").dialog({
		autoOpen: false,
		height: 500,
		width: 500,
		modal: true,
		buttons: {
			"Lukk" : function() {
				close_dialog(this);
			}
		},
		close: function() {
			allFields.val("").removeClass("ui-state-error");
		}
	});
	
	$("#menu-add-alarm").dialog({
		autoOpen: false,
		height: 400,
		width: 500,
		modal: true,
		buttons: {
			"Legg til": function() {
				
				alarm_before = $("#alarm-before");
				alarm_id = $("#alarm-id");
				allFields = $([]).add(alarm_before).add(alarm_id);
				tips = $(".validateTips");
		
				var bValid = true;
				allFields.removeClass( "ui-state-error" );

				bValid = bValid && isNumber(alarm_before, tips);
				bValid = bValid && isNumber(alarm_id, tips);

				if ( bValid ) {
					$.post("save.php?action=add-alarm", 
							{ 
								alarmbefore: alarm_before.val(),
								alarmid: alarm_id.val()
							}, function(data){
						   if(data == "success"){
							   tips.text("Alarm lagt til.").addClass("ui-state-highlight");
							   $("#menu-add-alarm").delay(500).slideUp(function(){
								   /*
								   $(this).;
								   $("#menu-add-alarm").dialog( "option", "buttons", { "Lukk": function() { 
								   close_dialog(this); 
								   }}).dialog( "option", "height", 170);
								   $(this).fadeIn();
								    */
								   close_dialog(this); 
							   });
						   } else {
							   updateTips( data , tips);
						   }
						 });
				}
				
			},
			"Avbryt" : function() {
				close_dialog(this);
			}
		},
		close: function() {
			allFields.val("").removeClass("ui-state-error");
		}
	});
		
}

function make_menu_links(){
	
	$("#add-user-button")
	.button()
	.click(function() {
		$("#add-user-form").load("get.php?action=add-user", function(){
			$(this).dialog("open").dialog( "option", "height", 410);
			showRecaptcha("recaptcha_div");
		});
	});
	
	$("#forgot-password-button")
		.button()
		.click(function() {
			$("#forgot-password-form").load("get.php?action=forgot-password", function(){
				$(this).dialog("open").dialog( "option", "height", 350);
				showRecaptcha("recaptcha_div");
			});
		});

	$("#why-register-button")
		.button()
		.click(function() {
			$("#why-register-form").load("get.php?action=why-register", function(){
				$(this).dialog("open");
			});
		});
	
	$("#menu-help")
	.button()
	.click(function() {
		$("#menu-help-form").load("get.php?action=help", function(){
			$(this).dialog("open");
		});
	});
	$("#menu-contact")
	.button()
	.click(function() {
		$("#menu-contact-form").load("get.php?action=contact", function(){
			$(this).dialog("open").dialog( "option", "height", 420);
		});
	});

	$("#menu-settings")
	.click(function() {
		$("#menu-settings-form").load("get.php?action=settings", function(){
			$(this).dialog("open");
			$("#tabs").tabs();
			$("#settings-save-color")
				.button()
				.click(function() {
					var tips = $(".validateTips");
					$.post("save.php?action=settings-color", 
							{ 
							background: $("#settings-color-background").val(),
							text: $("#settings-color-text").val(),
							header: $("#settings-color-header").val()
							}, function(data){
						   if(data == "success"){
							   window.location.reload();
						   } else {
							   updateTips("Kunne ikke lagre farge, prøv senere", tips);
						   }
						 });
				});
			$("#settings-reset-color")
				.button()
				.click(function(){
					$("#settings-reset-color-confirm").text("Er du sikker?");
					$("#settings-reset-color-confirm").dialog({
						resizable: false,
						height:140,
						modal: true,
						buttons: {
							"Fjern alle farger": function() {
								$.get('save.php?action=reset-colors', function(){
									window.location.reload();
								});
								$( this ).dialog( "close" );
							},
							"Lukk" : function() {
								$( this ).dialog( "close" );
							}
						}
					});
				});
			
			$('#colorSelector').ColorPicker({
				color: '#'+$('#colorSelector div').css('background-color'),
				onShow: function (colpkr) {
					$(colpkr).fadeIn(500);
					return false;
				},
				onHide: function (colpkr) {
					$(colpkr).fadeOut(500);
					return false;
				},
				onChange: function (hsb, hex, rgb) {
					$('#colorSelector div').css('background-color', '#' + hex);
					$('#box_9999').css('background-color', '#' + hex);
					$('#settings-color-background').val(hex);
				}
			});
			
			$('#colorSelector2').ColorPicker({
				color: '#'+$('#colorSelector2 div').css('background-color'),
				onShow: function (colpkr) {
				$(colpkr).fadeIn(500);
				return false;
			},
			onHide: function (colpkr) {
				$(colpkr).fadeOut(500);
				return false;
			},
			onChange: function (hsb, hex, rgb) {
				$('#colorSelector2 div').css('background-color', '#' + hex);
				$('#box_9999 .widget-head h3').css('color', '#' + hex);
				$('#settings-color-header').val(hex);
			}
			});
			
			$('#colorSelector3').ColorPicker({
				color: '#'+$('#colorSelector3 div').css('background-color'),
				onShow: function (colpkr) {
				$(colpkr).fadeIn(500);
				return false;
			},
			onHide: function (colpkr) {
				$(colpkr).fadeOut(500);
				return false;
			},
			onChange: function (hsb, hex, rgb) {
				$('#colorSelector3 div').css('background-color', '#' + hex);
				$('#box_9999 .widget-content').css('color', '#' + hex);
				$('#settings-color-text').val(hex);
			}
			});

			$("#settings-save-password")
				.button()
				.click(function(){
					var old_pass = $('#settings-old-password'),
						pass1 = $('#settings-password-1'),
						pass2 = $('#settings-password-2'),
						tips = $('.validateTips'),
						allFields = $([]).add(old_pass).add(pass1).add(pass2);
			
					var bValid = true;
					allFields.removeClass( "ui-state-error" );

					bValid = bValid && checkLength(old_pass, "gamle passordet", 5, 32, tips);
					bValid = bValid && checkLength(pass1, "nye passordet", 5, 32, tips);
					bValid = bValid && checkAlike(pass1, pass2, "Nye passordet", tips);

					if ( bValid ) {
						$.post("save.php?action=new-password", 
								{ 
									old_password : $('#settings-old-password').val(),
									password1 : $('#settings-password-1').val(),
									password2 : $('#settings-password-2').val()
								}, function(data){
							   if(data == "success"){
								   $('#settings-password-tab form').fadeOut();
								   $('#settings-save-password').fadeOut();
								   updateTips("Nytt passord lagret", tips);
							   } else {
								   updateTips( data , tips);
							   }
							 });
					}
					
					
				});
		});
	});


	$("#menu-login").button();
	
	//menu
	$("#menu-channels")
		.button()
		.click(function() {
			showOrHideChannelList();
		});
	
	$("#menu-alarm")
		.button()
		.click(function() {
			showOrHideAlarmList();
		});
	
	$("#menu-news")
		.button()
		.click(function() {
			showOrHideNews();
		});
		
	$("#menu-onTv").button();
	
	$("#menu-timeline")
		.button()
		.click(function() {
			$("#columns").load("view.php?action=timeline");
		});
	
	$("#menu-films")
		.button()
		.click(function() {
			$("#columns").load("view.php?action=films");
		});
	
	$("#menu-series")
		.button()
		.click(function() {
			$("#columns").load("view.php?action=series");
		});
	
	
	$(".categories").each(function(){
		$(this).parent().click(function(){
			$(".color-h3").removeClass("active-category-button");
			$(".program").show();
			if(cat_selected != this){
				cat_selected = this;
				$(this).find(".color-h3").addClass("active-category-button");
				$(".program").not("."+$(this).text()).hide();
			} else {
				cat_selected = null;
			}
			//$(".program").not("."+$(this).text()).toggle();
		});
	});
	
	$("#show-all-categories").click(function(){
		cat_selected = this;
		$(".color-h3").removeClass("active-category-button");
		$(".program").show();
	});
	
	$("#menu-categories")
		.button()
		.click(function(){
			if(show_cats == "false" || show_cats == null){
				$("#lower-header").slideDown();
				createCookie("show_cats", "true", 30);
				show_cats = "true";
			} else {
				$("#lower-header").slideUp();
				createCookie("show_cats", "false", 30);
				show_cats = "false";
			}
			showAllCategory();
			
			
			$(".program").show();
		});
	
	$("#days").buttonset();
	$(".radio-day")
		.click(function() {
			/* category */
			showAllCategory();
			
			//get new content
			$.get("save.php?action=date&date_offset="+this.id, function(){
				load_content();
			});
		});
	
}

function showAllCategory(){
	$(".color-h3").removeClass("active-category-button");
	cat_selected = this;
}

var widgets = $("li.widget");
var last_alarm_show = $();

function update_content(){
	var id;
	widgets.each(function(){
		id = this.id;
		id.replace("box_", "");
		//alert("id: "+id);
		reload_content(id);
	});
	add_alarm_buttons();
}

function add_alarm_buttons(){
	$(".program").each(function(){
		add_alarm_button($(this));
	});
}

function add_alarm_button(id){
	id.mouseenter(function() {
		last_alarm_show.hide();
		last_alarm_show = $(this).find(".alarm");
		last_alarm_show.show();
	});
}

function inits(){
	if(show_cats == "true"){
		$("#lower-header").slideDown();
	}
	
	make_menu_links();
	make_dialogs();
	add_alarm_buttons();

	setInterval('update_content()', 5*60000);
	
	$("#username").focus();
	
	if($("#column4 li").length == 0){
		showOrHideChannelList();
	}
	
}
