var a_ImageName =  new Array();
var a_ImageDownloaded = new Array()
var a_ProdURL = new Array()
var a_StdCode = new Array()
var a_MatchType = new Array()

var LastId = 0;

ImageObject = new Image();
ImageObject.src="/xp/images/hourglass_small.gif"

function DownloadImages() {
	for (var k=0; k<a_ImageName.length-1; k++) {
		if (a_ImageDownloaded[k] == false) {
			ImageObject.src=a_ImageName[k]
			a_ImageDownloaded[k] = true
		}
	}
}

function ProgressBar(yFlag) {
	if (document.getElementById("divProgress")) {
		if (yFlag) {
			document.getElementById("divProgress").style.visibility = "visible";
		}
		else {
			document.getElementById("divProgress").style.visibility = "hidden";
		}
	}
}
var ProgressBarId = 0;
var MaxRecordsInTheDB = 10000;
function GetNextPage() {
	var currobj=document.Gallery
	if (currobj.txtSearch.value.length > 0) {
	    //alert(currobj.txtSearch.value)
		//ProgressBarId = setTimeout("ProgressBar(true)", 300);
		CurrentPage = parseInt(currobj.CurrentPage.value) + 1
		if (CurrentPage <= MaxPages) {
			currobj.CurrentPage.value = CurrentPage
			//alert("Before SendRequest() " + MaxRecordsInTheDB + " ... " + LastMax)

			if (MaxRecordsInTheDB > LastMax) {
				SendRequest()
			}
			if (MaxRecordsInTheDB <= LastMax) {
				clearTimeout(TimeOutId);
				//clearTimeout(ProgressBarId);
				//ProgressBar(false)
			}
			else {
				TimeOutId = setTimeout("GetNextPage()", 6000);
			}
		}
		else {
			clearTimeout(TimeOutId);
			//clearTimeout(ProgressBarId);
			//ProgressBar(false)		
		}
	}
}

function SendRequest() {
	var currobj=document.Gallery
	var xparam;
	var xrequesttype = "imagesearch" ;
	
	var xtxtsearch = currobj.txtSearch.value.split(' ').join('%20');
	var xquicksearch = currobj.txtQuickSearch.value.split(' ').join('%20');
	var xcurrentpage = currobj.CurrentPage.value;
	var xfree = currobj.free.value;
	var xdept_id = currobj.dept_id.value;
	var xshowrelevant = "checked";
	if (currobj.showrelevant) {
	    if (currobj.showrelevant.checked) {
		    xshowrelevant = currobj.showrelevant.value
	    }
	    else {
		    xshowrelevant = ""
	    }
    }	
    var MaxProductsToShow = PageSize * MaxPages
	xparam = MakeParam("requesttype;txtsearch;currentpage;free;dept_id;showrelevant;PageSize;MaxProductsToShow;txtQuickSearch", xrequesttype + ";" + xtxtsearch + ";" + xcurrentpage + ";" + xfree + ";" + GalleryDeptId + ";" + xshowrelevant + ";" + PageSize + ";" + MaxProductsToShow + ';' + xquicksearch)
	
	//document.write ("/xp/RequestProducts.asp" + xparam)
	xresp = CallASP("/xp/RequestProducts.asp", xparam)
	if (xresp.length <= 0) {
		return;
	}
	else {
		if (xresp.indexOf("Error#") >= 0) {
			return;
		}
		else if (xresp.indexOf("False#") >= 0) {
			return;
		}
		else if (xresp.indexOf("True#") >= 0) {
			xresp = xresp.split('True#').join('')
			if (xresp.length > 0) {
				a_resp = xresp.split('|^|')
				
				MaxRecordsInTheDB = a_resp[0].split('~')
				var t_ImageName = a_resp[1].split('~')
				var t_ImageDownloaded = a_resp[2].split('~')
				var t_ProdURL = a_resp[3].split('~')
				var t_StdCode = a_resp[4].split('~')
				var t_MatchType = a_resp[5].split('~')
				
				xMax = a_ImageName.length
				for (var k=0; k<t_ImageName.length-1; k++) {
					a_ImageName[xMax+k] = thumbnailImagePath + '/' + t_ImageName[k]
					a_ImageDownloaded[xMax+k] = false
					a_ProdURL[xMax+k] = t_ProdURL[k]
					a_StdCode[xMax+k] = t_StdCode[k]
					a_MatchType[xMax+k] = t_MatchType[k]
				}
				ShowImages()
				if (parseInt(MaxRecordsInTheDB) == 0) {
					ShowErrorMessage()
				}
			}
			else {
				//this may not be called at all
				ShowErrorMessage()
			}
		}
	}
}

