
$(document).ready(function(){
    // initialize menuebar
    /*var links = $("#header_menue > a").toArray();

    for(var i = 0; i < links.length; i++){
        if($(links[i]).hasClass("current")){
            showSubmenue(i, links[i]);
            break;
        }
    }*/

    /*$("form").validator({
        effect: 'wall',
        inputEvent: 'change',
        grouped: 'true'
    });*/
    var inputs = $(':input:not([type=hidden])');
    inputs.attr('onMouseOver',"return ($(this).attr('tooltip') ? overlib($(this).attr('tooltip')) : null);");
    inputs.attr('onMouseOut',"return nd();");
    
    var scrollpanel = $('.scroll-pane').jScrollPane({showArrows: true, verticalGutter: 1, autoReinitialise: true});
    //scrollpanel.reinitialise();


    $.tools.validator.addEffect("wall", function(errors, event) {
        // invalid inputs
        $.each(errors, function()  {
            var input = this.input;
            input.addClass('invalid');
            var pnode = $('label[for='+input.attr("name")+']');
            if(pnode){
            	pnode.addClass('error');
            }
            else {
            	var found = false;
	            for(var i = 0, pnode = input.parent(); i < 3; i++, pnode = pnode.parent()){
	            	if(pnode.nodeName == 'tr'){
	            		pnode.addClass('error');
	                	found = true;
	            	}
	            }
	            if(!found){
	                input.parent().addClass('error');
	            }
            }
            input.attr('tooltip', this.messages[0]);
        });
    }, function(inputs)  {
        // all inputs are valid
        $.each(inputs, function()  {
            var input = $(this);
            input.removeClass('invalid');
            var pnode = $('label[for='+input.attr("name")+']');
            if(pnode){
            	pnode.removeClass('error');
            }
            else {
	            for(var i = 0, pnode = input.parent(); i < 3; i++, pnode = pnode.parent()){
	            	pnode.removeClass('error');
	                found = true;
	            }
            }
            input.parent().parent().removeClass('error');
            input.removeAttr('tooltip');
        });
    });

    // Regular Expression to test whether the value is valid
    $.tools.validator.fn("[type=time]", "Please supply a valid time", function(input, value) {
        return /^\d\d:\d\d$/.test(value);
    });
    $.tools.validator.fn("[data-equals]", "Value not equal with the $1 field", function(input) {
        var name = input.attr("data-equals"),
        field = this.getInputs().filter("[name=" + name + "]");
        return input.val() == field.val() ? true : [name];
    });
    $.tools.validator.fn("[minlength]", function(input, value) {
        var min = input.attr("minlength");
        return value.length >= min ? true : {
            en: "Please provide at least " +min+ " character" + (min > 1 ? "s" : ""),
            fi: "Kentän minimipituus on " +min+ " merkkiä"
        };
    });
    //TODO: doesn't work, empty inputs are only validated with required=true
    $.tools.validator.fn("[either]", function(input, value) {
        var name = input.attr("either");
        field = this.getInputs().filter("[name=" + name + "]");
        var err = field.parent().parent().find('td:fist').html();
        return (value.length > 0 || field.val().length > 0) ? true : [err];
    });
    /* TODO: jquerytools blocks all radio validations :(
    $.tools.validator.fn("[type=radio][required]", function(input, value) {
    	var err = "You have to select one of them";
		return [err];
	});*/

    $.tools.validator.localize("en", {
        '*'			: 'Your input is not valid',
        ':email'  	: 'Please input a vaild e-Mail address',
        ':number' 	: 'Please input a number',
        ':url' 		: 'Please input a valid URL',
        '[max]'	 	: 'Only numbers less than $1 are allowed',
        '[min]'		: 'Only numbers over $1 are allowed',
        '[required]'	: 'This field is required',
        '[pattern]'  : 'This field doesn\'t match the pattern',
        '[either]'  : 'Entweder dieses Feld, oder $1 muss ausgefüllt sein'
    });

    
    $('#overlay').overlay({
      target: '#overlay',
      left: 'center',
      top: 'center',
      fixed: true,
      closeOnClick: true,
      mask: {
        color: '#000',
        loadSpeed: 200,
        opacity: 0.8
      },
      onBeforeClose: function(){
        if(refresh){
          refresh = false;
          location.reload();
        }
      }
    });
    
    $('a.thickbox').live('click', function(){
      oldatanode = $('#overlay > .contentWrap');
      oldatanode.empty();
      oldatanode.load($(this).attr('href'), function(){
        var ol = $('#overlay').data("overlay");
        ol.load();
        $(oldatanode.find('.close')).click(function(e) {
          ol.close();
        });
      });
      return false;
    });
    
    $('#overlay').find('#login2').find('form').live('submit',function(){
      $(this).ajaxSubmit({ 
        target:     '#overlay > .contentWrap',
        url: $(this).attr('action'),
        success:    function() { 
          refresh = true;
        } 
      });
      return false;
    });
    
    $('.prev_image').live('mouseover',function(){
      $('#previmage').attr('src',$(this).attr('src'));
    });
});


var refresh = false;

/*
function showSubmenue(z, ele){
    var padding = 15;
    var childs = $("#header_submenue > div").toArray();

    //$("#header_menue > a").removeClass('current');
    //$(ele).addClass('current');

    for(var i = 0; i < childs.length; i++){
        if(i == z){
            childs[i].style.marginLeft = (ele.offsetLeft+ele.offsetWidth-padding)+"px";
            childs[i].style.display = 'inline';
        }
        else {
            childs[i].style.display = 'none';
        }
    }
}
*/
function getX(ele) {
    return ele.offsetLeft+(ele.offsetParent ? getY(ele.offsetParent) : 0);
}

function getY(ele) {
    return ele.offsetTop+(ele.offsetParent ? getY(ele.offsetParent) : 0);
}
function number_format(number, laenge, sep, th_sep) {
  number = Math.round( number * Math.pow(10, laenge) ) / Math.pow(10, laenge);
  str_number = number+"";
  arr_int = str_number.split(".");
  if(!arr_int[0]) arr_int[0] = "0";
  if(!arr_int[1]) arr_int[1] = "";
  if(arr_int[1].length < laenge){
  	nachkomma = arr_int[1];
  	for(i=arr_int[1].length+1; i <= laenge; i++){  
  		nachkomma += "0";  
  	}
  	arr_int[1] = nachkomma;
  }
  if(th_sep != "" && arr_int[0].length > 3){
	  Begriff = arr_int[0];
	  arr_int[0] = "";
	  for(j = 3; j < Begriff.length ; j+=3){
		  Extrakt = Begriff.slice(Begriff.length - j, Begriff.length - j + 3);
		  arr_int[0] = th_sep + Extrakt +  arr_int[0] + "";
	  }
	  str_first = Begriff.substr(0, (Begriff.length % 3 == 0)?3:(Begriff.length % 3));
	  arr_int[0] = str_first + arr_int[0];
  }
  return arr_int[0]+sep+arr_int[1];
}


