/*********************************************************************************
 Global variables
*********************************************************************************/
//Default browsercheck
function browsercheck(){
    this.ver=navigator.appVersion
    this.agent=navigator.userAgent
    this.dom=document.getElementById?1:0;
    this.ie5=(this.ver.indexOf("MSIE 5")>-1 && this.dom)?1:0;
    this.ie6=(this.ver.indexOf("MSIE 6")>-1 && this.dom)?1:0;
    this.ie4=(document.all && !this.dom)?1:0;
    this.ie=this.ie4||this.ie5||this.ie6
    this.mac=this.agent.indexOf("Mac")>-1
    this.opera5=this.agent.indexOf("Opera 5")>-1
    this.ns6=(this.dom && parseInt(this.ver) >= 5) ?1:0;
    this.ns4=(document.layers && !this.dom)?1:0;
    this.bw=(this.ie6 || this.ie5 || this.ie4 || this.ns4 || this.ns6 || this.opera5 || this.dom)
    //this.bw=document.getElementById?1:0;
    return this
}
var bw=browsercheck();

window.name = "MainWin";

var PageImages = new Array();
var PageAltImages = new Array();
var nest = "";
var loaded = 0;


/*********************************************************************************
Images Preload
*********************************************************************************/

//Kevin suggests rewritting to use ~getElemntByType, or something along those lines
//Re-write for -on and -off??
function LoadActiveImages() {
	var num = document.images.length;
	for (var i = 0; i < num; i++) {
		var thisImage = document.images[i];
		var thisImageSrc = thisImage.src;
		var imageName = thisImageSrc.substring(0,thisImageSrc.lastIndexOf("_o"));
		//document.write(imageName + "<BR>");
		if (thisImageSrc.lastIndexOf("_off") != -1) {
			PageImages[i] = new Image(thisImage.width, thisImage.height);
      	    PageImages[i].src = imageName + "_on.gif";
		} else if (thisImage.src.lastIndexOf("_on") != -1) {
			PageAltImages[i] = new Image(thisImage.width, thisImage.height);
      	    PageAltImages[i].src = imageName + "_off.gif";
		}
    }
}

window.onload = LoadActiveImages;
	
/*********************************************************************************
Image Swap
*********************************************************************************/
function imageSwap(which, state) {
   
	//which - required input of image name
	//state - required input of image rollover state (1 for on, 0 for off)
	//div1,div2,... - optional input layer hierarchy for Netscape 4.0 browsers
	var divNest=''
	var argLength = arguments.length
	
	//loop over the arguments, to check for any passed div id's, and set the nesting
	//used for NN4 only
	if (argLength>2) {
		for (var i = 2; i < argLength; i++)  
		divNest=divNest+'document.'+arguments[i]+'.';
	}
	
	//get the element obj reference
 bw.dom?thisImage=document.getElementById(which):bw.ie4?document.all[which]:thisImage=eval(divNest+"document[which]");
	
	//find the image src name
	var imageName = thisImage.src.substring(0,thisImage.src.lastIndexOf("_o"));
	//toggle the src name based on state
	state == 0?endString = "_off.gif":endString = "_on.gif";
	//alert(layerOver);
	//set the image src to the new src
	bw.dom?thisImage.setAttribute("src",imageName + endString):thisImage.src=imageName + endString;
}

function imageSwapTwo(which, state, number) {
     	
	//which - required input of image name
	//state - required input of image rollover state (1 for on, 0 for off)
	//div1,div2,... - optional input layer hierarchy for Netscape 4.0 browsers
	var divNest=''
	var argLength = arguments.length
	var theWhich = which + number
	//loop over the arguments, to check for any passed div id's, and set the nesting
	//used for NN4 only
	if (argLength>2) {
		for (var i = 2; i < argLength; i++)  
		divNest=divNest+'document.'+arguments[i]+'.';
	}
	
	//get the element obj reference
 bw.dom?thisImage=document.getElementById(theWhich):bw.ie4?document.all[theWhich]:thisImage=eval(divNest+"document[theWhich]");
	
	//find the image src name
	var imageName = thisImage.src.substring(0,thisImage.src.lastIndexOf("_o"));
	//toggle the src name based on state
	state == 0?endString = "_off.gif":endString = "_on.gif";
	//alert(layerOver);
	//set the image src to the new src
	bw.dom?thisImage.setAttribute("src",imageName + endString):thisImage.src=imageName + endString;
}

