function replaceImg(srcId) {
	document.getElementById('display_pane').src = document
			.getElementById(srcId).src;
}

function addLoadEvent(func) {
	var oldonload = window.onload;
	if (typeof window.onload != 'function') {
		window.onload = func;
	} else {
		window.onload = function() {
			if (oldonload) {
				oldonload();
			}
			func();
		}
	}
}

function TestIfImageIsReady(id) {
	YAHOO.util.Event.onContentReady(id, this.handleOnAvailable, this);
}

TestIfImageIsReady.prototype.handleOnAvailable = function(me) {
	var el = document.getElementById(this.id);
    setTimeout('doImageLoad(\''+this.id+'\')', 10);
    return;
};

function doImageLoad(anId) {
	/**
     * @type Element
     */
	var el = document.getElementById(anId);
    if (!el.complete) {
    	setTimeout('doImageLoad(\''+anId+'\')', 1000);
    	return;
    }
	var testScale = el.width / el.height;
	var ancestor = YAHOO.util.Dom.getAncestorByTagName(anId, 'div');
	ancestor.style.position = "relative";
	ancestor.style.width = target + "px";
	ancestor.style.height = target + "px";
	ancestor.style.overflow = "hidden";
	el.style.position = "absolute";

	var widthVariance = Math.abs(target - el.width);
	var heightVariance = Math.abs(target - el.height);

	var heightLower = el.height < target;
	var widthLower = el.width < target;

	var constrainByHeight;

	if (!heightLower && !widthLower) {
		if (heightVariance > widthVariance) {
			constrainByHeight = false;
		} else {
			constrainByHeight = true;
		}
	}
	if (!widthLower && heightLower) {
		constrainByHeight = true;
	}
	if (widthLower && heightLower) {
		if (heightVariance > widthVariance) {
			constrainByHeight = true;
		} else {
			constrainByHeight = false;
		}
	}
	if (widthLower && !heightLower) {
		constrainByHeight = false;
	}

	if (constrainByHeight) {
		scaleFactor = target / el.height;
		el.style.height = (el.height * scaleFactor) + "px";
		el.style.top = "0px";
		el.style.left = -(Math.abs(target - el.width) / 2) + "px";
	} else {
		scaleFactor = target / el.width;
		el.style.width = (el.width * scaleFactor) + "px";
		el.style.left = "0px";
		el.style.top = -(Math.abs(target - el.height) / 2) + "px";
	}
	el.style.visibility = "visible";
};

function fixImgs(whichId, maxW) {
	var pix = document.getElementById(whichId).getElementsByTagName('img');
	for (i = 0; i < pix.length; i++) {
		w = pix[i].width;
		h = pix[i].height;
		if (w > maxW) {
			f = 1 - ((w - maxW) / w);
			pix[i].width = w * f;
			pix[i].height = h * f;
		}
	}
}

var pagingFunc = null;
var pageSizeCallback = null;

function setPageSizeCallback(func){
    pageSizeCallback = func;
}

function hidePageNav(id){
	/**
     * @type Element
     */
    var element = document.getElementById(id);
    if (element!= null) {
    	element.style.display = "none";
    }
}
   
function buildPageSizeSelect(id, show){  
	/**
     * @type Element
     */
    var elem = document.getElementById(id);
    var msg = "";
    if(show){
          msg += "<span style='font-size:8pt'>Items per Page:<select id='pagingSizeSelect_" + id + "' onclick='changePageSize(\"" + id + "\")'>" +
          "<option value='20'>20</option>"+
          "<option value='50'>50</option>"+
          "<option value='100'>100</option>"+
          "</select></span>";
    }
    elem.innerHTML = msg;
}
   
function setPagingSelectValue(id, value){
      document.getElementById("pagingSizeSelect_" + id).value = value;
}
   
function changePageSize(id){
    var elem = document.getElementById("pagingSizeSelect_" + id);
    var pageSize = parseInt(elem.value);
    pageSizeCallback(id, pageSize);
}

function showPageNav(id, curpage, pageMax, internalHrefStart, internalHrefEnd) {
	/**
     * @type Element
     */
    var element = document.getElementById(id);
    var pagerHtml = "";
    var start_1,end_1,start_2,end_2,start_3,end_3;
    if (pageMax>1) {       
      if (pageMax > 12) {       
        start_1 = 1; // always 1
        end_3 = pageMax;
        if(curpage < 7) {
            end_1 = 9;
            start_2 = 0;//NA
            end_2 = 0; // NA
            start_3 = pageMax - 2;
        }
        else if (curpage > (pageMax - 7)) {
            end_1 = 3;
            start_2 = 0;//NA
            end_2 = 0; // NA
               start_3=pageMax - 8;
        } else {
            end_1 = 3;
            start_2 = curpage - 3;
            end_2 = curpage + 3;
            start_3 = pageMax  - 2;
        }
      } else  {
          start_1=1;
          end_1 = pageMax;
          start_2 = end_2 = start_3 = end_3 =0;
      }           
            if (curpage != 1)
            pagerHtml += '<a id = "pgPrev' + id + '" onclick="pagingShowPage(' + (curpage - 1) + ', \'' + id + '\');return false;" href="' + internalHrefStart + (curpage - 1) + internalHrefEnd +'" class="link pg_btn">&lt;&lt;</a>';
        else
            pagerHtml += '<span id = "pgPrev' + id + '" class="pg_btn_disabled">&lt;&lt;</span>';
           for (var page = start_1; page <= end_1; page++) {
             pagerHtml += '<a id="pg' + page + id + '" class="pg_link link" onclick="pagingShowPage(' + page + ', \'' + id + '\');return false;" href="' + internalHrefStart + page + internalHrefEnd +'">' + page + '</a>';
        }
        if(start_2 != 0) {
            pagerHtml += '<span class="bigText">....</span>';
               for (var pagex = start_2; pagex <= end_2; pagex++) {
                 pagerHtml += '<a id="pg' + pagex + id + '" class="pg_link" onclick="pagingShowPage(' + pagex + ', \'' + id + '\');return false;" href="' + internalHrefStart + (pagex) + internalHrefEnd +'">' + pagex + '</a>';
            }
        }
           if (start_3 !=0) {
            pagerHtml += '<span class="bigText">....</span>';
               for (var pagey = start_3; pagey <= end_3; pagey++) {
                 pagerHtml += '<a id="pg' + pagey + id + '" class="pg_link" onclick="pagingShowpagey(' + pagey + ', \'' + id + '\');return false;" href="' + internalHrefStart + (pagey) + internalHrefEnd +'">' + pagey + '</a>';
            }
        }
        if(curpage != pageMax)
            pagerHtml += '<a id = "pgNext' + id + '" onclick="pagingShowPage(' + (curpage + 1) + ', \'' + id + '\');return false;" href="' + internalHrefStart + (curpage + 1) + internalHrefEnd +'" class="pg_btn">&gt;&gt;</a>';
        else
            pagerHtml += '<span id = "pgNext' + id + '" class="pg_btn_disabled">&gt;&gt;</span>';           
        element.innerHTML = pagerHtml;
        /**
         * @type Element
         */
        var newPageAnchor = document.getElementById('pg'+curpage+id);
        newPageAnchor.className = 'pg_link_cur';
        element.style.display = "";           
    }
    else{
        hidePageNav(id);
    }
}

