$j = jQuery.noConflict();
var $hassubmitted = false;
var $hassubmitted_reg = false;
var $hassubmitted_pinreminder = false;

$j(document).ready(function(){
	
	/* preload ui images
	---------------------------------------*/
	//$j.preloadImages('mysite/i/nav_left_active.png','mysite/i/nav_right_active.png');
	
	/* nav magic
	---------------------------------------* /
	if($j('#nav').length > 0) {
		var $nav_li = $j('#nav li');
		var $nav_li_first = $j($nav_li.get(0));
		var $nav_li_last = $j($nav_li.get(($nav_li.length-1)));
		$nav_li_first.html('<div id="nav_left" class="fitted">'+$nav_li_first.html()+'</div>');
		$nav_li_last.html('<div id="nav_right" class="fitted">'+$nav_li_last.html()+'</div>');
		// make ie6 play along
		$j('#nav_left').mouseover(function() {
			$j(this).addClass("current");
		}).mouseout(function(){
			$j(this).removeClass("current");
		});
		$j('#nav_right').mouseover(function() {
			$j(this).addClass("current");
		}).mouseout(function(){
			$j(this).removeClass("current");
		});
	}
	
	/* nav corners
	---------------------------------------*/
	if($j('#nav').length > 0) {
		fixNav();
	}
	
	/* loginbox
	---------------------------------------*/
	if($j('#loginform').length > 0) {
		$j('#loginform .input').each(function(){
			$j(this).removeClass('input');
			$j(this).addClass('input_formatted');
			$j(this).html('<div class="input_left">'+$j(this).html()+'</div>');
		});
		$j('#loginform .register').each(function(){
			$j(this).removeClass('register');
			$j(this).addClass('register_formatted'+( ($j('#loginform .pinreminderlink').length > 0 ) ? '_reminder' : ''));
		});
		$j('#login_email').bind('focus',cleardefault);
		$j('#login_email').bind('blur',setdefault);
		$j('#login_email').bind('keyup',checklogindata);
		$j("#login_pin").numeric();
		$j('#login_pin').bind('focus',cleardefault);
		$j('#login_pin').bind('blur',setdefault);
		$j('#login_pin').bind('keyup',checklogindata);
		var $id = button('#loginform .submit input');
		$j('#'+$id).click(function() {
			if(checklogin()) {
				$j('#loginform').submit();
			}
		});
	}

	/* logged in box
	---------------------------------------*/
	if($j('#loggedinform').length > 0) {
		$j('#loggedinform .logout').each(function(){
			$j(this).removeClass('logout');
			$j(this).addClass('logout_formatted');
		});
		var $id = button('#loggedinform .submit input');
		$j('#'+$id).each(function(){
			/*$w = $j('#'+$id+' .button_content').width()+20;
			$x = Math.floor((270-$w)/2);
			$j($j(this).parent()).css({'padding-left':$x+'px'});
			*/
			$j(this).click(function() {
				$j('#loggedinform').submit();
			});
		});
	}
	
	/* registerform
	---------------------------------------*/
	if($j('#regform').length > 0) {
		$j('#regform .input').each(function(){
			$j(this).removeClass('input');
			$j(this).addClass('input_formatted');
			$j(this).html('<div class="input_left">'+$j(this).html()+'</div>');
		});
		$j('#reg_email').bind('keyup',checkregdata);
		$j("#reg_pin").numeric();
		$j('#reg_pin').bind('keyup',checkregdata);
		$j("#reg_pin2").numeric();
		$j('#reg_pin2').bind('keyup',checkregdata);
		var $id = button('#regform .submit input');
		$j('#'+$id).click(function() {
			if(checkregform()) {
				$j('#regform').submit();
			}
		});
	}
	
	/* pin reminder form
	---------------------------------------*/
	if($j('#pinreminderform').length > 0) {
		$j('#pinreminderform .input').each(function(){
			$j(this).removeClass('input');
			$j(this).addClass('input_formatted');
			$j(this).html('<div class="input_left">'+$j(this).html()+'</div>');
		});
		$j('#pinreminder_email').bind('keyup',checkpinreminderdata);
		var $id = button('#pinreminderform .submit input');
		$j('#'+$id).click(function() {
			if(checkpinreminderform()) {
				$j('#pinreminderform').submit();
			}
		});
	}
	
	/* change pin 
	---------------------------------------*/
	if($j('#pinform').length > 0) {
		$j('#pinform .input').each(function(){
			$j(this).removeClass('input');
			$j(this).addClass('input_formatted');
			$j(this).html('<div class="input_left">'+$j(this).html()+'</div>');
		});
		$j("#pin_oldpin").numeric();
		$j('#pin_oldpin').bind('keyup',checkpindata);
		$j("#pin_pin").numeric();
		$j('#pin_pin').bind('keyup',checkpindata);
		$j("#pin_pin2").numeric();
		$j('#pin_pin2').bind('keyup',checkpindata);
		var $id = button('#pinform .submit input');
		$j('#'+$id).click(function() {
			if(checkpinform()) {
				$j('#pinform').submit();
			}
		});
	}

	/* update transaction history button
	---------------------------------------*/
	if($j('#updatetransactionform').length > 0) {
		var $id = button('#updatetransactionform .submit input');
		$j('#'+$id).each(function(){
			$w = $j('#'+$id+' .button_content').width()+30;
			$x = Math.floor((550-$w)/2);
			$j($j(this).parent()).css({'left':$x+'px'});
		});
		$j('#'+$id).click(function() {
			$j('#updatetransactionform').submit();
		});
	}

	/* pay form
	---------------------------------------*/
	if($j('#payform').length > 0) {
		$j("#amount_custom").numeric();
		$j('#label_amtcust').click(function(){
			$j('#amtcust').attr('checked','checked');
		});
		var $id = button('#payform .payformsubmit input');
		$j('#'+$id).each(function(){
			$w = $j('#'+$id+' .button_content').width()+30;
			$x = Math.floor((550-$w)/2);
			$j($j(this).parent()).css({'left':$x+'px'});
			$j(this).click(function() {
				if(checkpayform()) {
					$j('#payform').submit();
				}
			});
		});
	}

	/* fitted
	---------------------------------------*/
	$j('.fitted').fitted({
		'status' : true,
		'title'  : false
	})
	
	/* ie6 png fix
	---------------------------------------*/
	if($j('#main_decoration').length > 0) {
		if($j.browser.msie && $j.browser.version < 7) {
			var $src = $j('#main_decoration').attr('src');
			$j('#main_decoration').attr('src',$src.replace(".png","_ie6.png"));
			DD_belatedPNG.fix('#main_decoration');
		}
	}
	
	/* flir
	---------------------------------------*/
	// if(!$j.browser.msie || ($j.browser.msie && $j.browser.version >= 7)) {
	// 	FLIR.init({ path: 'flir/' });
	// 	var $rockwell = new FLIRStyle({cFont:'rockwell'});
	// 	var $rockwellbold = new FLIRStyle({cFont:'rockwellbold'});
	// 	var $rockwell_wrap = new FLIRStyle({cFont:'rockwell', mode:'wrap'});
	// 	var $rockwellbold_wrap = new FLIRStyle({cFont:'rockwellbold', mode:'wrap'});
	// 	if($j('#main_content h2').length > 0) {
	// 		$j($j('#main_content h2').get(0)).each(function(){ 
	// 			$j(this).addClass('flir');
	// 			FLIR.replace(this, $rockwellbold_wrap);
	// 			$j("#main_content h2 .flir-image").each(function() {
	// 				$j(this).load(function() {
	// 					FixFlirHeight($j(this));
	// 				});	
	// 			});
	// 		});
	// 	}
	// 	$j('#login h3').each(function(){ 
	// 		$j(this).addClass('flir');
	// 		FLIR.replace(this, $rockwell);
	// 		$j("#login .flir-image").each(function() {
	// 			$j(this).load(function() {
	// 				FixFlirHeight($j(this));
	// 			});	
	// 		});
	// 	});
	// 	$j('#infobox h3').each(function(){ 
	// 		$j(this).addClass('flir');
	// 		FLIR.replace(this, $rockwellbold);
	// 		$j("#infobox h3 .flir-image").each(function() {
	// 			$j(this).load(function() {
	// 				FixFlirHeight($j(this));
	// 			});	
	// 		});
	// 	});
	// 	$j('#security h1.large').each(function(){ 
	// 		$j(this).addClass('flir');
	// 		FLIR.replace(this, $rockwellbold);
	// 	});
	// 	$j('#numbers h3').each(function(){ 
	// 		$j(this).addClass('flir');
	// 		FLIR.replace(this, $rockwellbold);
	// 		$j("#numbers .flir-image").each(function() {
	// 			$j(this).load(function() {
	// 				FixFlirHeight($j(this));
	// 			});	
	// 		});
	// 	});
	// }

	/* content fix
	---------------------------------------*/
	// add more bottom margin to the ingress
	// if the first tag in the content div
	// is not a header
	$selector = $j('.ingress').length > 0 ? '.ingress' : '#content h2';
	$j($selector).next().each(function(){
		if(this.tagName.toUpperCase().indexOf('H') != 0) {
			$j(this).css({
				'marginTop'	:	'10px'
			});
		}
	});
	
});

