// namespace
var newImageMQ;

if (!newImageMQ) {
	newImageMQ = {};
}

// onload handler
newImageMQ.addLoadEvent = function (func) {
	var oldonload = window.onload;
	if (typeof window.onload != 'function') {
		window.onload = func;
	} else {
		window.onload = function() {
			if (oldonload) {
				oldonload();
			}
			func();
		}
	}
}
// use this to add a funtion to the load event
// newImageMQ.addLoadEvent(nameOfSomeFunctionToRunOnPageLoad);

// header search form

newImageMQ.addLoadEvent( function() {
	var text = document.getElementById("textField");
    if (text)
    {
        text.value = "Enter Keywords";
        text.onclick = function() {
            text.value = "";
        }
    }
} );

// flyout menus fix for IE (suckerfish)
newImageMQ.sfHover = function() {
	try {
		var sfEls = document.getElementById("nav").getElementsByTagName("li");
		for (var i=0; i<sfEls.length; i++) {
			sfEls[i].onmouseover=function() {
				this.className+=" sfhover";
			}
			sfEls[i].onmouseout=function() {
				this.className=this.className.replace(new RegExp(" sfhover\\b"), "");
			}
		}
	} catch (e){}
}
// newImageMQ.addLoadEvent(newImageMQ.sfHover);

// Element Hover
// requires YUI
newImageMQ.elementHover = function(element,eleClass,eleContainer,hoverClass) {
	var hoverElement = YAHOO.util.Dom.getElementsByClassName(eleClass,element,eleContainer);
	for (var i=0; i < hoverElement.length; i++) {
		hoverElement[i].onmouseover = function() {
			this.className += ' '+hoverClass;
		}
		hoverElement[i].onmouseout = function() {
			this.className = this.className.replace(new RegExp(' '+hoverClass+'\\b'), '');
		}
	}
}

// pagination
// requires YUI
newImageMQ.paginate = function(page) {
	
	var resPerPage = 5; // number of results per page
	var pagesPerSet = 10; // pages per set in pageination nav
	
	var startIndex = parseInt(resPerPage * page);
	var endIndex = parseInt(startIndex + resPerPage);
	
	var results = YAHOO.util.Dom.getElementsByClassName('searchResult','div','surgeonSearchResults');
	for (var i in results) {
		YAHOO.util.Dom.setStyle(results[i], 'display', 'none');
	}
	for (i=startIndex,y=endIndex;i<y;i++) {
		YAHOO.util.Dom.setStyle(results[i], 'display', 'block');
	}
	
	var paginations = YAHOO.util.Dom.getElementsByClassName('searchPagination');	
	var pageCount = Math.ceil(results.length/resPerPage);
	var nav = '<ul>';
	
	// prev page
	if (page > 0) {
		nav += '<li><a onclick="newImageMQ.paginate('+(page-1)+'); return false;">&laquo; Prev</a></li>';
	} else {
		nav += '<li>&laquo; Prev</li>';
	}
	
	// page numbers
	var setStart = 0;
	var setEnd = pagesPerSet;
	var setStartPad = Math.floor(pagesPerSet/2);
	var setEndPad = Math.ceil(pagesPerSet/2)
	
	if (pageCount >= pagesPerSet) {
		if ((page > setStartPad) && (page < pageCount - setEndPad)) {
			setStart = page - setStartPad;
			setEnd = page + setEndPad;
		} else if (page >= pageCount - setEndPad) {
			setStart = pageCount - pagesPerSet;
			setEnd = setStart + pagesPerSet;
		}
	} else {
		setEnd = pageCount;
	}
	
	for (i=setStart; i<setEnd; i++) {
		if (page == i) {
			nav += '<li>' + (i+1) + '</li>';
		} else {
			nav += '<li><a onclick="newImageMQ.paginate('+i+'); return false;">' + (i+1) + '</a></li>';
		}
	}
	
	// next page
	if (page < pageCount-1) {
		nav += '<li><a onclick="newImageMQ.paginate('+(page+1)+'); return false;">Next &raquo;</a></li>';
	} else {
		nav += '<li>Next &raquo;</li>';
	}
	
	nav += '</ul>';
	
	// display pagination
	paginations[0].innerHTML = nav;
	paginations[1].innerHTML = nav;
}

