/*  File: jqm-init.js       */
/*  By:   Jeremy Tredway    */
/*  Ver:  2007-12-17        */


$(function() {

	// initialize print icons
	$(".print_jqiframe").click(function() {
		if (document.getElementById("jqiframe")) {
			if ($.browser.msie) {
				document.jqiframe.focus();
				document.jqiframe.print();
			} else {
				window.frames["jqiframe"].focus();
				window.frames["jqiframe"].print();
			}
		}
		return false;
	});

	// set overlay opacity
	var ap_ov_val = 80;

	// initialize ajax triggers
	$(".jqModal").click(function(){
		$("#frm_modal .target").empty();
		$("#frm_modal .target").html('<div class="center" style="padding:1em"><img src="../img/ajax_loader.gif" width="100" height="100" alt="Loading..." /></div>');
		$("#frm_main").ScrollTo(400);
		if (document.getElementById("jqiframe")) {
			frames["jqiframe"].location.href = this.href;
		}
	});

	// define ajax call
	$("#frm_modal").jqm({ ajax: "@href", target: ".target", overlay: ap_ov_val });

});


// BEGIN functions for smooth scrolling

jQuery.getPos = function (e) {
	var l = 0;
	var t  = 0;
	var w = jQuery.intval(jQuery.css(e,"width"));
	var h = jQuery.intval(jQuery.css(e,"height"));
	var wb = e.offsetWidth;
	var hb = e.offsetHeight;
	while (e.offsetParent) {
		l += e.offsetLeft + (e.currentStyle?jQuery.intval(e.currentStyle.borderLeftWidth):0);
		t += e.offsetTop + (e.currentStyle?jQuery.intval(e.currentStyle.borderTopWidth):0);
		e = e.offsetParent;
	}
	l += e.offsetLeft + (e.currentStyle?jQuery.intval(e.currentStyle.borderLeftWidth):0);
	t += e.offsetTop + (e.currentStyle?jQuery.intval(e.currentStyle.borderTopWidth):0);
	return {x:l, y:t, w:w, h:h, wb:wb, hb:hb};
};

jQuery.getClient = function(e) {
	if (e) {
		w = e.clientWidth;
		h = e.clientHeight;
	} else {
		w = (window.innerWidth) ? window.innerWidth : (document.documentElement && document.documentElement.clientWidth) ? document.documentElement.clientWidth : document.body.offsetWidth;
		h = (window.innerHeight) ? window.innerHeight : (document.documentElement && document.documentElement.clientHeight) ? document.documentElement.clientHeight : document.body.offsetHeight;
	}
	return {w:w,h:h};
};

jQuery.getScroll = function (e) {
	if (e) {
		t = e.scrollTop;
		l = e.scrollLeft;
		w = e.scrollWidth;
		h = e.scrollHeight;
	} else  {
		if (document.documentElement && document.documentElement.scrollTop) {
			t = document.documentElement.scrollTop;
			l = document.documentElement.scrollLeft;
			w = document.documentElement.scrollWidth;
			h = document.documentElement.scrollHeight;
		} else if (document.body) {
			t = document.body.scrollTop;
			l = document.body.scrollLeft;
			w = document.body.scrollWidth;
			h = document.body.scrollHeight;
		}
	}
	return { t: t, l: l, w: w, h: h };
};

jQuery.intval = function (v) {
	v = parseInt(v);
	return isNaN(v) ? 0 : v;
};

jQuery.fn.ScrollTo = function(s) {
	o = jQuery.speed(s);
	return this.each(function(){
		new jQuery.fx.ScrollTo(this, o);
	});
};

jQuery.fx.ScrollTo = function (e, o) {
	var z = this;
	z.o = o;
	z.e = e;
	z.p = jQuery.getPos(e);
	z.s = jQuery.getScroll();
	z.clear = function(){clearInterval(z.timer);z.timer=null};
	z.t=(new Date).getTime();
	z.step = function(){
		var t = (new Date).getTime();
		var p = (t - z.t) / z.o.duration;
		if (t >= z.o.duration+z.t) {
			z.clear();
			setTimeout(function(){z.scroll(z.p.y, z.p.x)},13);
		} else {
			st = ((-Math.cos(p*Math.PI)/2) + 0.5) * (z.p.y-z.s.t) + z.s.t;
			sl = ((-Math.cos(p*Math.PI)/2) + 0.5) * (z.p.x-z.s.l) + z.s.l;
			z.scroll(st, sl);
		}
	};
	z.scroll = function (t, l){window.scrollTo(l, t)};
	z.timer=setInterval(function(){z.step();},13);
};

// END functions for smooth scrolling
