/******
	@Copyright PolarCode Oy 
***/

function common(){
	var cfg = {
		bLoader: 		false, //is loader open..? 
		common_dialog: null
	};
	
	// open and close the modal dialog
	this.open_modal = function(id) {
		Common.open_common_dialog(id);
	}
	
	this.close_modal = function(id) {
		$j("#" + id).addClass("modalCloseIeHide");
		Common.close_common_dialog(id);
	}

	/** Displays and hides loading image for ajax querys.. **/
	this.loading = function(strCustomMessage){if(cfg.bLoader){jQuery.unblockUI();cfg.bLoader = false;}else{jQuery.blockUI((typeof strCustomMessage == 'undefined') ? '' : { message: strCustomMessage});cfg.bLoader = true;}}	
	
	/** END **/
	
	/** INFO; SUCCESS AND ERROR MESSAGES strType: "error", "success" or "info" **/
	this.showMessage = function(strType, strMessage) {
		$j("#"+strType+"MessageHtml").html(strMessage);
		$j("#"+strType+"MessageDiv").show();
		location.hash = "#";
	}
	this.hideMessage = function(strType) {$j("#"+strType+"MessageHtml").html("");$j("#"+strType+"MessageDiv").hide();}
	/** END ***/
	
	/*** roletable row & column selectors **/
	this.roletableCheckColums = function(obj,col){$j(obj).parent().parent().parent().parent().parent().parent().parent().find(('td:nth-child('+col+')')).find('input').attr('checked',($j(obj).parent().parent().parent().parent().parent().parent().parent().find(('td:nth-child('+col+')')).find('input').attr('checked')? '' : 'true'));}
	this.roletableCheckRow = function(obj){$j(obj).parent().find('input').attr('checked',($j(obj).parent().find('input').attr('checked') ? '' : 'true'));}
	this.roletableBreakInheriting = function (obj){$j(obj).parent().parent().parent().find('input').attr('disabled','');$j(obj).parent().children().each(function(i, o){$j(o).toggle();});}
	this.shrole_table = function(obj,id) {
		if($j(obj).attr("src").indexOf("s_right") !== -1){
			//show existing structure rows
			if($j(".role_parent_"+id).length > 0){$j(obj).attr("src","images/navigation/s_down.gif");$j(".role_parent_"+id).show();}
		}else{$j(obj).attr("src","images/navigation/s_right.gif");var $tr = $j(obj).parent().parent().next();var level = parseInt($tr.prev().attr('level'));
			while($tr.attr('level') > level){
				$tr.find('td:first > img').attr("src","images/navigation/s_right.gif");$tr = $tr.hide().next();
			}
		}	
	};
	/** END ***/
	
	/** LOCALE **/
	this.getLocale = function(tagname,str){	return( (typeof tagname == "undefined" ? "locale missing: ("+str+")" : tagname ));}
	/** END **/
	
	this.open_common_dialog = function(id,css){
			if(cfg.common_dialog != null)
				this.close_common_dialog();
			
			cfg.common_dialog = $j("#"+id).modal({
				onClose: function(dialog){
					dialog.data.fadeOut('fast', function () {
						dialog.container.hide('fast', function () {
							$j.modal.close();
						});
					});
				},
				dialogCss: (typeof css == 'string' || typeof css == 'object') ? css : {
					width	:	"300px",
					heigth:	"300px"
				}
			});
			if(id == "IndexBlock") {
				$j.ajax({
					type: "GET",
					url: "index.php?firstentryflag=true",
					success: function() {
					}
				})
			}
	}
	
	this.close_common_dialog = function(id){
			cfg.common_dialog.close();	
			cfg.common_dialog = null;	
			
			if(typeof id == "string"){
				$j("#"+id).remove();
			}
	}
	
	this.open_info_dialog = function(strUrl,strElementId,objEvent,b_hideCross,css){
		//get the html content
		var html = "";
		if(strUrl != ""){
			$j.ajax({
				async:false,
				url: strUrl,
				type: "GET",
				dataType: "html",
		  		success: function(response){
		  			html = response;
		  		}
			});
		}
		else if(strElementId != ""){
			html = $j("#"+strElementId).html();
		}
		
		//remove common_info_dialog
		$j("#common_info_dialog").remove();
		
		//create a new common_info_dialog
		$j("#body").append($j("<table cellpadding='0' cellspacing='0' id='common_info_dialog' class='common_info_dialog'><tr><td>" + (b_hideCross === true ? "" : "<img src='images/common/cross.png' style='float:right;' class='hyperlink' onclick='Common.close_info_dialog();' />") +html+"</td></tr></table>"));
	
		//get the position for the div
		if(typeof css == "object")
			$j('#common_info_dialog').css(css);
		
		if($j(window).width() < ($j('#common_info_dialog').width()+objEvent.clientX))
			var left = parseFloat(objEvent.clientX)-$j('#common_info_dialog').width();
		else
			var left = parseFloat(objEvent.clientX);
		if($j(window).height() < ($j('#common_info_dialog').height()+objEvent.clientY))
			var top = parseFloat(objEvent.clientY)-$j('#common_info_dialog').height();
		else
			var top = parseFloat(objEvent.clientY);
		
		$j('#common_info_dialog').css({top:(top+$j(window).scrollTop()),left:(left+$j(window).scrollLeft())}).show();
	}
	
	this.close_info_dialog = function(){
		$j("#common_info_dialog").remove();
	}
	
	this.get_role_table = function(module,method,container_id,nodeIDX){
		var parent_container = $j("#" + container_id).parent();
		//roletable is not loaded -> get it from server
		 if($j("#rolemanager_roletable").val() != 1){
		 		$j("#" + container_id).load('index.php?name=' + module + '&method=' + method + '&func=getRoleTable&' + (method == 'insert' ? 'parentIDX' : 'nodeIDX') + '=' + nodeIDX + '&blocks=ah');		 
		 }
		
		this.hideMessage('info');
		
		// create modal
		var mod = $j("#"+container_id).modal({
			containerHeaderText: Common.getLocale(objLC.js_privileges,"js_privileges"),
			forcedelete: true
		});
		
		// ok button - clones modal content and closes modal
		$j("#modalContainerDiv").append($j("<input type='button' value='" + Common.getLocale(objLC.js_set_n_close,"js_set_n_close") + "'>").bind('click',function(){
			parent_container.prepend($j("#" + container_id).clone().removeClass('modalData').addClass('hidden').attr('style',''));
			Common.showMessage('info',Common.getLocale(objLC.js_remember_to_save_roles,"js_remember_to_save_roles"));
			mod.close();	
		 }));
		 
		// cancel button. closes modal. next time when opening modal content will come from server
		$j("#modalContainerDiv").append($j("<input type='button' value='" + Common.getLocale(objLC.js_cancel,"js_cancel") + "'>").bind('click',function(){
			parent_container.prepend($j("<div id='" + container_id + "'></div>").addClass('hidden'));
			mod.close();
		}));
	}
	
	this.getGetVar = function(name) {
		var q = document.location.search;
		var i = q.indexOf(name + '=');
		
		if (i == -1) {
			return false;
		}
		
		var r = q.substr(i + name.length + 1, q.length - i - name.length - 1);
		
		i = r.indexOf('&');
		
		if (i != -1) {
			r = r.substr(0, i);
		}
		
		return r.replace(/\+/g, ' ');
	}
	
	this.createCookie = function(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=/";
	}
	
	this.readCookie = function(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;
	}
	
	this.eraseCookie = function(name) {
		alert(name);
		createCookie(name,"",-1);
	}
	
	this.info = function(event){
		var pos = $j(this).position();
		pos.top=pos.top+42;
		pos.left+=$j(this).width()+5;
		$j('<div class="info_message" id="info_'+$j(this).attr('id')+'">'+$j(this).attr('message')+'</div>').css(pos).appendTo("#body");
	}
	this.destroy_info = function(){
		$j("#info_"+$j(this).attr('id')).remove();
	}
	
	this.keepSession = function(){
		var t = setTimeout("Common.keepSession_ajaxRequest();",300000)
	}
	this.keepSession_ajaxRequest = function(){
		$j.ajax({
			async:false,
			url: "index.php?keepSession=true",
			type: "GET",
			dataType: "html",
			success: function(response){}
		});
		Common.keepSession();
	}
	
	this.readFontSize = function() {
		var size = !isNaN(parseFloat(Common.readCookie("fontresize"))) ? parseFloat(Common.readCookie("fontresize")) : 0;
		Common.displayFontSize(size);
	}
	
	this.setFontSize = function(size) {
		Common.createCookie("fontresize",size,30);
		Common.displayFontSize(size);
	}
	
	this.displayFontSize = function(size) {
		$j(".moduleContent").find("p, div, a, td, th").css('font-size', (11 + size));
		$j(".moduleContent").find("h3").css('font-size', (12 + size));
		$j(".moduleContent").find("h3 a").css('font-size', (12 + size));
	}
	
	this.search_flights = function() {
		from = $j("#flight_from").val();
		to = $j("#flight_to").val();
		dep = $j("#flight_departure").val();
		ret = $j("#flight_return").val()
		deparray = $j("#flight_departure").val().split(".");
		depday = deparray[0];
		depymonth = deparray[2] + deparray[1];
		retarray = $j("#flight_return").val().split(".");
		retday = retarray[0];
		retymonth = retarray[2] + retarray[1];
		adults = $j("#flight_adults").val();
		children = $j("#flight_children").val();
		urltemp = "http://www.vertaa.fi/cgi-bin/origin.cgi?origin=matkalehti&url=";
		url = urltemp + encodeURIComponent("/lentoliput/?departureDay="+depday+"&departureYearMonth="+depymonth+"&returnDay="+retday+"&returnYearMonth="+retymonth+"&adults="+adults+"&children="+children+"&childrenAges=&ticketType=return&seatingClass=economy&from="+from+"&departureIATACode="+from+"&dest="+to+"&destinationIATACode="+to+"&date1="+dep+"&date2="+ret+"&firesubmit=true");
		window.open(url);
	}
	
	this.displayDate = function() {
		var date = new Date();
		var day = "";
		var minutes = String(date.getMinutes()).length == 1 ? "0" + String(date.getMinutes()) : date.getMinutes();
		switch(date.getDay()) {
			case 1:
				day = Common.getLocale(objLC.js_monday,"js_monday");
				break;
			case 2:
				day = Common.getLocale(objLC.js_tuesday,"js_tuesday");
				break;
			case 3:
				day = Common.getLocale(objLC.js_wednesday,"js_wednesday");
				break;
			case 4:
				day = Common.getLocale(objLC.js_thursday,"js_thursday");
				break;
			case 5:
				day = Common.getLocale(objLC.js_friday,"js_friday");
				break;
			case 6:
				day = Common.getLocale(objLC.js_saturday,"js_saturday");
				break;
			case 7:
				day = Common.getLocale(objLC.js_sunday,"js_sunday");
				break;
		}
		$j("#logo-banner-date").html("<span>" + day + "&nbsp;" + date.getDate() + "." + (parseFloat(date.getMonth()) + 1) + "." + date.getFullYear() + "&nbsp;" + date.getHours() + ":" + minutes + "</span>");
	}
}