// Parse Query String
// http://www.chris-kelley.com/post/2007/06/06/javascript-querystring
newImageMQ.getQueryString = function() {
	var querystring = new Array;
	// parse current url into an array with the keys/values
	var q = String (document.location).split('?')[1];
	if (!q) return false;
	q = q.split ('&');
	for (var i = 0 ; i < q.length; i++) {
		// for each key/value, split them at the '='
		// and add them to the qerystring array
		var o = q[i].split('=');
		querystring[o[0]] = o[1];
	}
	// return the querystring
	return querystring;
}

/* begin PIC Listing */

// show/hide states
newImageMQ.picListingSelect = function(state) {
	// reset all picFull selections
	var pics = YAHOO.util.Dom.getElementsByClassName('picContainer','div','picListing');
	for (var i in pics) {
		YAHOO.util.Dom.removeClass(pics[i],'picFull');
	}
	// show/hide state containers
	var states = YAHOO.util.Dom.getElementsByClassName('stateContainer','div','picListing');
	if (state == 'all') {		
		for (var i in states) {
			YAHOO.util.Dom.setStyle(states[i], 'display', 'block');
		}
	} else {
		for (var i in states) {
			YAHOO.util.Dom.setStyle(states[i], 'display', 'none');
		}
		var stateId = document.getElementById(state);
		if (stateId) {
			stateId.style.display = 'block';
		}
	}
	//document.getElementById('PICListingStateSelect').selectedIndex = 0;
}

// show PIC selection
newImageMQ.showPic = function(picId) {
	var pics = YAHOO.util.Dom.getElementsByClassName('picContainer','div','picListing');
	for (var i in pics) {
		YAHOO.util.Dom.removeClass(pics[i],'picFull');
	}
	var picElement = document.getElementById(picId);
	YAHOO.util.Dom.addClass(picElement,'picFull');
	if (newImageMQ.picllog) {
		try {
			newImageMQ.picllog.logPICExpand(picId.substring("picId".length,picId.length));
		} catch (e) {}
	}
}

// check Query String
newImageMQ.checkPicQueryString = function(defaultst) {			
	var queryString = newImageMQ.getQueryString();
	if (queryString['picId']) {
		if (queryString['state']) {
			newImageMQ.picListingSelect(queryString['state']);
			var select = document.getElementById('PICListingStateSelect');
			for (i=0;i<select.length;i++) {
				if (select[i].value == queryString['state']) {
					select[i].selected = true;
				}
			}
		}
		newImageMQ.showPic('picId'+queryString['picId']);
	} else if (queryString['state']) {
		newImageMQ.picListingSelect(queryString['state']);
		var select = document.getElementById('PICListingStateSelect');
		for (i=0;i<select.length;i++) {
			if (select[i].value == queryString['state']) {
				select[i].selected = true;
			}
		}
	} else if ((defaultst)&&(defaultst.length)) {
		newImageMQ.picListingSelect(defaultst);
		var select = document.getElementById('PICListingStateSelect');
		for (i=0;i<select.length;i++) {
			if (select[i].value == defaultst) {
				select[i].selected = true;
			}
		}
	}
}

/* end PIC Listing */

