//hashedRotator.js
//requrie common.js
//require domutils.js

var oHashedRotator = {
	mInit : function() {
		if(	typeof imgCollection == 'undefined' || imgCollection == null || typeof popImgCollection == 'undefined' || popImgCollection == null){ //required vars
			return false;
		}
		var oHash = new Hash(imgCollection);
		var oPopHash = new Hash(popImgCollection);
		var oFullSizeHash = null;
		var oTextHash = null;
		var oPdfHash = null;
		
		if(	typeof largeImgCollection != 'undefined' && largeImgCollection != null){ //ext version
			oFullSizeHash = new Hash(largeImgCollection);
		}
		
		if(	typeof textCollection != 'undefined' && textCollection != null){ //ext version
			oTextHash = new Hash(textCollection);
		}
		
		if(	typeof pdfCollection != 'undefined' && pdfCollection != null){ //ext version
			oPdfHash = new Hash(pdfCollection);
		}
		
		var imageRotator = new oHashedRotator.mCreate( "forward", "backward", "largeImgPop", "fullSizeImgPop", "gallery", "pdf", oHash, oPopHash, oFullSizeHash, oTextHash, "photoslider", "photoText", oPdfHash );
	},
	mCreate : function( fwd, rev, pop, fullsize, gallery, pdf, aPhotos, aPopPhotos, aFullSize, aText, targetimg, imgTxt, aPdf ) {
		var iIndex	= 0;
		var oBackward = document.getElementById( rev );
		var oForward = document.getElementById( fwd );
		var oPop = document.getElementById(pop);
		var oFullPop = document.getElementById( fullsize );
		var oGallery = document.getElementById(gallery);
		var oPhoto = document.getElementById( targetimg);
		var oText = document.getElementById(imgTxt);
		var oPdfPop = document.getElementById(pdf);
		
		if ( oBackward && oForward ) {
			oDOMUtils.mAddEvent(oBackward, "click", fBackward, false);
			oDOMUtils.mAddEvent(oBackward, "dblclick", fBackward, false);
			oDOMUtils.mAddEvent(oForward, "click", fForward, false);
			oDOMUtils.mAddEvent(oForward, "dblclick", fForward, false)
		}
		if( oPop ){
   			oDOMUtils.mAddEvent(oPop, "click", fPop, false);
			oDOMUtils.mAddEvent(oPop, "dblclick", fPop, false);
		}
		if( oFullPop ){
			oDOMUtils.mAddEvent(oFullPop, "click", fFullPop, false);
			oDOMUtils.mAddEvent(oFullPop, "dblclick", fFullPop, false);
		}
		if( oPdfPop ){
			oDOMUtils.mAddEvent(oPdfPop, "click", fPdfPop, false);
			oDOMUtils.mAddEvent(oPdfPop, "dblclick", fPdfPop, false);
		}
		if( oGallery ){
			var oLinks = oGallery.getElementsByTagName("a");
			for(var i = 0; i < oLinks.length; i++){
				var tmp = oLinks[i];
				oDOMUtils.mAddEvent(tmp, "click", fCast, false);
				oDOMUtils.mAddEvent(tmp, "dblclick", fCast, false);
			}
		}
		if( oPhoto ){
			oDOMUtils.mAddEvent(oPhoto, "error", fImageError, false);
			oDOMUtils.mAddEvent(oPhoto, "click", fPop, false);
			oDOMUtils.mAddEvent(oPhoto, "dblclick", fPop, false);
			oPhoto.style.cursor = "pointer";
		}
		function fBackward() {
			if ( iIndex > 0 ) {
				iIndex--;
			} else {
				iIndex = aPhotos.length - 1;
			}
			fGoto();
			return false
		}
		function fForward() {
			if ( iIndex < aPhotos.length - 1 ) {
				iIndex++;
			} else {
				iIndex = 0;
			}
			fGoto();
			return false;
		}
		function fGoto(){
			oPhoto.src = aPhotos.getItemAt(iIndex);
			oPhoto.id = "m_" + aPhotos.getKeyAt(iIndex);
			var _fullSizePath = aFullSize.getItemAt(iIndex);
			
			if(aPdf){
			    var _pdfPath = aPdf.getItemAt(iIndex);
			}
			else
			{
			    var _pdfPath = "";
			}


			if(_fullSizePath && _fullSizePath != ""){
				oFullPop.style.display = "block";
			}
			else if(oFullPop){
			    oFullPop.style.display = "none";
			}
			
			if(_pdfPath && _pdfPath != ""){
				oPdfPop.style.display = "block";
			}
			else if(oPdfPop){
			    oPdfPop.style.display = "none";
			}

			if( oText && aText ) {
				oText.innerHTML = aText.getItemAt(iIndex);
				
				//alert(oText.innerHTML);
				if (oText.innerHTML == '')
				{
				    oText.style.display = 'none';
				} 
				else 
				{
				    oText.style.display = '';
				}
			}
				
				
			if( oGallery )
				fSwapSelected("s_" + aPhotos.getKeyAt(iIndex));
		}
		function fPop() {
			var sId = oPhoto.id.replace(/^\w\_/, "");
			var sSrc = aPopPhotos.getItem(sId);//location.protocol + "//" + location.host + aPopPhotos.getItem(sId);
			var oWin = window.open("/ui/html/imagepop.html?img=" + sSrc, "largeImg", "menubar=0, location=0, width=700, height=405, resizable=1");
			if(window.focus)
				oWin.focus();
		}
		function fFullPop() {
			var sId = oPhoto.id.replace(/^\w\_/, "");
			var sSrc = aFullSize.getItem(sId);//location.protocol + "//" + location.host + aPopPhotos.getItem(sId);
			if(sSrc && sSrc != ""){
			    var oWin = window.open("/ui/html/imagepop.html?img=" + sSrc, "largeImg", "menubar=0, location=0, width=1024, height=683, resizable=1");
			    if(window.focus)
				    oWin.focus();
			}
		}
		
		function fPdfPop() {
			var sId = oPhoto.id.replace(/^\w\_/, "");
			var sSrc = aPdf.getItem(sId);//location.protocol + "//" + location.host + aPopPhotos.getItem(sId);
			if(sSrc && sSrc != ""){
			    var oWin = window.open(sSrc, "PDF", "menubar=1, location=1, resizable=1");
			    if(window.focus)
				    oWin.focus();
			}
		}
		
		function fCast(e) {
			var oLink = oDOMUtils.mFindTarget(e);
			var oImg = oLink.getElementsByTagName("img")[0];
			sKey = oImg.id.replace(/^\w\_/, "");
			if(sKey != null && sKey != ''){
				sPath = aPhotos.getItem(sKey);
				if(sPath == null) 
					return false;
				oPhoto.src = sPath;
				oPhoto.id = "m_" + sKey;
				iIndex = aPhotos.getIndexOf(sKey);
				
				var _fullSizePath = aFullSize.getItem(sKey);
				var _pdfPath = aPdf.getItem(sKey);
				
				
/*				
				alert(aPfd);
				if(oPdf && aPfd)
				{ 
				    
				    var _pfdPath = aPdf.getItem(sKey);
				    			    
				}
				else
				{
				    
				   var _pdfPath = "";	
				}
				
				if(_pdfPath && _pdfPath != "")
				    oPdf.style.display = "block";
				else
				    oPdf.style.display = "none";
*/
				
				if(_fullSizePath && _fullSizePath != "")
				    oFullPop.style.display = "block";
				else
				    oFullPop.style.display = "none";
				    
			    if(_pdfPath && _pdfPath != "")
				    oPdfPop.style.display = "block";
				else
				    oPdfPop.style.display = "none";
				    
				if( oText && aText )
					oText.innerHTML = aText.getItem(sKey);
				if( oGallery )
					fSwapSelected("s_" + sKey);
			}
		}
		function fSwapSelected(key) {
			var oImg = document.getElementById(key);
			var oLink = oImg.parentNode;
			if(oLink.nodeName.toLowerCase() != "a" )
				return false;
			var aImgs = oGallery.getElementsByTagName("img");
			for(var i = 0; i < aImgs.length; i++){
				var tmpImg = aImgs[i];
				if(tmpImg.className && tmpImg.className == "selected"){
					tmpImg.className = "";
					tmpLink = document.createElement('a');
					tmpLink.href = "javascript://";
					oDOMUtils.mAddEvent(tmpLink, "click", fCast);
					oDOMUtils.mAddEvent(tmpLink, "dblclick", fCast);
					tmpImg.parentNode.appendChild(tmpLink);
					tmpLink.appendChild(tmpImg);
					break;
				}
			}
			oImg.className = "selected";
			oLink.parentNode.appendChild(oImg);
			oLink.parentNode.removeChild(oLink);
			oLink = null;
		}
		function fImageError() {
			this.src = "/ui/img/notfound.png";
		}
		//initialize
		fGoto();
	}
}
oDOMUtils.mAddEvent(window, "load", oHashedRotator.mInit);