this.fixNav = function() {
	$cnt = arguments.length <= 0 ? 0 : parseInt(arguments[0]);
	$navw = intval($j('#nav').width());
	if($navw <= 0 && $cnt < 100) {
		setTimeout("fixNav("+($cnt+1)+");",100);
	} else if($cnt < 100) {
		$j('#navcontainer').prepend('<div class="abs" id="nav_tlc"><div class="nav_corner"></div></div>');
		$j('#navcontainer').prepend('<div class="abs" id="nav_trc"><div class="nav_corner"></div></div>');
		$j('#navcontainer').prepend('<div class="abs" id="nav_blc"><div class="nav_corner"></div></div>');
		$j('#navcontainer').prepend('<div class="abs" id="nav_brc"><div class="nav_corner"></div></div>');
		// get true nav width, except opera who can't handle the truth
		if(!$j.browser.opera) {
			$navw = 0;
			$j('#nav li').each(function(){
				$navw += $j(this).width();
			});
		}
		// space topnav items as much as possible
		$space = Math.floor((intval($j('#navcontainer').parent().width())-$navw)/($j('#nav li').length*2));
		$pad = intval($j($j('#nav a').get(0)).css('paddingLeft'));
		$pad = $pad + $space +'px';
		$j('#nav a').each(function(){
			$j(this).css({
				'paddingLeft'	:	$pad,
				'paddingRight'	:	$pad
			});
			$navw += ($space*2);
		});
		// set subnav width
		$j('#subnav').css({
			'width'	:	($navw)+'px'
		});
		// position corners
		$navh = $j('#navcontainer').height();
		$cornersize = 9;
		$navh += $j('#subnav').length > 0 ? 1 : 0;
		$navh += ( $j.browser.msie && $j.browser.version < 7) ? 1 : 0;
		$navw += ( $j.browser.msie && $j.browser.version < 7) ? 1 : 0;
		$j('#nav_trc div').css({
			'left'	:	($navw-$cornersize)+'px'
		});
		$j('#nav_blc div').css({
			'top'	:	($navh-$cornersize)+'px'
		});
		$j('#nav_brc div').css({
			'left'	:	($navw-$cornersize)+'px',
			'top'	:	($navh-$cornersize)+'px'
		});
		// misc css fixes on subnav
		if($j('#subnav').length > 0) {
			$j('#nav li').css({
				'borderBottom'	: 'solid 1px #a4c544'
			});
			$j('#nav li.current').css({
				'borderBottom'	: 'solid 1px #698d01',
				'borderRight'	: 'solid 1px #b0d050'
			});
			$j('#nav li.section').css({
				'borderBottom'	: 'solid 1px #698d01',
				'borderRight'	: 'solid 1px #b0d050'
			});
			$j('#nav li.current a').css({
				'marginRight'	: '0px'
			});
			$j('#nav li.section a').css({
				'marginRight'	: '0px'
			});
		}
		/* ie6 png fix
		---------------------------------------*/
		if($j.browser.msie && $j.browser.version < 7) {
			DD_belatedPNG.fix('.nav_corner');
		}
	}
}

