/*-------------------------------------------------------------------------------*/
/*---                                                                         ---*/
/*---                          S M A R T P L A C E                            ---*/
/*---                                                                         ---*/
/*---                                                                         ---*/
/*---                 Copyright ThinkMarketPlace 2004-2007                    ---*/
/*---                                                                         ---*/
/*-------------------------------------------------------------------------------*/


//Global variable for AJAX SEARCH
var req;
var displayArray = Array();
var selectedTR='';
var form_name = '';


//Global variable for AJAX TIME
var selected_timeTR = '';

//-- FIND the object
function MM_findObj(n, d)
{
	var p,i,x; if(!d) d=document;
	if((p=n.indexOf("?"))>0&&parent.frames.length) 
	{
		d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);
	}
	if(!(x=d[n])&&d.all) x=d.all[n];
	for(i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
	for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
	if(!x && d.getElementById) x=d.getElementById(n);
	return x;
}

//-- SHOW/HIDE the layers
function MM_showHideLayers()
{
	var i,p,v,obj,args=MM_showHideLayers.arguments;
	for (i=0; i<(args.length-2); i+=3)
	if ((obj=MM_findObj(args[i]))!=null)
	{
		v=args[i+2];
		if (obj.style)
		{
			obj=obj.style; v=(v=='show')?'':(v=='hide')?'none':v;
		}
		obj.display=v;
	}  
}

//-- FIND the posigion of X - cordinate object
function findPosX(obj)
{
	var curleft = 0;
	if(obj.offsetParent)
	while(1) 
	{
		curleft += obj.offsetLeft;
		if(!obj.offsetParent)
			break;
		obj = obj.offsetParent;
	}
	else if(obj.x)
	curleft += obj.x;
	return curleft;
}

//FIND the posigion of Y - cordinate object
function findPosY(obj)
{
	var curtop = 0;
	if(obj.offsetParent)
	while(1)
	{
		curtop += obj.offsetTop;
		if(!obj.offsetParent)
			break;
		obj = obj.offsetParent;
	}
	else if(obj.y)
	curtop += obj.y;
	return curtop;
}

//-- code for AJAX calling
function loadXMLDoc(url)
{
	//create AJAX object here.
	if (window.XMLHttpRequest)
	{
		req = new XMLHttpRequest();
		req.onreadystatechange = function ()
		{
			if (req.readyState == 4)
			{
				processChange(url);
			}
		}
		req.open("GET", url, true);
		req.send(null);
		// branch for IE/Windows ActiveX version
	}
	else if (window.ActiveXObject)
	{
		req = new ActiveXObject("Microsoft.XMLHTTP");
		if (req)
		{
			req.onreadystatechange = function ()
			{
				if (req.readyState == 4)
				{
					processChange(url);
				}
			}
			req.open("GET", url, true);
			req.send();
		}
 	}
}

//-- PROCESS the URL
function processChange(url)
{
	var QS = new Querystring(url);
	var fieldName = QS.get("fldName","");
	var divName = QS.get("divName","");
	form_name = QS.get("forn_name","");
	Set_Cookie('searchName',divName,0);
	selectedTR='';
	displayArray = Array();
	//".$field."Result.style.visibility='visible';
	var img = fieldName+"_img";
	//alert(img);
	var imgObj = MM_findObj(img);
	var chkobj = MM_findObj(fieldName);
	var chk_obj = MM_findObj(divName);

	//chk_obj.scrollTop=document.getElementById('divName').scrollTop;
	//alert(chk_obj.scrollTop);
	chk_obj.top = 0;
	
	MM_showHideLayers(divName,'','show');
	//chk_obj.focus();
	
	//chk_obj.style.left 	= findPosX(chkobj);
	//chk_obj.style.top 	= findPosY(chkobj)+16;
	
	//alert(chk_obj.style.left);
	//alert(chk_obj.style.top);
	
	// The page has loaded and the HTTP status code is 200 OK
	if (req.readyState == 4 && req.status == 200)
	{
		// Write the contents of this URL to the searchResult layer
		if (req != null)
		{
			response = req.responseXML.documentElement;
			total = response.getElementsByTagName('total')[0].firstChild.data;
			spanstr = response.getElementsByTagName('spanstring')[0].firstChild.data;
			getObject(divName).innerHTML = spanstr;
			//alert(spanstr);
			var i,j=0;
			//generate array for name and hidden values
			for(i=1;i<=total;i++)
			{
				displayArray[j] = Array();
				displayArray[j]["display"] = response.getElementsByTagName('displayName')[j].firstChild.data;
				displayArray[j]["hidden"] = response.getElementsByTagName('hiddenName')[j].firstChild.data;
				j++;
			}
		}
	}
	MM_showHideLayers(img,'','none');
}

