(function($){

 $.ajaxSetup ({
  // Disable caching of AJAX responses 
  cache: false
 });
 
 $.querybuilder = function(){
        var dataString='';
		
		// getting all the attribute values from the query form
		var id = $('[name=ID]').val();
		var type = $('[name=TYPE]').val();
		var keyword = $('#keyword').val();
		var audience = $('#audience').val();
		var sort = $('input[name=BYDSND]:checked').val();
		dataString = '/atsection.cgi?';
		if (typeof(id)!='undefined' && id!='') dataString += 'ID=' + Url.encode(id) + '&';
		else dataString += 'ID=&';
		if (typeof(type)!='undefined' && type!='') {
dataString += 'TYPE=' + Url.encode(type) + '&';
		} else {
dataString += 'TYPE=&';
}
		if (typeof(keyword)!='undefined' && keyword!='') {
dataString += 'KEYWORD=' + Url.encode(keyword) + '&';
		} else {
dataString += 'KEYWORD=&';
		}
if (typeof(audience)!='undefined' && audience!='') {
dataString += 'AUDIENCE=' + Url.encode(audience) + '&';
		} else {
dataString += 'AUDIENCE=&';
		}
		if (typeof(sort)!='undefined' && sort!='') {
dataString += '&BY_' + Url.encode(sort);
//alert(sort);
		} else {
dataString += '';
		}
		//alert(dataString);
		return dataString;
 }
 
 $.contentloader = function(param){
 
	$('#load').remove();
	$('#display_content').hide('fast',$.loadcontent(param));
	$('#wrapper').append('<span id="load">Loading...</span>'); 
	$('#load').fadeIn('normal');
	
 }
 
 $.loadcontent = function(param){
 
	// $('#display_content').load(param,'',$.shownewcontent); // ajax load shortcut
	
	$.ajax({type: 'GET', url: param, data: '',timeout: 50000,
		success: function(data, textStatus) {
			// alert('data:|'+ data +'|');
			// alert(textStatus);
			
			$('#display_content').html(data);
			var len = $('#index_listing li').length;
			if( len == 0 ){
				$('#display_content').html('<p>There is no document listed under these criteria.</p>');
			}else{
				$('#index_listing li').quickpaginate({ perpage: 10, showcounter: true, pager : $('#index_listing_counter') });
			}
		},
		error: function (XMLHttpRequest, textStatus,errorThrown) {
			// printObj(XMLHttpRequest);
			// alert(textStatus);
			//alert(errorThrown);
			$('#display_content').html(errorThrown);
		},
		complete: function(){
			//handle the complete event - show the content
			$.shownewcontent();
		}
	});				

 }
 
 $.shownewcontent = function(){
	$('#display_content').show('normal',$.hideloader);
 }
 
 $.hideloader = function(){
	$('#load').fadeOut('normal');
 }
 
})(jQuery);

/**
*
*  URL encode / decode
*  http://www.webtoolkit.info/
*
**/

var Url = {
    // public method for url encoding
    encode : function (string) {
        return escape(this._utf8_encode(string));
    },
    // public method for url decoding
    decode : function (string) {
        return this._utf8_decode(unescape(string));
    },
    // private method for UTF-8 encoding
    _utf8_encode : function (string) {
        string = string.replace(/\r\n/g,"\n");
        var utftext = "";

        for (var n = 0; n < string.length; n++) {

            var c = string.charCodeAt(n);

            if (c < 128) {
                utftext += String.fromCharCode(c);
            }
            else if((c > 127) && (c < 2048)) {
                utftext += String.fromCharCode((c >> 6) | 192);
                utftext += String.fromCharCode((c & 63) | 128);
            }
            else {
                utftext += String.fromCharCode((c >> 12) | 224);
                utftext += String.fromCharCode(((c >> 6) & 63) | 128);
                utftext += String.fromCharCode((c & 63) | 128);
            }
        }
        return utftext;
    },

    // private method for UTF-8 decoding
    _utf8_decode : function (utftext) {
        var string = "";
        var i = 0;
        var c = c1 = c2 = 0;
        while ( i < utftext.length ) {
            c = utftext.charCodeAt(i);

            if (c < 128) {
                string += String.fromCharCode(c);
                i++;
            }
            else if((c > 191) && (c < 224)) {
                c2 = utftext.charCodeAt(i+1);
                string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
                i += 2;
            }
            else {




                c2 = utftext.charCodeAt(i+1);
                c3 = utftext.charCodeAt(i+2);
                string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
                i += 3;
            }
        }
        return string;
    }
}