this.intval = function(str) {
	str = str+"";
	str = str.replace(/[^0-9\.]ig/,"");
	return Math.floor(parseFloat(str));
}

this.FixFlirHeight = function(o,h) {
	h = parseInt(h);
	t = o.attr('alt');
	addMargin = t.indexOf('q') == -1 && t.indexOf('y') == -1 && t.indexOf('p') == -1 && t.indexOf('g') == -1 && t.indexOf('j') == -1;
	if(!o.hasClass('flir-image-fixed') && addMargin) {
		$lh = o.css('lineHeight');
		$lh = parseInt($lh.replace(/[^0-9\.]/ig,''));
		if($lh > 0) {
			o.css({'marginBottom':(($lh*.2258)-1)+'px'});
		} else {
			$mb = o.css('marginBottom');
			$mb = parseInt($mb.replace(/[^0-9\.]/ig,''));
			if($mb > 0) {
				$mb += $mb * 0.18+'px';
			} else {
				$mb = '.18em';
			}
			o.css({'marginBottom':$mb});
		}
		o.addClass('flir-image-fixed');
	}
}


this.button = function(selector) {
	var $id = uid();
	$j(selector).parent().html('<div id="'+$id+'" class="button"><div class="button_left"></div><div class="button_content">'+$j(selector).val()+'</div><div class="button_right"></div></div>');
	$j('#'+$id).mouseover(function(){
		$j(this).addClass("hover");
	}).mouseout(function(){
		$j(this).removeClass("hover");
	});
	return $id;
}