function ShowErrorMessage() {
	var currobj=document.Gallery
	LastMax = 0
	for (var k=1; k<=RowMax; k++) {
		document.getElementById("divGallery" + k).innerHTML = ""
		if (k == 1) {
			var xmsg = "<font face=verdana size=3 color=#CC0000><br><b>Sorry!</b> We could not find any matching record for your search.<br>Please <b>check spelling</b> of your search.</font><br>"
			if (currobj.showrelevant) {
			    if (currobj.showrelevant.checked) {
				    xmsg = xmsg + "<font face=verdana size=3 color=#CC0000>Or, you may also try unchecking the <b>Show Most Relevant</b> box.</font>"
			    }
			}
			document.getElementById("divGallery" + k).innerHTML = xmsg
		}
	}				

}
function CallASP(yurl, yparam) {
	var xmlhttp = false;
	try {
		xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
	} 
	catch (e) {
		try {
			xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
		} 
		catch (E) {
			xmlhttp = false;
		}
	}
	if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
		xmlhttp = new XMLHttpRequest();
	}
	xmlhttp.open("POST", yurl, false);
	xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded")  //"text/xml"
	xmlhttp.send(yparam)
	
	if (xmlhttp.readyState==4) {
		var xretstr = ""
		if (xmlhttp.status==200) {
			xretstr = xmlhttp.responseText;
		}
		else if (xmlhttp.status==404) {
			xretstr = ""
		}
		else {
			xretstr = ""
		}
		return xretstr;
	}
	return ""; 
}

var SendRequestTimerId = 0
function SendRequest_Async() {
	var currobj=document.Gallery
	var xparam;
	var xrequesttype = "imagesearch" ;
	
	var xtxtsearch = currobj.txtSearch.value.split(' ').join('%20');
	var xquicksearch = currobj.txtQuickSearch.value.split(' ').join('%20');
	var xcurrentpage = currobj.CurrentPage.value;
	var xfree = currobj.free.value;
	var xdept_id = currobj.dept_id.value;
	var xshowrelevant = "checked";
	if (currobj.showrelevant) {
	    if (currobj.showrelevant.checked) {
		    xshowrelevant = currobj.showrelevant.value
	    }
	    else {
		    xshowrelevant = ""
	    }
    }	
    var MaxProductsToShow = PageSize * MaxPages
	xparam = MakeParam("requesttype;txtsearch;currentpage;free;dept_id;showrelevant;PageSize;MaxProductsToShow;txtQuickSearch", xrequesttype + ";" + xtxtsearch + ";" + xcurrentpage + ";" + xfree + ";" + GalleryDeptId + ";" + xshowrelevant + ";" + PageSize + ";" + MaxProductsToShow + ';' + xquicksearch)
	CallASP("/xp/RequestProducts.asp", xparam)
	SendRequestTimerId = setTimeout("TreatTheResponse()", 1000);
}

function TreatTheResponse_Async() {
	alert("TreatTheResponse \n" + ResponseStr)
	xresp = ResponseStr
	if (xresp.length <= 0) {
		//alert(LastMax)
		SendRequestTimerId = setTimeout("TreatTheResponse()", 1000);
		return;
	}
	else {
		if (SendRequestTimerId > 0 ) {
			clearTimeout(SendRequestTimerId)
		}			
		ResponseStr = ""
		if (xresp.indexOf("Error#") >= 0) {
			return;
		}
		else if (xresp.indexOf("False#") >= 0) {
			return;
		}
		else if (xresp.indexOf("True#") >= 0) {
			xresp = xresp.split('True#').join('')
			if (xresp.length > 0) {
				a_resp = xresp.split('|^|')
				
				MaxRecordsInTheDB = a_resp[0].split('~')
				var t_ImageName = a_resp[1].split('~')
				var t_ImageDownloaded = a_resp[2].split('~')
				var t_ProdURL = a_resp[3].split('~')
				var t_StdCode = a_resp[4].split('~')
				var t_MatchType = a_resp[5].split('~')
				
				xMax = a_ImageName.length
				for (var k=0; k<t_ImageName.length-1; k++) {
					a_ImageName[xMax+k] = thumbnailImagePath + '/' + t_ImageName[k]
					a_ImageDownloaded[xMax+k] = false
					a_ProdURL[xMax+k] = t_ProdURL[k]
					a_StdCode[xMax+k] = t_StdCode[k]
					a_MatchType[xMax+k] = t_MatchType[k]
				}
				ShowImages()
				if (parseInt(MaxRecordsInTheDB) == 0) {
					ShowErrorMessage()
				}
			}
			else {
				//this may not be called at all
				ShowErrorMessage()
			}

		}
	}

}

