var debug = 0;
if (!window.console) console = {log: function() {}};

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

function replaceImg2(src) {
	document.getElementById('display_pane2').src = 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);
	
	/** YUI Replacement with jQuery 8.23 **/
	$.elementReady(id, this.handleOnAvailable);
	
}

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;
	
	/** YUI Replacement with jQuery 8.23 **/
	
	/*** YUI Ancestor (OLD) ***/
	//var ancestor = YAHOO.util.Dom.getAncestorByTagName(anId, 'div');
		
	/*** jQuery Ancestor (NEW) ***/
	var ancestor = $(el).closest('div')[0];
	
	/**   End Changes 8.23   **/
	
	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');
	(debug)?(console.log(document.getElementById(whichId))):null;
	(debug)?(console.log("Resizing imgs in element: "+whichId)):null;
	for (i = 0; i < pix.length; i++) {
		(debug)?(console.log("Resizing images: "+pix[i].src)):null;
		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;
		}
	}
}

function fixCarImgs(URL, maxW) {
	img = new Image();
	img.src = URL;
	w = pix[i].width;
	h = pix[i].height;
	var newD = new Array(2);
	
	(debug)?(console.log("fixing images: "+whichId)):null;
	(debug)?(console.log("fixing images: "+pix[i].src)):null;
	if (w > maxW) {
		f = 1 - ((w - maxW) / w);
		newD[0] = w * f;
		newD[1] = h * f;
	}
	
	return newD;
}


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);
    }
}

function showPageNavCar(id, curpage, pageMax) {
	/**
     * @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>';
            pagerHtml += '<a id = "pgPrev' + id + '" onclick="goToPage(\'prev\');return false;" 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>';
        	  pagerHtml += '<a id="pg' + page + id + '" class="pg_link link" onclick="goToPage('+page+');return false;">' + 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>';
                 pagerHtml += '<a id="pg' + pagex + id + '" class="pg_link" onclick="goToPage('+pagex+');return false;">' + 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="goToPage('+pagey+');return false;">' + 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>';
        	pagerHtml += '<a id = "pgNext' + id + '" onclick="goToPage(\'next\');return false;" 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);
    }
}

/*jQuery input Fields Default Value*/

jQuery.fn.DefaultValue = function(text){
    return this.each(function(){
		//Make sure we're dealing with text-based form fields
		if(this.type != 'text' && this.type != 'password' && this.type != 'textarea')
			return;
		
		//Store field reference
		var fld_current=this;
		
		//Set value initially if none are specified
        if(this.value=='') {
			this.value=text;
		} else {
			//Other value exists - ignore
			return;
		}
		
		//Remove values on focus
		$(this).focus(function() {
			if(this.value==text || this.value=='')
				this.value='';
		});
		
		//Place values back on blur
		$(this).blur(function() {
			if(this.value==text || this.value=='')
				this.value=text;
		});
		
		//Capture parent form submission
		//Remove field values that are still default
		$(this).parents("form").each(function() {
			//Bind parent form submit
			$(this).submit(function() {
				if(fld_current.value==text) {
					fld_current.value='';
				}
			});
		});
    });
};