this.uid = function() {
	var $c = 1;
	while($j("#uid_"+$c).length > 0) {
		$c++;
	}
	return "uid_"+$c;
}





this.checklogin = function() {
	$hassubmitted = true;
	return checklogindata($j('#loginform'));
}
this.checklogindata = function($form) {
	var $email_filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	var $int_filter = /^([0-9])+$/;
	var $float_filter = /^([0-9\,\.])+$/;
	var $email = $j('#login_email');
	var $pin = $j('#login_pin');
	var $email_val = jQuery.trim($email.val());
	var $pin_val = jQuery.trim($pin.val());
	var $send = true;
	$email.parent().parent().removeClass('error');
	$email.parent().parent().removeClass('valid');
	$pin.parent().parent().removeClass('error');
	$pin.parent().parent().removeClass('valid');
	if($email_val == '' || !$email_filter.test($email_val) ) {
		if($hassubmitted) {
			$email.parent().parent().addClass('error');
			$errtext = $j('#email_error').html();
			$j('#email_error').html($errtext.replace('<!--','').replace('-->',''));
			$j('#email_error').slideDown("fast");
		}
		$send = false;
	} else {
		$j('#email_error').slideUp("fast");
		$email.parent().parent().addClass('valid');
	}
	$pin_ok = true;
	if(isNaN(parseInt($pin_val))) {
		$pin_ok = false;
	} else {
		if( $pin_val.length != 4 ) {
			$pin_ok = false;
		}
	}
	if( ! $pin_ok ) {
		if($hassubmitted) {
			$pin.parent().parent().addClass('error');
			$errtext = $j('#pin_error').html();
			$j('#pin_error').html($errtext.replace('<!--','').replace('-->',''));
			$j('#pin_error').slideDown("fast");
		}
		$send = false;
	} else {
		$pin.val($pin_val.replace(/([^0-9]*)/ig,""));
		$j('#pin_error').slideUp("fast");
		$pin.parent().parent().addClass('valid');
	}
	return $send;
}

