// JQuery effects plugins for Virtual Museums of Canada site
// Plugins by Dan Copeland at Realdecoy Inc. - Ottawa ON Canada

var mosaicWidth = 2700;
var viewPortWidth = 1024;
var mosaicCentre = viewPortWidth/2;

var btnCount = 0;

var thumbCount = 1;
var bgXOffSet = -75;
var bgYOffSet = '';
var bgPos = '';


var MakeHex = function(x) {
	if((x >= 0) && (x <= 9)){
		return x;
	}
	else {
		switch(x) {
			case 10: return "A";
			case 11: return "B";
			case 12: return "C";
			case 13: return "D";
			case 14: return "E";
			case 15: return "F";
		}
   }
};
var MakeNum = function(str) {
	if((str >= 0) && (str <= 9)) {
		return str;
	}
	switch(str.toUpperCase()) {
		case "A": return 10;
		case "B": return 11;
		case "C": return 12;
		case "D": return 13;
		case "E": return 14;
		case "F": return 15;
		default:  alert('You must choose a number between 0 and 9 or a letter between A and F!');
	}
};
var HexToNum = function(num1,num2) {
	numberS = document.forms[0].elements[num1].value;
	tens = MakeNum(numberS.substring(0,1));
	if(tens == 'X') {
		document.forms[0].elements[num1].select();
		document.forms[0].elements[num2].value='';
		return false;
	}
	ones = 0;
	if(numberS.length > 1){ // means two characters entered
		ones=MakeNum(numberS.substring(1,2));
	}
	if(ones == 'X') {
		document.forms[0].elements[num1].select();
		document.forms[0].elements[num2].value='';
		return false;
	}
	document.forms[0].elements[num2].value = (tens * 16) + (ones * 1);
	document.forms[0].elements[num1].value = document.forms[0].elements[num1].value.toUpperCase();
	return true;
};
var NumToHex = function(num1,num2) {
	strNum=document.forms[0].elements[num1].value;

	for(i = 0; i < strNum.length; i++) {
		chr=strNum.substring(i, i + 1);		
		if((isNaN(chr))||(chr == ' ')) {
			alert('You must enter a digit between 0 and 9!');
			document.forms[0].elements[num1].select();
			document.forms[0].elements[num2].value='';
			return false;
		   }
		}
		if(strNum > 255) {
			alert('You must enter a number between 0 and 255!');
			document.forms[0].elements[num1].select();
			document.forms[0].elements[num2].value='';
			return false;
		}
		else {
			base = strNum / 16;
			rem = strNum % 16;
			base = base - (rem / 16);
			baseS = MakeHex(base);
			remS = MakeHex(rem);
			document.forms[0].elements[num2].value=baseS + '' + remS;
			return true;
	   }
};

$(document).ready(function(){
	$("#mosaic #thumbnails a").each(

		function() {

			if(thumbCount > -1 & thumbCount < 37){
				bgXOffSet = bgXOffSet + 75;
				bgYOffSet = '0';
				bgPos = '-' + bgXOffSet + 'px' + ' ' + bgYOffSet + 'px';
			} else if(thumbCount > 36 & thumbCount < 73){
				if(thumbCount == 37){
					/*bgXOffSet = '-75';*/
				}
				bgXOffSet = bgXOffSet + 75;
				bgYOffSet = '-75';
				bgPos = '-' + bgXOffSet + 'px' + ' ' + bgYOffSet + 'px';
			} else if(thumbCount > 72){
				if(thumbCount == 73){
/*					bgXOffSet = '-150';
					bgXOffSet = bgXOffSet + 75;*/
				}
				bgXOffSet = bgXOffSet + 75;
				bgYOffSet = '-150';
				bgPos = '-' + bgXOffSet + 'px' + ' ' + bgYOffSet + 'px';
			}
			$(this).css('background-position', bgPos);
			thumbCount++;
		}
	);
	$("#spectrum a").each(
		// Find the number of buttons
		function(){btnCount++;}
	);
	$("#spectrum a").each(
		// For each button, run this code. The "btnIndex" is the
		// loop iteration index on the current button.

		function(btnIndex){
			
			var lPos = mosaicWidth * (btnIndex/(btnCount-1));
			lPos = Math.round(lPos);
			var cPos = mosaicCentre - lPos;

			// Prevent the element from scrolling
			// too far to left or right
			if(cPos > 0){
				cPos = 0;
			}else if (cPos < (viewPortWidth - mosaicWidth)){
				cPos = viewPortWidth - mosaicWidth;
			}
			// Set the id of each button 
			// to correspond to the position 
			// the centre of the element will scroll to
			$(this).attr('id',cPos);

			// Bind the onclick event to each button
			$(this).bind(
				"click",
				function(){				
					$('#mosaic #thumbnails').animate(
						{ 'left': cPos },
						{ 'duration': 1000, 'queue': 'false', 'easing': 'easeInOutQuad' }
					);
					return false;
				}
			);
	});
	//$('#thumbnails a.hidden-exhibit').attr("rel", "#void");
	$('#thumbnails a').cluetip({
			showTitle: false, // hide the clueTip's heading
			local: true,
			hideLocal: true,
			attribute: 'rel',
			positionBy: 'mouse',
			cluetipClass: 'exhibit-info',
			dropShadow: false,
			cluezIndex: 6
	});
	$("#mosaic-nav-btn").click(function() {
		if(this.collapsed === false){
			$('.mosaicNav li ul').slideUp('normal', function(){$('#mosaic #thumbnails').css('z-index','3');});
			$(this).toggleClass("arrowDown");
			this.collapsed = true;
		} else{
			$('#mosaic #thumbnails').css('z-index','1');
			$('.mosaicNav li ul').slideDown();
			$(this).toggleClass("arrowDown");
			this.collapsed = false;
		}
		return false;
	});
	$('#main-nav li.login a').click(function() {
		var colorValue = MakeNum('e');
		//alert('Hex value is: ' + colorValue);
	});
});