/*********************************************************************************
Window Functions
*********************************************************************************/	

// suppress errors
// uncomment after debugging is complete
/*function stopError() {
	return true;
}
window.onerror = stopError;
*/

if (window.focus) {
	self.focus();
}

function popWindow(URL,name,widgets) {
	popwin = window.open(URL,name,widgets);
	popwin.focus();	
	popwin.opener = self;
	popwin.name = name;
	// wrap in an if statement; don't rename if window.name already exists
	window.name = "MainWin";			
}

//	window code used on detail page
	var totalHeight = screen.availHeight;
	var totalWidth = screen.availWidth;
	function popWin(URL,name) {
		if(totalHeight > 600){
			theHeight = 800;
			theWidth =  800;
		}else{
			theHeight = 800;
			theWidth =  800;
		}
		popwin = window.open(URL,name,'height='+theHeight+',width='+theWidth+',resizable=1');
		popwin.focus();
		popwin.opener = self;
		popwin.name = name;
		// wrap in an if statement; don't rename if window.name already exists
		window.name = "MainWin";
	}

function closeWin(){
	window.close()
}

function printPage(lang) {
  if (window.print) {
    window.print() 
  } else if (lang == "fr/") {
    alert("Sorry, your browser doesn't support this feature. [FR] \nUse the print option on your browser to print this page"); 
  } else if (lang == "en/") {
    alert("Sorry, your browser doesn't support this feature. \nUse the print option on your browser to print this page"); 
  } else {
  	alert("Sorry, your browser doesn't support this feature. \nUse the print option on your browser to print this page"); 
  }
}

/**************************************************************************************
show and hide a div
**************************************************************************************/
function getStyleObject(strId) {
	//alert(strId);
	if (document.getElementById && document.getElementById(strId)) {
		return document.getElementById(strId).style;
	} else if (document.all && document.all(strId)) {
		return document.all(strId).style;
	} else {
		return false;
	}
}
	
function fnShow(strDivId) {
	//alert(strDivId);
	var objStyle = document.getElementById(strDivId);
	//alert(objStyle);
	if(objStyle){	
		objStyle.style.display = "block"; 
	}
}

function fnHide(strDivId) {
	var objStyle = document.getElementById(strDivId);
	objStyle.style.display = "none"
}

function fnHideByClass(className){
	classCollection=new Array()
	var inc=0
	
	var alltags = document.getElementsByTagName("*")

	for (i=0; i<alltags.length; i++){
		if (alltags[i].className==className)
		classCollection[inc++]=alltags[i]
	}

	for (i=0; i<classCollection.length; i++){
		classCollection[i].style.display = "none" 	
	}
	
}
function fnShowPanel(){
		if(document.getElementById('searchBox').style.display != 'block'){
			//show searchPanel
			fnShow('searchBox');
			fnHide('searchCollectionBtn');
		}else{
			//hide searchPanel
			fnHide('searchBox');
			fnShow('searchCollectionBtn');
		}	
	}
function fnShowPanelFr(){
		if(document.getElementById('searchBoxFr').style.display != 'block'){
			//show searchPanel
			fnShow('searchBoxFr');
			fnHide('searchCollectionBtn');
		}else{
			//hide searchPanel
			fnHide('searchBoxFr');
			fnShow('searchCollectionBtn');
		}	
	}	
	
function fnShowExhPanel(){
		if(document.getElementById('searchBoxExhibition').style.display != 'block'){
			//show searchPanel
			fnShow('searchBoxExhibition');
			fnHide('searchCollectionBtn');
		}else{
			//hide searchPanel
			fnHide('searchBoxExhibition');
			fnShow('searchCollectionBtn');
		}	
	}
