//xPheRe Tooltip vo.7b March 28, 2008
;(function($){$.tooltip={defaults:{'class':'tooltip',css:{},event:'mouseover',smart:false,track:true,offset:{x:12,y:18}},setup:function(opt){$.extend($.tooltip.defaults,opt)}};var tip=function(src,opt){var self=this;var html='';src=$(src);if($.metadata){opt=$.extend({},opt,src.metadata().tooltip)}if(opt.smart){if(!opt.title){opt.title=src.attr('title')}if(!opt.text){opt.text=src.attr('alt')}if(!opt.href){opt.href=src.attr('href')}}var html='';if(opt.title){html+='<div class="title">'+opt.title+'</div>'}if(opt.text){html+='<div class="text">'+opt.text+'</div>'}if(opt.href){html+='<div class="url">'+opt.href+'</div>'}if(html==''){delete this;return}src.removeAttr('title').removeAttr('alt');$.data(src,'tooltip',self);self.dst=opt.dst;src.bind(opt.event+'.tooltip',over).bind('mouseout.tooltip',out).bind('focus.tooltip',over).bind('blur.tooltip',out).bind('click.tooltip',hide);function destroy_timers(){if(self.timein){clearTimeout(self.timein);delete self.timein}if(self.timeout){clearTimeout(self.timeout);delete self.timeout}};function over(ev){destroy_timers();if(self.st==out){return}self.st=over;if(!self.dst){self.dst=$('<div>').appendTo(document.body).css({visibility:'hidden'})}self.ev=ev;self.timein=setTimeout(show,opt['in']||0)};function show(){destroy_timers();if(!self.dst){return}self.dst.addClass(opt['class']).css(opt.css).html(html);if(opt.duration>0){self.timein=setTimeout(hide,opt.duration)}if(opt.track){self.dst.css({position:'absolute',visibility:'visible'});src.bind('mousemove.tooltip',move);$('body').bind('click.tooltip',hide)}self.w=self.dst.width();self.h=self.dst.height();if(opt.onshow){opt.onshow.apply(self.dst)}if(opt.track){move()}};function out(){destroy_timers();if(self.st!=over){return}self.timeout=setTimeout(hide,opt.out||0)};function hide(){destroy_timers();$('body').unbind('.tooltip');$('src').unbind('mousemove.tooltip');if(!self.dst){return}self.dst.empty();if(opt.onhide){opt.onhide.apply(self.dst)}if(self.dst!=opt.dst){self.dst.remove();delete self.dst}};function move(ev){if(!ev){ev=self.ev}else{self.ev=ev}if(!self.dst){return}var p={x:ev.pageX+opt.offset.x,y:ev.pageY+opt.offset.y,w:self.w,h:self.h};w=window;var v={x:w.scrollX,y:w.scrollY,w:w.innerWidth-20,h:w.innerHeight-20};if(p.x+p.w>v.x+v.w){p.x=v.x+v.w-p.w}if(p.y+p.h>v.y+v.h){p.y=ev.pageY-p.h-opt.offset.y}if(p.x<v.x){p.x=v.x}if(p.y<v.y){p.y=v.y}self.dst.css({top:p.y,left:p.x})}};function setup(){return this.each(function(){t=$.data(this,'tooltip');if(t){$.extend(t.opt,opt)}})};function remove(){return this.unbind('.tooltip').removeData('tooltip')};function create(opt){remove.apply(this);opt=$.extend({},$.tooltip.defaults,opt);return this.each(function(){new tip(this,opt)})};$.fn.tooltip=function(a,o){if(!o&&(typeof a!='string')){o=a;a='create'}return(f=({setup:setup,remove:remove,create:create})[a])&&f.apply(this,[o])}})(jQuery);
function test(selector) {

	var start = new Date().getTime();

	for (var i=0; i<100000; i++) {
		$(selector);
	}

	var end = new Date().getTime();
	var time = end - start;

	return [selector,time];
}