this.checkregform = function() {
	$hassubmitted_reg = true;
	return checkregdata($j('#regform'));
}
this.checkregdata = function($form) {
	var $email_filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	var $int_filter = /^([0-9])+$/;
	var $float_filter = /^([0-9\,\.])+$/;
	var $email = $j('#reg_email');
	var $pin = $j('#reg_pin');
	var $pin2 = $j('#reg_pin2');
	var $email_val = jQuery.trim($email.val());
	var $pin_val = jQuery.trim($pin.val());
	var $pin2_val = jQuery.trim($pin2.val());
	var $send = true;
	$email.parent().parent().removeClass('error');
	$email.parent().parent().removeClass('valid');
	$pin.parent().parent().removeClass('error');
	$pin.parent().parent().removeClass('valid');
	$pin2.parent().parent().removeClass('error');
	$pin2.parent().parent().removeClass('valid');
	if($email_val == '' || !$email_filter.test($email_val) ) {
		if($hassubmitted_reg) {
			$email.parent().parent().addClass('error');
			$errtext = $j('#reg_email_error').html();
			$j('#reg_email_error').html($errtext.replace('<!--','').replace('-->',''));
			$j('#reg_email_error').slideDown("fast");
		}
		$send = false;
	} else {
		$j('#reg_email_error').slideUp("fast");
		$email.parent().parent().addClass('valid');
	}
	if($pin_val.length != 4) {
		if($hassubmitted_reg) {
			$pin.parent().parent().addClass('error');
			$errtext = $j('#reg_pin_error').html();
			$j('#reg_pin_error').html($errtext.replace('<!--','').replace('-->',''));
			$j('#reg_pin_error').slideDown("fast");
		}
		$send = false;
	} else {
		$j('#reg_pin_error').slideUp("fast");
		$pin.parent().parent().addClass('valid');
		
		if($pin2_val != $pin_val) {
			if($hassubmitted_reg) {
				$pin2.parent().parent().addClass('error');
				$errtext = $j('#reg_pin2_error').html();
				$j('#reg_pin2_error').html($errtext.replace('<!--','').replace('-->',''));
				$j('#reg_pin2_error').slideDown("fast");
			}
			$send = false;
		} else {
			$j('#reg_pin2_error').slideUp("fast");
			$pin2.parent().parent().addClass('valid');
		}
	}
	
	return $send;
}

this.checkpinreminderform = function() {
	$hassubmitted_pinreminder = true;
	return checkpinreminderdata($j('#pinreminderform'));
}
this.checkpinreminderdata = function($form) {
	var $email_filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	var $email = $j('#pinreminder_email');
	var $email_val = jQuery.trim($email.val());
	var $send = true;
	$email.parent().parent().removeClass('error');
	$email.parent().parent().removeClass('valid');
	if($email_val == '' || !$email_filter.test($email_val) ) {
		if($hassubmitted_reg) {
			$email.parent().parent().addClass('error');
			$errtext = $j('#pinreminder_email_error').html();
			$j('#pinreminder_email_error').html($errtext.replace('<!--','').replace('-->',''));
			$j('#pinreminder_email_error').slideDown("fast");
		}
		$send = false;
	} else {
		$j('#pinreminder_email_error').slideUp("fast");
		$email.parent().parent().addClass('valid');
	}
	
	return $send;
}

