var audience = '';
var audienceString = '';
var audienceData = '';
(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();		// mandatory hidden fields
		var type = $('[name=TYPE]').val();

var sort = $.url.param("BYDSND");
audience = $.url.param("AUDIENCE");
var keyword = $.url.param("KEYWORD");
var courses = $.url.param("COURSES");
audienceData  = audience;

if (typeof audienceData  !=="undefined")
{
// Convert hex to string
	var b16_digits = '0123456789abcdef';
	var b16_map = new Array();
var check = '';
	for (var i=0; i<256; i++) {
		b16_map[b16_digits.charAt(i >> 4).toUpperCase() + b16_digits.charAt(i & 15).toUpperCase()] = String.fromCharCode(i);
//check += '>> '+b16_digits.charAt(i >> 4).toUpperCase() + b16_digits.charAt(i & 15).toUpperCase()+' :'+i+'='+String.fromCharCode(i)+'; \n';
	}
//alert(check);
	//if (!data.match(/^[a-f0-9]*$/i)) return false;// return false if input data is not a valid Hex string
	
	if (audienceData.length % 2) audienceData  = '0'+audienceData;
		
	var result = new Array();
	var j=0;
	for (var i=0; i<audienceData.length; i+=2) {
//alert(audienceData.substr(i,2));
		result[j++] = b16_map[audienceData.substr(i,2)];
	}
audienceString = 'Courses for '+result.join('');
} else {
audienceString = 'All courses'; 
}

		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(courses)!='undefined' && courses!='') dataString += 'COURSES=' + Url.encode(courses) + '&';
		else dataString += 'COURSES=&';
		if (typeof(sort)!='undefined' && sort!='')
{
 dataString += 'BY=ATT29';
}		else { 
dataString += 'BY=ATT29';
}
//		if (typeof(sort)!='undefined' && sort!='') {
//dataString += '&BY_' + Url.encode(sort);
//		} else {
//dataString += '&BYDSND=';
//		}
//alert(dataString);
		//alert('dataString='+dataString+'; sort ='+sort +'; audience ='+audience );
		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({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>');
$('#ed_title').html(audienceString);
			}else{
				$('#index_listing li').quickpaginate({ perpage: 10, showcounter: true, pager : $('#index_listing_counter') });
$('#ed_title').html(audienceString);
			}
		},
		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(){
$('#ed_title').html(audienceString);
	$('#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;
    }
}