function userbox_ready() {

	if (typeof s_data !== 'object') return;

	$("#configurator th[data-tooltip]").each(function(){

		var elem = $(this);

		elem.tooltip({
			text: elem.data('tooltip')
		});
	});

	$("#logout").click(function(){

		if (form_changed && !confirm('Izmaiņas nav saglabātas, vai tiešām iziet?')) return;

		$.post(serverside, {'logout':true}, function(result){
			// user_container.html(result);
			$(".winbox_close").click();
		});

		return false;
	});

	$("#edit_profile").click(function(){

		var parent = $(this).parent();

		if (parent.hasClass('opened')) {
			this.innerHTML = '▼';
			parent.removeClass('opened');
		} else {
			this.innerHTML = '▲';
			parent.addClass('opened');
		}
	});

	if (typeof(r_list) == 'object') {
		var rivers = '';
		for(var r in r_list) {
			rivers += '<option value="'+r+'">'+r_list[r]+'</option>';
		}
	}

	var report_msg = '';

	for(var s in s_data) {
		add_row(s_data[s], rivers);
		if (s_data[s].msg) {

			if (s_data[s].active == 0) s_data[s].msg = '<font color="#777777">'+s_data[s].msg+'</font>';
			report_msg += s_data[s].msg+"\n";
		}
	}

	$("pre").html(report_msg.length ? report_msg : 'Ziņojumu nav.');

	form_changed = false;

	(s_data) ? alternate_rows() : add_empty();

	$("#savechanges")[0].disabled = true;

	$("#makenew").click(function(){

		// if ($(this).hasClass('disabled')) return;

		add_row({
			"id":"new","delta_req":"","delta_days":"","operator":0,"level_req":"","river":1,"station":1,"active":0,"check":false
		}, rivers);

		$("#makenew")[0].disabled = true;
		alternate_rows();

		return false;
	});

	$("div#profile form").bind('keyup change',function(){
		$("#saveprofile")[0].disabled = false;
	});

	$("#help").click(function(){

		if ($("#help_box").length) {
			$("#help_box").fadeIn('fast');
			return;
		}

		var helpbox = $('<div class="winbox" id="help_box"><div title="Aizvērt" class="winbox_close"></div><div class="winbox_contents">'+helpbox_text+'</div></div></div>').appendTo("body");

		if ($(this).hasClass('clickme')) {
			$("div#help_box div.winbox_contents").prepend('Yo jaunais lietotāj :D<br />');
			$(this).removeClass('clickme');
		}

		$("div#user_box div.winbox_close").click(function(){
			$("div#help_box div.winbox_close").click();
		})
	});

	$("#saveprofile").click(function(){

		var form = $("div#profile form");
		var post_vars = form.serialize();

		post_vars += '&action=save_profile';

		$.post(serverside, post_vars, function(result){
			if (result == 'OK') {
				$("#profile span").text(form.children("input").val());
				$("#saveprofile")[0].disabled = true;
			}
		});

		return false;
	});

	$("#savechanges").click(function(){

		if (!form_changed) return false;

		$(".subscription").each(function(){

			var row = $(this);
			var level = row.find("td.p_level input");
			var delta = row.find("td.p_delta input");

			if (level.val() == '' && delta.val() == '') row.find("td.p_active input").attr('checked',false);
		});

		var post_vars = $("form[name=configurator]").serialize();

		post_vars += '&action=save_params';

		$.post(serverside, post_vars, function(result){

			var report_msg = '';

			for(var r in result) {
				if (result[r].new_id) {
					$("tr#id_new [name^='param[new]']").each(function(){ // $("tr#id_new td:not(.p_del)").children() // $("tr#id_new td:not(.p_del) > *")
						var name = this.name;
						this.name = name.replace('[new]', '['+result[r].new_id+']');
						$(this).removeAttr('class');
					});

					$("#id_new").attr('id','id_'+result[r].new_id);
					$("#makenew")[0].disabled = false;

					result[r].id = result[r].new_id
				}

				var cell = $("tr#id_"+result[r].id+".subscription td.p_current");

				if (result[r].msg) {

					var tck = cell.html(tick).children(".tick").tooltip({text: result[r].msg});

					if (!result[r].active) {
						result[r].msg = '<font color="#777777">'+result[r].msg+'</font>';
						tck.addClass('dimmed');
					} else {
						tck.removeClass('dimmed');
					}

					report_msg += result[r].msg+"\n";
				} else {
					cell.empty();
				}
			}

			$("pre").html(report_msg.length ? report_msg : 'Ziņojumu nav.');

			$("#savechanges")[0].disabled = true;
			form_changed = false;
		}, 'json');

		return false;
	});

	$(".clickme").click();
};

function alternate_rows() {

	$(".subscription").removeClass('odd even').each(function(i){
		$(this).addClass(i%2 ? 'odd' : 'even');
	});
}