this.checkpinform = function() {
	$hassubmitted_reg = true;
	return checkpindata($j('#pinform'));
}
this.checkpindata = function($form) {
	var $oldpin = $j('#pin_oldpin');
	var $pin = $j('#pin_pin');
	var $pin2 = $j('#pin_pin2');
	var $oldpin_val = jQuery.trim($oldpin.val());
	var $pin_val = jQuery.trim($pin.val());
	var $pin2_val = jQuery.trim($pin2.val());
	var $send = true;
	$oldpin.parent().parent().removeClass('error');
	$oldpin.parent().parent().removeClass('valid');
	$pin.parent().parent().removeClass('error');
	$pin.parent().parent().removeClass('valid');
	$pin2.parent().parent().removeClass('error');
	$pin2.parent().parent().removeClass('valid');
	if($oldpin_val.length != 4) {
		if($hassubmitted_reg) {
			$oldpin.parent().parent().addClass('error');
			$errtext = $j('#pin_oldpin_error').html();
			$j('#pin_oldpin_error').html($errtext.replace('<!--','').replace('-->',''));
			$j('#pin_oldpin_error').slideDown("fast");
		}
		$send = false;
	} else {
		$j('#pin_oldpin_error').slideUp("fast");
		$oldpin.parent().parent().addClass('valid');
	}
	if($pin_val.length != 4) {
		if($hassubmitted_reg) {
			$pin.parent().parent().addClass('error');
			$errtext = $j('#pin_pin_error').html();
			$j('#pin_pin_error').html($errtext.replace('<!--','').replace('-->',''));
			$j('#pin_pin_error').slideDown("fast");
		}
		$send = false;
	} else {
		$j('#pin_pin_error').slideUp("fast");
		$pin.parent().parent().addClass('valid');
		
		if($pin2_val != $pin_val) {
			if($hassubmitted_reg) {
				$pin2.parent().parent().addClass('error');
				$errtext = $j('#pin_pin2_error').html();
				$j('#pin_pin2_error').html($errtext.replace('<!--','').replace('-->',''));
				$j('#pin_pin2_error').slideDown("fast");
			}
			$send = false;
		} else {
			$j('#pin_pin2_error').slideUp("fast");
			$pin2.parent().parent().addClass('valid');
		}
	}
	
	return $send;
}



this.cleardefault = function(event) {
	$o = $j(event.target);
	if($o.attr('title') == '') {
		$o.attr('title',$o.val());
	}
	if($o.attr('title') == $o.val())
	{
		$o.val('');
		$o.addClass("active");
	}
}
this.setdefault = function(event) {
	$o = $j(event.target);
	if(jQuery.trim($o.val())=='')
	{
		$o.val($o.attr('title'));
		$o.removeClass("active");
	}
}


var $paywin = null;
this.checkpayform = function() {
	return checkpaydata($j('#payform'));
}
this.checkpaydata = function($form) {
	$send = true;
	if($j('#terms_approve').length > 0) {
		$terms = $j('#terms_approve').attr('checked');
	} else {
		$terms = true;
	}
	$amount = 0;
	$amounts = $j('#'+$form.attr('id')+' input:radio[name=amount]');
	for($i=0;$i<$amounts.length;$i++) {
		$a = $j($amounts.get($i));
		if($a.attr('checked')) {
			$amount = jQuery.trim($a.val());
			if( $amount == 'custom') {
				$amount = jQuery.trim($j('#amount_custom').val()); 
			}
			$amount = parseInt($amount.replace(/[^0-9]/ig,""));
			break;
		}
	}
	$provider = "";
	$providers = $j('#'+$form.attr('id')+' input:radio[name=provider]');
	for($i=0;$i<$providers.length;$i++) {
		$p = $j($providers.get($i));
		if($p.attr('checked')) {
			$provider = jQuery.trim($p.val());
			break;
		}
	}
	if($provider == '') {
		alert('Du måste välja en betalmetod!');
	} else {
		if(isNaN($amount) || $amount <= 0) {
			alert('Du måste ange en giltig summa!');
		} else {
			if(!$terms) {
				alert('Du måste godkänna de Allmänna villkoren!');
			} else {
				$width = 570;
				$height = 600;
				if($provider == 'shb') {
					$width = 800;
					$height = 620;
				}
				if($provider == 'fsb') {
					$width = 820;
					$height = 640;
				}
				if($provider == 'pg' || $provider == 'bg') {
					$width = 640;
					$height = 330;
				}
				$action = $form.attr('action');
				$paywin = window.open($action+'?provider='+$provider+'&amount='+$amount,'Telefiket','scrollbars,status,width='+$width+',height='+$height)
				$paywin.focus();
			}
		}
	}
	return false;
}


jQuery.preloadImages = function() {
	for(var i = 0; i<arguments.length; i++) {
		jQuery("<img>").attr("src", arguments[i]);
	}
}

jQuery.fn.outerHTML = function(s) {
	return (s) ? this.before(s).remove() : jQuery("<p>").append(this.eq(0).clone()).html();
}