var ResponseStr = "";
function CallASP_Async(yurl, yparam) {
	var xmlhttp = false;
	try {
		xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
	} 
	catch (e) {
		try {
			xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
		} 
		catch (E) {
			xmlhttp = false;
		}
	}
	if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
		xmlhttp = new XMLHttpRequest();
	}
	xmlhttp.open("POST", yurl, true);
	xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded")  //"text/xml"
	//alert("CallASP...")
	xmlhttp.onreadystatechange =
		function ()
		{	
			if (xmlhttp.readyState==4) {
				var xretstr = ""
				if (xmlhttp.status==200) {
					xretstr = xmlhttp.responseText;
				}
				else if (xmlhttp.status==404) {
					xretstr = ""
				}
				else {
					xretstr = ""
				}
				//return xretstr;
				ResponseStr = xretstr
			}
		}
	//alert("CallASP2...")		
	xmlhttp.send(yparam)		
	//return ""; 
}

function MakeParam(snames, svalues) {
	var xparam = "";
	var a_names, a_values;
	if (snames.length > 0) {
		a_names = snames.split(';')
		a_values = svalues.split(';')
		for (var k=0; k<a_names.length; k++) {
			if (k > 0) {
				xparam = xparam + "&"
			}
			xparam = xparam + a_names[k] + "=" + a_values[k]
		}
	}
	return xparam;
}

var oXMLHTTP
function ProductCallOut(stdcode,numberofproducts) {
  var sURL = "http://" + HTTP_HOST + "/xp/CallOut.asp?ss=1&ShowMedResImage=1&stdcode=" + stdcode;

	if (numberofproducts == 1){
		sURL = sURL + "&multiple=0";
	} else {
		sURL = sURL + "&multiple=1";
	}
	//document.write (sURL)
	
	oXMLHTTP = null;
	
	if (window.XMLHttpRequest){	
		// code for Mozilla, etc.
		oXMLHTTP = new XMLHttpRequest()
	} else if (window.ActiveXObject){ 	
		// code for IE
		oXMLHTTP = new ActiveXObject("Microsoft.XMLHTTP");
	}
	if (oXMLHTTP!=null){
		oXMLHTTP.onreadystatechange=state_Change;
		oXMLHTTP.open("GET", sURL, false);
		oXMLHTTP.send(null);
	}else{
		//alert("Your browser does not support XMLHTTP.")
	}

	ol_fgcolor="#FFFFFF";
	ol_bgcolor="#CCCCCC";
	ol_border=0;

	ol_padxl = 0;
	ol_padxr = 0;
	ol_padyt = 0;
	ol_padyb = 0;
	o3_hauto = 1;

	ol_delay=500;
	return oXMLHTTP.responseText;
}

function state_Change(){
	if (oXMLHTTP.readyState==4){	// if xmlhttp shows "loaded"
	  if (oXMLHTTP.status==200){	// if "OK"

	  }else {
		//alert("Problem retrieving XML data")
	  }
	}
}

var RightScrollId = 0;
var LeftScrollId = 0;

function ScrollBigRight(yjump) {
	document.getElementById("divGallery").scrollLeft = document.getElementById("divGallery").scrollLeft + yjump;
	if (IsMouseDown) {
		//ScrollBigRight(635)
		//RightScrollId = setTimeout("ScrollBigRight(" + SmallestScrollWidth + ")", 4000);
		IsMouseHover = false;
	}
	if (IsMouseHover) {
		RightScrollId = setTimeout("ScrollBigRight(" + yjump + ")", 10);
		//if (LeftScrollId > 0) {
		//	clearTimeOut(LeftScrollId)
		//}
	}
}

function ScrollBigLeft(yjump) {
	document.getElementById("divGallery").scrollLeft = document.getElementById("divGallery").scrollLeft - yjump;  
	if (IsMouseDown) {
		//ScrollBigLeft(635)
		//LeftScrollId = setTimeout("ScrollBigLeft(" + SmallestScrollWidth + ")", 4000);
		IsMouseHover = false;
	}
	if (IsMouseHover) {
		LeftScrollId = setTimeout("ScrollBigLeft(" + yjump + ")", 10);
		//if (RightScrollId > 0) {
		//	clearTimeOut(RightScrollId)
		//}
	}
	
}

function ScrollRight() {
	document.getElementById("divGallery").scrollLeft = document.getElementById("divGallery").scrollLeft + 60;
}