function remove_row(row) {

	row.remove();

	if (!$("#id_new").length) $("#makenew")[0].disabled = false;

	if ($(".subscription").length) {
		alternate_rows();
	} else {
		add_empty();
		$("#savechanges")[0].disabled = true;
	}
}

function form_change_e(e) {
	if ($(".input_error").length) return;
	form_changed = true;
	$("#savechanges")[0].disabled = false;
}

function add_empty() {
	if (!$("#empty").length) $('<tr id="empty"><td colspan="9">Neviens "<span style="color:red">kaukas</span>" vēl nav izveidots</td></tr>').insertBefore("table#configurator tr#footer");
}

function id_num(id) {
	return Number(id.match(/[^\_]*$/));
}

function id_str(id) {
	return String(id.match(/[^\_]*$/));
}


var tick = '<img src="kjeksis.gif" class="tick" />';

function add_row(data, rivers) {

	var i = data.id;

	$("#empty").remove();

	$("form[name=configurator]").unbind('change',form_change_e);

	var html = '<tr class="subscription" id="id_'+i+'"><td class="p_active"><input type="checkbox" name="param['+i+'][active]" /></td><td class="p_river"><select name="param['+i+'][river]"></select></td><td class="p_station"><input type="hidden" name="param['+i+'][station]"><select name="param['+i+'][station]"></select></td><td class="p_level"><input name="param['+i+'][level]" /></td><td class="p_operator"><select name="param['+i+'][operator]"><option value="0">---</option><option value="AND">UN</option><option value="OR">VAI</option></select></td><td class="p_delta"><input type="text" name="param['+i+'][delta]" /></td><td class="p_delta_days"><select name="param['+i+'][delta_days]"><option value="0"></option><option value="1">1</option><option value="2">2</option><option value="3">3</option></select></td><td class="p_current"></td><td class="p_del"><button class="delrow small" title="Dzēst"><span>X</span></button></td></tr>';

	var row = $(html).insertBefore("#footer"); //"table#configurator tr#footer"
	var r_input = row.find("select[name='param["+i+"][river]']").append(rivers).val(data.river);
	var s_input = row.find("select[name='param["+i+"][station]']");
	var hs_input = row.find("input[name='param["+i+"][station]']");

	if (data.operator == null) data.operator = 0;

	var a_input = row.find("input[name='param["+i+"][active]']").attr('checked',Boolean(data.active));
	var l_input = row.find("input[name='param["+i+"][level]']").val(data.level_req);
	var o_input = row.find("select[name='param["+i+"][operator]']").val(data.operator);
	var dl_input = row.find("input[name='param["+i+"][delta]']").val(data.delta_req);
	var dd_input = row.find("select[name='param["+i+"][delta_days]']").val(data.delta_days);

	if (data.msg) {
		var tck = $(tick).appendTo(row.find(".p_current"));

		tck.tooltip({text: data.msg});
		if (data.active == 0) tck.addClass('dimmed');
	}

	row.find(".delrow").click(function(){

		if (id_str(row[0].id) == 'new') {
			remove_row(row);
			return false;
		}

		if (!confirm("Vai tiešām izdzēst šo 'kauko'?")) return false;

		var post_vars = {action:'del_params','param':i};

		$.post(serverside, post_vars, function(result){

			if (result == 'OK') {
				remove_row(row);
			} else {
				alert('Kļūda dzēšot ierakstu!');
			}
		});

		return false;
	});

	r_input.change(function(){

		var river = $(this).val();

		var stations = '';
		var count = 0;

		for(var s in s_list[river]) {
			stations += '<option value="'+s+'">'+s_list[river][s]+'</option>';
			count++;
		}

		s_input.empty().append(stations);

		if (count > 1) {
			s_input[0].disabled = false;
			hs_input.val('');
			hs_input[0].disabled = true;
		} else {
			s_input[0].disabled = true;
			hs_input.val(s_input.val());
			hs_input[0].disabled = false;
		}
	});

	l_input.bind('keyup change',function(){

		if (/^[-0-9]*$/.test(this.value)) {
			l_input.removeClass('input_error');
			form_change_e();

			if (dl_input[0].value > 0 && o_input[0].value == 0) {
				o_input.addClass('input_error');
				$("#savechanges")[0].disabled = true;
			} else {
				o_input.removeClass('input_error');
				form_change_e();
			}

		} else {
			l_input.addClass('input_error');
			$("#savechanges")[0].disabled = true;
		}
	});

	dl_input.bind('keyup change',function(){

		if (this.value == 0 || this.value == '') {
			dd_input[0].disabled = true;
			o_input[0].value = 0;
		} else {
			if (dd_input[0].value == 0) dd_input[0].value = 1;
			dd_input[0].disabled = false;
		}

		if (/^([0-9]{2,}|[1-9]{1})*$/.test(this.value)) {
			dl_input.removeClass('input_error');
			form_change_e();

			if (this.value > 0 && l_input[0].value !== '' && o_input[0].value == 0) {
				o_input.addClass('input_error');
				$("#savechanges")[0].disabled = true;
			} else {
				o_input.removeClass('input_error');
				form_change_e();
			}
		} else {
			dl_input.addClass('input_error');
			$("#savechanges")[0].disabled = true;
		}
	});

	o_input.bind('change',function(){

		if ((this.value == 0 && l_input[0].value !== '' && dl_input[0].value > 0)) {
			o_input.addClass('input_error');
			$("#savechanges")[0].disabled = false;
		} else {
			o_input.removeClass('input_error');
			form_change_e();
		}
	});

	dd_input.change(function(){
		if (this.value == 0) {
			dl_input.val('');
			this.disabled = true;
		}
	})

	r_input.change();
	dl_input.change();

	s_input.val(data.station);

	$("form[name=configurator]").bind('change',form_change_e);
}