function fnShowExhPanelFr(){
		if(document.getElementById('searchBoxExhibitionFr').style.display != 'block'){
			//show searchPanel
			fnShow('searchBoxExhibitionFr');
			fnHide('searchCollectionBtn');
		}else{
			//hide searchPanel
			fnHide('searchBoxExhibitionFr');
			fnShow('searchCollectionBtn');
		}	
	}	
function toggleImg(imgId, imgFileName, srcFolder) {
	// *** Note: srcFolder is optional. It can be included if the image to be swapped is not located in /images/ 
	// (i.e. /images/en)
	var argLength = arguments.length;
	var imgFolder = "/images/";	
	if (argLength > 2) {
		imgFolder = imgFolder + srcFolder + '/';
	}
	var strFileExtension = ".gif";
	//alert(imgFolder + imgFileName + strFileExtension);
	document.getElementById(imgId).src = imgFolder + imgFileName + strFileExtension;
}

function getElementbyClass(className){
	classCollection=new Array()
	var inc=0
	var alltags = document.getElementsByTagName("*")
	for (i=0; i<alltags.length; i++){
		if (alltags[i].className==className)
		classCollection[inc++]=alltags[i]
	}
}

function fnShowHide(strDivId,linkDivId) {
	var objStyle = document.getElementById(strDivId);
	
	var  hideLinkStyle = 'hide' + strDivId;

	hideLinkStyle = document.getElementById(hideLinkStyle);
	
	var showLinkStyle = 'show' + strDivId;
	showLinkStyle = document.getElementById(showLinkStyle);
	
	if(objStyle){
		objStyle.style.display = "block"; 	
	}
	
	
		hideLinkStyle.style.display = "inline"; 
		showLinkStyle.style.display = "none"; 
	
	
}

function fnHideShow(strDivId,linkDivId) {

	var objStyle = document.getElementById(strDivId);
	var  hideLinkStyle = 'hide' + strDivId;
	//alert(hideLinkStyle);
	hideLinkStyle = document.getElementById(hideLinkStyle);
	var showLinkStyle = 'show' + strDivId;
	showLinkStyle = document.getElementById(showLinkStyle);
	
	if(!objStyle){
		objStyle.style.display = "block";
	}else{
		objStyle.style.display = "none"; 	
	}
	
	
		hideLinkStyle.style.display = "none"; 
		showLinkStyle.style.display = "inline"; 
	
	
}

function fnChangeClass(elementId,className){
	var currTabElem = document.getElementById(elementId); 

	currTabElem.setAttribute("class",className); 
	currTabElem.setAttribute("className",className); 

}

function slideShow(lang) {
	// set up list of images
	slidesArray = new Array()
	
	slidesArray[0]="/images/"+lang+"/imgHomeBanner1.jpg"
	slidesArray[1]="/images/"+lang+"/imgHomeBanner2.jpg"
	slidesArray[2]="/images/"+lang+"/imgHomeBanner3.jpg"
	slidesArray[3]="/images/"+lang+"/imgHomeBanner4.jpg"
	slidesArray[4]="/images/"+lang+"/imgHomeBanner5.jpg"
	// load image
	document.images.homeBanner.src=slidesArray[i]
	
	// increment counter
	i=i+1;
	
	// when at the end clear the interval
	if(i==5) { 
	i=0; 
	/*window.clearInterval(interval);*/
	}
}

function resizeImage(imgName){
	theImage = imgName;
	var newHeight = "85";
	var newWidth = "85";
	imageHeight = theImage.height;
	imageWidth = theImage.width;
	alert( imageHeight + ' ' + imageWidth);
	if(imageHeight > imageWidth){
		newWidth = imageWidth * newHeight/imageHeight;
		newWidth = Math.round(newWidth);	
		alert('h ' + newHeight + ' ' + newWidth);
	}else{
		
		newHeight = imageHeight * newWidth/imageWidth;
		newHeight = Math.round(newHeight);	
		alert('w ' + newHeight + ' ' + newWidth);
	}
	
	
	theImage.height = newHeight;
	theImage.width = newWidth;			
}