//-- GET OBJECT
function getObject(name)
{
   var ns4 = (document.layers) ? true : false;
   var w3c = (document.getElementById) ? true : false;
   var ie4 = (document.all) ? true : false;

   if (ns4) return eval('document.' + name);
   if (w3c) return document.getElementById(name);
   if (ie4) return eval('document.all.' + name);
   return false;
}

//set hte value in div and text box
function setit(str,divName,formName,fldName)
{
	//var divName = "generated";
	var chk_obj = MM_findObj(divName);
	MM_showHideLayers(divName,'','show');
	//document.getElementById(divName).style.visibility="visible";
	eval('document.'+formName+'.'+fldName+'.value="'+str+'"'); 
}

//-- HIDE the div
function hideDiv(str,divName,formName,fldName)
{
	var divName = "generated";
	var chk_obj = MM_findObj(divName);
	MM_showHideLayers(divName,'','none');
	//document.getElementById(divName).style.visibility="hidden";
	document.getElementById(divName).style.height="0px";
	selectedTR = '';
	displayArray = Array();
}

//set the hidden value
function sethidden(formName,returnValue,hiddenField)
{
	formName = form_name;
	eval('document.'+formName+'.'+hiddenField+'.value= "'+returnValue+'"');
}

//change the row class
function ChangeTRColor(TRevent,elementName,orgClassName)
{
	if(TRevent ==1)	document.getElementById(elementName).className="mouseover";
	else						document.getElementById(elementName).className=orgClassName;
}

//--
function makeBlank(str,divName,formName,fieldName)
{
	var divName = "generated";
	var divObj = MM_findObj(divName);
	divObj.innerHtml = "";
}

//handle the key event of div
function MoveEvent(eevent, divName,formName,fieldName,hiddenField)
{
	formName = form_name;
	var divName = "generated";
	var divObj = MM_findObj(divName);
	var tempTR1=0;
	var tempTR2=0;
	var prevTR='';
	var nextTR=0;
	if (selectedTR === "")
	{
		prevTR='';
		tempTR2=0;
		nextTR="tr_"+fieldName+tempTR2;
	}
	else
	{
		//check for row number
		if(selectedTR%2==0)
		{
			orgClassName = "lightrow";
		}
		else
			orgClassName = "darkrow";

		tempTR1=selectedTR-1;
		prevTR="tr_"+fieldName+tempTR1;
		
		tempTR2=selectedTR+1;
		nextTR="tr_"+fieldName+tempTR2;
	} 
	tempTRSelected="tr_"+fieldName+selectedTR;
	lastselectedTRobj = document.getElementById(tempTRSelected);
	selectedTR = tempTR2;
	//check for event

	switch (eevent.keyCode)
	{
		case 40:
			//down
			nextObj=document.getElementById(nextTR);
			
			var row ;
			//row = selectedTR + 1;
			row = selectedTR;
			if(nextObj)
			{
				nextObj.className = "mouseover";
				if(lastselectedTRobj)
					lastselectedTRobj.className = orgClassName;
				setit(displayArray[row]["display"],divName,formName,fieldName);
				var hiddenfieldName = hiddenField;
				sethidden(formName,displayArray[row]["hidden"],hiddenfieldName);
			 }
			 else
			 	selectedTR = selectedTR-1;
		 	break;

		case 38:
			//up
			prevObj=document.getElementById(prevTR);
			if(selectedTR<=0)
			{
				divObj.innerHtml = "";
				if(lastselectedTRobj)
				  lastselectedTRobj.className = orgClassName;
				selectedTR='';	
				divObj.style.display="none";
				eval("document."+formName+"."+fieldName+".focus();");
			}
			else 
			{
				selectedTR = tempTR1;
			}
			var row ;
			//row = selectedTR+1;
			row = selectedTR;
			if(prevObj)
			{
				prevObj.className = "mouseover";
				if(lastselectedTRobj)
				  lastselectedTRobj.className = orgClassName;
			    setit(displayArray[row]["display"],divName,formName,fieldName);
				var hiddenfieldName = hiddenField;
				sethidden(formName,displayArray[row]["hidden"],hiddenfieldName);
			}
		 	break;
		case 27:
			//esc
			divObj.innerHtml = "";
			if(lastselectedTRobj)
			  lastselectedTRobj.className = orgClassName;
			selectedTR='';	
			divObj.style.display="none";
			displayArray = Array();
			//eval("document."+formName+"."+fieldName+".focus();");
			break;
		case 13:
			//enter
			divObj.innerHtml = "";
			if(lastselectedTRobj)
			  lastselectedTRobj.className = orgClassName;
			selectedTR='';	
			divObj.style.display="none";
			displayArray = Array();
			//eval("document."+formName+"."+fieldName+".focus();");
			break;
	}
}