var req = {v:0};
var url = 'http://www.udensturisms.lv/h2o/';
var re = new RegExp(/^[t|r](?=_nav)/);
var serverside = 'subscriptions.php';

function msg(text) {
	if (dev_mode) alert(text);
}

$(document).ready(function(){

	$("head").append('<link rel="shortcut icon" href="favicon.ico" id="icon" />');

	$(window).keydown(function(event){
		if(event.keyCode == 27) $("div.winbox_close:visible").click();
	});

	$("div.winbox_close").live('click',function(){

		$(this).parent(":visible").hide();
		$("div#info_box_circle").hide();
	});

	$("a#user_link").click(function(){

		$("div.winbox_close").click();

		user_container = $("div#user_box div.winbox_contents");

		user_container.load(serverside, function(result){

			$("div#user_box").fadeIn('fast');

			var loginform = $("form#loginform");

			if (loginform.length) {

				loginform.children("input[name=wn_usrnam]").focus();

				loginform.submit(function(){
					$.post(serverside, $(this).serialize(), function(result) {
						user_container.html(result);
						userbox_ready();
					});

					return false;
				});
			}

			userbox_ready();
		});
	});

	if (readCookie('dev') == '2') $("a#user_link").click();

	$("div#info_box_print").click(function(){
		$('<form class="none" target="background_filefunc" action="load_data.php" method="post" enctype="multipart/form-data"><input name="save_info" value="'+req.r+'" /></form>').appendTo("body").submit().remove();
	});

});

function load_chart() {

	document.location.hash = (req.t > 0) ? req.r+'|'+req.t : req.r;

	$("div.winbox_close").click();
	$("div#loading").show();

	var extra_data = new Array();

	// req.v=0;

	$.ajax({
		type: 'POST',
		url: 'load_data.php',
		data: req,
		dataType: 'json',
		success: function(response){

			if (response.wiki) extra_data[0] = '<a href="'+response.wiki+'" target="_blank">wiki</a>';
			if (response.info) extra_data[1] = '<a href="#" id="info_link" onclick="return false">info</a>';
			if (extra_data.length > 0) {

				if (extra_data[0]) {
					$("div#info").html('['+extra_data.join(' | ')+']');
				} else {
					$("div#info").html('['+extra_data[1]+']');
				}

				if (extra_data[1]) {
					$("div#info_box div.winbox_contents").html(unescape(response.info));
					$("a#info_link").click(function(){
						$("div.winbox_close").click();
						$("div#info_box").fadeIn('fast', function(){
							$("div#info_box_circle").fadeIn('slow');
						});
					});
				}
			}

			if (response.chart[0] && response.chart[0].data[0]) {

				generate_chart(response.chart, req.t, response.min_level);
			} else {

				$("div#chart").html('<div id="nodata">Šādi dati nav pieejami</div>');
				$("div#loading").hide();
				return;
			}

			$("div#loading").hide();
		}
	});
}

function left_pad(n) {
	n = String(n);
	return (n.length == 1) ? '0'+n : n;
}

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;
}