var Common = new common;
;(function($){if(/1\.(0|1|2)\.(0|1|2)/.test($.fn.jquery)||/^1.1/.test($.fn.jquery)){alert('blockUI requires jQuery v1.2.3 or later!  You are using v'+$.fn.jquery);return}$.blockUI=function(a){install(window,a)};$.unblockUI=function(a){remove(window,a)};$.fn.block=function(a){return this.each(function(){if($.css(this,'position')=='static')this.style.position='relative';if($.browser.msie)this.style.zoom=1;install(this,a)})};$.fn.unblock=function(a){return this.each(function(){remove(this,a)})};$.blockUI.version=2.09;$.blockUI.defaults={message:"<h3>"+Common.getLocale(objLC.js_loading,"js_loading")+"</h3><br><img src='images/common/ajax-loader_medium.gif'/>",css:{padding:10,margin:0,width:'30%',top:'40%',left:'35%',textAlign:'center',color:'#000',border:'1px solid #333',backgroundColor:'#fff',cursor:'wait'},overlayCSS:{backgroundColor:'#000',opacity:'0.4'},baseZ:1000,centerX:true,centerY:true,allowBodyStretch:true,constrainTabKey:true,fadeOut:400,focusInput:true,applyPlatformOpacityRules:true,onUnblock:null,quirksmodeOffsetHack:4};var q=$.browser.msie&&/MSIE 6.0/.test(navigator.userAgent);var r=null;var u=[];function install(a,b){var c=(a==window);var d=b&&b.message!==undefined?b.message:undefined;b=$.extend({},$.blockUI.defaults,b||{});b.overlayCSS=$.extend({},$.blockUI.defaults.overlayCSS,b.overlayCSS||{});var e=$.extend({},$.blockUI.defaults.css,b.css||{});d=d===undefined?b.message:d;if(c&&r)remove(window,{fadeOut:0});if(d&&typeof d!='string'&&(d.parentNode||d.jquery)){var f=d.jquery?d[0]:d;var g={};$(a).data('blockUI.history',g);g.el=f;g.parent=f.parentNode;g.display=f.style.display;g.position=f.style.position;g.parent.removeChild(f)}var z=b.baseZ;var h=($.browser.msie)?$('<iframe class="blockUI" style="z-index:'+z++ +';border:none;margin:0;padding:0;position:absolute;width:100%;height:100%;top:0;left:0" src="javascript:false;"></iframe>'):$('<div class="blockUI" style="display:none"></div>');var j=$('<div class="blockUI blockOverlay" style="z-index:'+z++ +';cursor:wait;border:none;margin:0;padding:0;width:100%;height:100%;top:0;left:0"></div>');var k=c?$('<div class="blockUI blockMsg blockPage" style="z-index:'+z+';position:fixed"></div>'):$('<div class="blockUI blockMsg blockElement" style="z-index:'+z+';display:none;position:absolute"></div>');if(d)k.css(e);if(!b.applyPlatformOpacityRules||!($.browser.mozilla&&/Linux/.test(navigator.platform)))j.css(b.overlayCSS);j.css('position',c?'fixed':'absolute');if($.browser.msie)h.css('opacity','0.0');$([h[0],j[0],k[0]]).appendTo(c?'body':a);var m=$.browser.msie&&(!$.boxModel||$('object,embed',c?null:a).length>0);if(q||m){if(c&&b.allowBodyStretch&&$.boxModel)$('html,body').css('height','100%');if((q||!$.boxModel)&&!c){var t=sz(a,'borderTopWidth'),l=sz(a,'borderLeftWidth');var n=t?'(0 - '+t+')':0;var p=l?'(0 - '+l+')':0}$.each([h,j,k],function(i,o){var s=o[0].style;s.position='absolute';if(i<2){c?s.setExpression('height','Math.max(document.body.scrollHeight, document.body.offsetHeight) - (jQuery.boxModel?0:'+b.quirksmodeOffsetHack+') + "px"'):s.setExpression('height','this.parentNode.offsetHeight + "px"');c?s.setExpression('width','jQuery.boxModel && document.documentElement.clientWidth || document.body.clientWidth + "px"'):s.setExpression('width','this.parentNode.offsetWidth + "px"');if(p)s.setExpression('left',p);if(n)s.setExpression('top',n)}else if(b.centerY){if(c)s.setExpression('top','(document.documentElement.clientHeight || document.body.clientHeight) / 2 - (this.offsetHeight / 2) + (blah = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) + "px"');s.marginTop=0}})}k.append(d).show();if(d&&(d.jquery||d.nodeType))$(d).show();bind(1,a,b);if(c){r=k[0];u=$(':input:enabled:visible',r);if(b.focusInput)setTimeout(focus,20)}else center(k[0],b.centerX,b.centerY)};function remove(a,b){var c=a==window;var d=$(a).data('blockUI.history');b=$.extend({},$.blockUI.defaults,b||{});bind(0,a,b);var e=c?$('body').children().filter('.blockUI'):$('.blockUI',a);if(c)r=u=null;if(b.fadeOut){e.fadeOut(b.fadeOut);setTimeout(function(){reset(e,d,b,a)},b.fadeOut)}else reset(e,d,b,a)};function reset(a,b,c,d){a.each(function(i,o){if(this.parentNode)this.parentNode.removeChild(this)});if(b&&b.el){b.el.style.display=b.display;b.el.style.position=b.position;b.parent.appendChild(b.el);$(b.el).removeData('blockUI.history')}if(typeof c.onUnblock=='function')c.onUnblock(d,c)};function bind(b,a,c){var d=a==window,$el=$(a);if(!b&&(d&&!r||!d&&!$el.data('blockUI.isBlocked')))return;if(!d)$el.data('blockUI.isBlocked',b);var e='mousedown mouseup keydown keypress click';b?$(document).bind(e,c,handler):$(document).unbind(e,handler)};function handler(e){if(e.keyCode&&e.keyCode==9){if(r&&e.data.constrainTabKey){var a=u;var b=!e.shiftKey&&e.target==a[a.length-1];var c=e.shiftKey&&e.target==a[0];if(b||c){setTimeout(function(){focus(c)},10);return false}}}if($(e.target).parents('div.blockMsg').length>0)return true;return $(e.target).parents().children().filter('div.blockUI').length==0};function focus(a){if(!u)return;var e=u[a===true?u.length-1:0];if(e)e.focus()};function center(a,x,y){var p=a.parentNode,s=a.style;var l=((p.offsetWidth-a.offsetWidth)/2)-sz(p,'borderLeftWidth');var t=((p.offsetHeight-a.offsetHeight)/2)-sz(p,'borderTopWidth');if(x)s.left=l>0?(l+'px'):'0';if(y)s.top=t>0?(t+'px'):'0'};function sz(a,p){return parseInt($.css(a,p))||0}})(jQuery);

var mgzblock = function(){
	var fadedout = 0;
	
	this.get_titles = function(id){

		if(this.fadedout != id){
			$j("#mb_cover_" + id).fadeOut();
			this.fadedout = id;
			$j("#mb_articles_" + id).show();
		}else{
			$j("#mb_cover_" + id).hide();
			$j("#mb_articles_" + id).show();
		}
	}

	this.get_covers = function(id){

		if(this.fadedout != id){
			$j("#mb_cover_" + id).show();
			$j("#mb_articles_" + id).fadeOut();
			this.fadedout = id;
		}else{
			$j("#mb_cover_" + id).show();
			$j("#mb_articles_" + id).hide();
		}
	}
}
var mgzb = new mgzblock();