function ScrollLeft(ygotostart) {
	if (ygotostart) {
		document.getElementById("divGallery").scrollLeft = 0;
	}
	else {
		document.getElementById("divGallery").scrollLeft = document.getElementById("divGallery").scrollLeft - 60;
	}
}

var ns4dom = (document.layers)? true:false
var ie4dom = (document.all)? true:false;
var	ns6dom = false   

startX=0
startY=0
endX=0
endY=0

IsMouseDown = false
IsMouseHover = false

var TimeOutId=0;
function nmoveHandler(yevt) {
	var xdom;
	
	startX = endX
	startY = endY  
	
	if (ns4dom || ns6dom) {
		endX = yevt.pageX  
		endY = yevt.pageY  
	}
	else {
		endX = window.event.clientX  
		endY = window.event.clientY  
	}
	
	if (IsMouseDown) {
		if (endX < startX) {
			ScrollLeft()
		}
		else if (endX > startX) {
			ScrollRight()
		}
		
	}
}

function nupHandler(yevt) {
	IsMouseDown = false
}

function ndownHandler(yevt) {
	IsMouseDown = true
	if (ns4dom || ns6dom) {
		startX = yevt.pageX  
		startY = yevt.pageY  
	}
	else {
		startX = window.event.clientX  
		startY = window.event.clientY  
	}
	endX = startX
	endY = startY
}

var LastMax = 0
function ShowImages() {
	for (var k=LastMax; k<a_ImageName.length; k++) {
		var xrowno = (k % RowMax) + 1
		var xleft = k * 142
		var xtop = 122
		//var xwidth = 126
		//var xheight = 147
		var xwidth = 126
		var xheight = 142
		
		onmouseoverstr = "onmouseover = \"return overlib(ProductCallOut(\'" + a_StdCode[k] + "\', 1), VAUTO,BACKGROUND,\'transparent\');\"" 
		onmouseoutstr = "onmouseout = \"return nd();\""
		
		var targetDiv = document.getElementById("divGallery" + xrowno)
		var newDiv = document.createElement("SPAN");
		
		xBgColor = "#EEFFFF"   //Cyan
		xBorderColor = "#DDDDDD"  //"#404080"
		if (a_MatchType[k].toLowerCase() == "exact") {
			xBgColor = "#FFFFFF"  //Cream #FFFFDD
			xBorderColor = "#DDDDDD" //"#804040"
		}
		
		//newDiv.innerHTML = "<table width=" + xwidth + " height=" + xheight + " bgColor=" + xBgColor + " cellpadding=0 cellspacing=0 align=left style='border-width:1; border-right-width:0; border-style:dotted; border-color:" + xBorderColor + ";'><tr><td width=" + xwidth + " align=center class=body8><a href='" + a_ProdURL[k] + "' align='center' class=body8><img src='" + a_ImageName[k] + "' hspace='0' vspace='0' border='0' " + onmouseoverstr + " " + onmouseoutstr + "'></a><br>" + a_StdCode[k] + "</td></tr></table>";
		newDiv.innerHTML = "<table width=" + xwidth + " height=" + xheight + " bgColor=" + xBgColor + " cellpadding=0 cellspacing=0 align=left style='border-width:1; border-right-width:0; border-style:dotted; border-color:" + xBorderColor + ";'><tr><td width=" + xwidth + " align=center class=body8 valign=bottom><a href='" + a_ProdURL[k] + "'><img src='" + a_ImageName[k] + "' border='0' " + onmouseoverstr + " " + onmouseoutstr + "'></a><div class=body7 style='margin:1px 0px 3px 0px;'>" + a_StdCode[k] + "</div></td></tr></table>";
		newDiv.width = xwidth;
		newDiv.height = xheight;
		
		targetDiv.appendChild(newDiv);
		
		document.getElementById("GalleryStatus").innerHTML = "Total Images Displayed: <b>" + (k + 1) + "</b>"
		LastMax = k+1
	}	
}
function SubmitNow() {
	var currobj=document.Gallery
	
	ScrollLeft(true);

	currobj.CurrentPage.value = 0
	a_ImageName.length = 0
	a_ImageDownloaded.length = 0
	a_ProdURL.length = 0
	a_StdCode.length = 0
	a_MatchType.length = 0
		
	LastMax = 0
	for (var k=1; k<=RowMax; k++) {
		document.getElementById("divGallery" + k).innerHTML = ""
	}
	LastSearch = currobj.txtSearch.value
	MaxRecordsInTheDB = 10000
	
	TimeOutId = setTimeout("GetNextPage()", 1000);	
	//GetNextPage()
}