//handle the key event of textbox.
function TextEvent(eevent, divName,formName,fieldName,hiddenField)
{
	var divName = "generated";
	var divObj = MM_findObj(divName);
	switch (eevent.keyCode)
	{
		case 40:
			//down
			if(selectedTR=="")
				selectedTR = 0;
			//selectedTR = selectedTR+1;
			nextTR="tr_"+fieldName+selectedTR;
			
			nextObj=document.getElementById(nextTR);
			if(nextObj)
			{
				nextObj.className = "mouseover";
				row = selectedTR;
				setit(displayArray[row]["display"],divName,formName,fieldName);
				var hiddenfieldName = hiddenField;
				sethidden(formName,displayArray[row]["hidden"],hiddenfieldName);
			 }
			 
			divObj.focus();
		 	break;
		case 9:
			//tab key
			divObj.innerHtml = "";
			selectedTR='';	
			divObj.style.display="none";
			displayArray = Array();
			break;
		case 27:
			//esc
			divObj.innerHtml = "";
			selectedTR='';	
			divObj.style.display="none";
			displayArray = Array();
			break;
	}
	
}


/*
function manupulate_time(url)
{
	//create AJAX object here.
	if (window.XMLHttpRequest)
	{
		req = new XMLHttpRequest();
		req.onreadystatechange = function ()
		{
			if (req.readyState == 4)
			{
				processTimeUrl(url);
			}
		}
		req.open("GET", url, true);
		req.send(null);
		// branch for IE/Windows ActiveX version
	}
	else if (window.ActiveXObject)
	{
		req = new ActiveXObject("Microsoft.XMLHTTP");
		if (req)
		{
			req.onreadystatechange = function ()
			{
				if (req.readyState == 4)
				{
					processTimeUrl(url);
				}
			}
			req.open("GET", url, true);
			req.send();
		}
 	}
}

function processTimeUrl(url)
{
	var QS = new Querystring(url);
	var fldName = QS.get("fieldName","");
	var divName = fldName+"Result";
	
	MM_showHideLayers(divName,'','show');
	
	// The page has loaded and the HTTP status code is 200 OK
	if (req.readyState == 4 && req.status == 200)
	{
		// Write the contents of this URL to the searchResult layer
		if (req != null)
		{
			response = req.responseXML.documentElement;
			total = response.getElementsByTagName('total')[0].firstChild.data;
			spanstr = response.getElementsByTagName('spanstring')[0].firstChild.data;
			getObject(divName).innerHTML = spanstr;
		}
	}
}

//set hte value in div and text box
function set_time(str,divName,formName,fldName)
{
	//var divName = "generated";
	var chk_obj = MM_findObj(divName);
	MM_showHideLayers(divName,'','show');
	//document.getElementById(divName).style.visibility="visible";
	eval('document.'+formName+'.'+fldName+'.value="'+str+'"'); 
}

function keyEvent(eevent, divName,formName,fieldName)
{
	var divName = "time_generated";
	var divObj = MM_findObj(divName);
	//check the event
	switch (eevent.keyCode)
	{
		case 40:
			//down
			
			if(selected_timeTR=="")
				selected_timeTR = 0;
			nextTR="tr_"+fieldName+selected_timeTR;
			
			nextObj=document.getElementById(nextTR);
			if(nextObj)
			{
				nextObj.className = "mouseover";
				row = selected_timeTR;
				set_time(displayArray[row]["display"],divName,formName,fieldName);
			 }
			
			divObj.focus();
		 	break;
		case 9:
			//tab key
			divObj.innerHtml = "";
			selected_timeTR='';	
			divObj.style.display="none";
			break;
		case 27:
			//esc
			divObj.innerHtml = "";
			selected_timeTR='';	
			divObj.style.display="none";
			break;
	}
}
*/