/* begin PIC Bio Portlet */
newImageMQ.buildPicBioPortlet = function(picBios) {
	var picBioContent = document.getElementById('picBioPortlet');
	for (var x=0;x<picBios.length;x++) {

		// create name element
		var name = document.createElement('div');
		var nameText = document.createTextNode(picBios[x].name);
		name.className = 'picBioName';
		name.appendChild(nameText);
		picBioContent.appendChild(name);

		// create location element
		var local = document.createElement('div');
		var localText = document.createTextNode(picBios[x].city+', '+picBios[x].state);
		local.className = 'picBioLocal';
		local.appendChild(localText);
		picBioContent.appendChild(local);

		// create img element
		var image = document.createElement('img');
		image.setAttribute('src',picBios[x].image);
		image.setAttribute('alt',picBios[x].name);
		
		var imglink = document.createElement('a');
		imglink.setAttribute('href',picBios[x].link);
		imglink.appendChild(image);
		
		var imageDiv = document.createElement('div');
		imageDiv.className = 'picBioImg';
		//imageDiv.appendChild(image);
		imageDiv.appendChild(imglink);
		picBioContent.appendChild(imageDiv);

		// create link element
		var link = document.createElement('a');
		var linkText = document.createTextNode('View Profile \xbb');
		link.setAttribute('href',picBios[x].link);
		link.className = 'picBioLink';
		link.appendChild(linkText);
		picBioContent.appendChild(link);
		
	}
}
/* end PIC Bio Portlet */

/* Email link sharing */

newImageMQ.getShareLink = function () {
	var shareField = document.getElementById("SHARE_FORM");
	
	if (shareField) {
		var shareLinkvar = getQueryVariable("shareLink")
		shareField.value = shareLinkvar;
	}			
}

newImageMQ.getQueryVariable = function (variable) { 
  var query = window.location.search.substring(1); 
  var vars = query.split("&"); 

	for (var i=0;i<vars.length;i++) { 
		var pair = vars[i].split("="); 

		if (pair[0] == variable) { 
      		return pair[1]; 
		}
    }	     
} 

/* End Email link sharing */

/* fix for editing tags */

newImageMQ.fixEditingTags = function () {
    divTags = document.getElementsByTagName("div");
    for (var i = 0; i < divTags.length; i++) {
      tag = divTags[i];
      found = tag.id.match(/^top_/);
      if (found) {
          //Set firefox float
          //tag.style.cssFloat = "left";

          //Set I.E. Float
          //tag.style.styleFloat = "left";
          
          tag.style.left = "0";
          tag.style.top = "0";
          tag.style.clear = "both";
      }
    }     
}
/* end fix for editing tags */

/* Utility function for locating a DOM element with a specified class */

newImageMQ.containsClass = function(parent, childTag, cssClass) {
    var tags = parent.getElementsByTagName(childTag);
    var hasTag = false;
    for (var tagIndex in tags) {
        var tag = tags[tagIndex];
        if (tag.className == cssClass) {
            hasTag = true;
        }
    }
    return hasTag;
}

/* fix named anchor styles */
newImageMQ.fixNamedAnchors = function() {
	var anchors = document.getElementsByTagName('a');
	for (i=0;i<anchors.length;i++) {
		if(anchors[i].getAttribute('href') == null || anchors[i].getAttribute('href') == '') {
			if(anchors[i].getAttribute('id') * 1) {
				anchors[i].className = 'namedAnchor';
			}
		}
	}
}
newImageMQ.addLoadEvent(newImageMQ.fixNamedAnchors);

/* Send Share Link*/
newImageMQ.sendShareLink = function() {
	var current = encodeURIComponent(location.href);
	location.href='/email-a-friend.html?shareLink='+current;
}

/* IE6 Select Fix 
newImageMQ.naviFix = function() {
	var navi = document.getElementById("nav").getElementsByTagName("li");
	var shim = document.createElement('iframe');
	for (var i=0; i<navi.length; i++) {
		navi[i].appendChild(shim);
	}
	alert('yo2');
}
*/

newImageMQ.openFull = function(divID) { 
  var item = document.getElementById(divID);

  if (item) {
    item.className=(item.className=='hidden')?'unhidden':'hidden';
  }
}

