var PSB = function(){
	var REQUEST_ON_PROGRESS = false;
	var timerLoading;
	
	function prefetchImage(src){
		var img = new Image();
		img.src = src;
	}
	
	function showLoading(){
		var wait = 150;
		timerLoading = setTimeout(function(){
			$('#skn-loading-layer').show();
			$('#skn-loading').show();
		}, wait);
	}
	
	function hideLoading(){
		var wait = 400;
		clearTimeout(timerLoading);
		setTimeout(function(){
			$('#skn-loading-layer').hide();
			$('#skn-loading').hide();
		}, wait);
	}
	
	// block unsupported browser
	if (jQuery.browser.msie && parseFloat(jQuery.browser.version)<7) {
		var forceIE6 = (typeof isIE6 != 'undefined');
		if (!forceIE6) {
			if (/search/.test(window.location))
				window.location = window.location.href + '&ie6=1';
			else
				window.location = 'content.php?error=browser';
		}
			
	}
	
	return {
		request: function(url, target, data, callback){
			if (REQUEST_ON_PROGRESS) return;
			else REQUEST_ON_PROGRESS = true;
			showLoading();
			
			data = data || {};
			callback = callback || {};
			
			jQuery.ajax({
				type: 'GET',
				url: url,
				data: jQuery.extend({ ajax: 1 }, data),
				success: function(response){
					$(target).html(response);
					callback.success && callback.success(response);
				},
				error: function(){
					callback.error && callback.error();
				},
				complete: function(t){
					callback.complete && callback.complete();
					hideLoading();
					REQUEST_ON_PROGRESS = false;
				}
			});
		},
		
		// use with care
		ROPHack: function(){
			REQUEST_ON_PROGRESS = false;
		},
		
		validate: function(element, type){
			type = type.toLowerCase();
			if (type == 'num') {
				var val = element.value.replace(/[^\d]+/, '');
				if (element.value != val)
					element.value = val;
			}
		},
		
		validateSearch: function(sourceId, infoId){
			var element = $(sourceId);
			if (element.val().length < 11) {
				var infoEl = $(infoId);
				infoEl.html('Cari Hasil Seleksi dengan nomor pendaftaran anda<br /><br /><span style="color:#FF0000">Nomor pendaftaran harus 11 digit</span>');
				return false;
			}
		},
		
		printMe: function(){
			$('#printarea .frame-cont').html( $('#wrapper .frame-cont').html() );
			$('#printarea tr:hidden').show();
			$('#printarea .banner-adv').hide();
			$('#printarea td.skn-search').hide();
			if (!(/(seleksi\.php|daftar\.php|statistik\.php|search)/.test(window.location))) {
				$("#printarea a[href]").each(function (i) {
					$(this).replaceWith( $(this).text()+' <code>'+$(this).attr('href')+'</code>' );
				});
			}else{
				$('#printarea .frame-cont').html( $('#wrapper .frame-cont #ajaxTarget').html() );
			}
			$('#printarea .skn-foot').html( $('#wrapper .skn-foot').html() );
			window.print();
		}
	}
};

psb = new PSB;