function validateSearch(lang){
	keywords = window.document.forms[0].searchCollection.value;
	errorLog = "";	
	if (keywords.length == ""){
		if(lang.value == "fr"){
			errorLog = errorLog + "FR Please enter keywords to search. \n";
		}else{
			errorLog = errorLog + "Please enter keywords to search. \n";
		}
	}
	
	if (errorLog.length >= 1){
		alert(errorLog);
		errorLog = "";
		return false;
	} else {
		window.document.forms[0].submit;
		return true;
		return false;
	}
	
}

function validateExhSearch(lang){
	keywords = window.document.forms[0].searchExhibition.value;
	errorLog = "";	
	if (keywords.length == ""){
		if(lang.value == "fr"){
			errorLog = errorLog + "FR Please enter keywords to search. \n";
		}else{
			errorLog = errorLog + "Please enter keywords to search. \n";
		}
	}
	
	if (errorLog.length >= 1){
		alert(errorLog);
		errorLog = "";
		return false;
	} else {
		window.document.forms[0].submit;
		return true;
		return false;
	}
	
}

function validateAdvancedSearch(lang){

	keywords = window.document.forms[1].keywords.value;
	artifactTypeId  = document.getElementById('artifactTypeId').options[document.getElementById('artifactTypeId').selectedIndex].value;
	regionId = document.getElementById('regionId').options[document.getElementById('regionId').selectedIndex].value;
	peopleId = document.getElementById('peopleId').options[document.getElementById('peopleId').selectedIndex].value;
	materialId = document.getElementById('materialId').options[document.getElementById('materialId').selectedIndex].value;
	techniqueId = document.getElementById('techniqueId').options[document.getElementById('techniqueId').selectedIndex].value;
	mimsyId  = window.document.forms[1].mimsyId.value;
	//dimensions = window.document.forms[1].dimensions.value;
//	dimensions2  = window.document.forms[1].dimensions2.value;
//	colour = document.getElementById('colour').options[document.getElementById('colour').selectedIndex].value;
//	dateTypePeriod = window.document.forms[1].dateType[0].checked;
	dateTypeDateMade = window.document.forms[1].dateType[0].checked;
	dateTypeEra = window.document.forms[1].dateType[1].checked;
	//period = document.getElementById('period').options[document.getElementById('period').selectedIndex].value;
	dateMadeFrom = window.document.forms[1].dateMadeFrom.value;
	dateMadeTo = window.document.forms[1].dateMadeTo.value;
	era = document.getElementById('era').options[document.getElementById('era').selectedIndex].value;

	errorLog = "";	
	
	if( 
	   (keywords.length == "") &&
	   (artifactTypeId == 0) &&
	   (regionId == 0) &&
	   (peopleId == 0) && 
	   (materialId == 0) && 
	   (techniqueId == 0) && 
	   (mimsyId.length == "")&& 
	//   (dimensions.length == "" && dimensions2.length == "") &&
	//   (colour.length == "") && 
	//   ((dateTypePeriod && period.length == 0) || 
	   ((dateTypeDateMade && (dateMadeFrom == "" || dateMadeTo == "")) || 
	   (dateTypeEra && era.length == 0))	 
	){
	
	if(lang.value == "fr"){
			errorLog = errorLog + "FR Please enter an advanced search criteria. \n";
		}else{
			errorLog = errorLog + " Please enter an advanced search criteria. \n";
		}
	}
	
	if (errorLog.length >= 1){
		alert(errorLog);
		errorLog = "";
		return false;
	} else {
		window.document.forms[1].submit;
		return true;
		return false;
	}
	
}

function validateRefine(lang){
	dateMadeEarliest = window.document.forms[1].dateMadeEarliest.value;
	dateMadeLatest= window.document.forms[1].dateMadeLatest.value;
	
	errorLog = "";	
	
	if(dateMadeEarliest == "" || dateMadeLatest == ""){
	
	if(lang.value == "fr"){
			errorLog = errorLog + "FR Please enter date made criteria to refine your search. \n";
		}else{
			errorLog = errorLog + "Please enter date made criteria to refine your search. \n";
		}
	}
	
	if (errorLog.length >= 1){
		alert(errorLog);
		errorLog = "";
		return false;
	} else {
		window.document.forms[1].submit;
		return true;
		return false;
	}
	
}