var TWIP=10;
var INCH=1440;

function hstr(value)
	{
	this.value = value;
	}

function getFraction(n)
	{
	var rnumber = ""+n;
	var idx = rnumber.indexOf(".");
	if (idx == -1)
		return 0.0;
	return parseFloat(rnumber.substring(idx));
	}

function Round1(a)
	{
	if (isNaN(parseFloat(a)))
		return "";
	var s=(a<0);
	if (s) a=-a;
	var d=Math.floor(a);
	//var c=Math.floor((a-d)*100+0.5);
	var c=Math.floor(getFraction(a)*100+0.5);
	if (c==100) {d++;c=0;}
	var cs=(c < 10)?"0"+c.toString():c.toString();
	if (d == 0 && cs == 0)
	  s = false;
	return (s?"-":"")+d+"."+cs;
	}

function Round(a)
	{
	if (isNaN(parseFloat(a)))
		return "";
	var s=(a<0);
	if (s) a=-a;
	var d=Math.floor(a);
	//var c=Math.floor((a-d)*100+0.5);
	var c=Math.floor(getFraction(a)*100+0.5);
	if (c==100) {d++;c=0;}
	var cs=(c < 10)?"0"+c.toString():c.toString();
	if (d == 0 && cs == 0)
	  s = false;
	var idx = cs.indexOf("0");
	if (idx != -1)
		{
		var t = parseFloat(cs.substring(idx));
		if (t == 0)
			cs = cs.substring(0,idx)
		}
	if (cs.length > 0)
		cs = "."+cs;
	return (s?"-":"")+d+cs;
	}

function TwipsToPixels(value)
	{
	return Math.round(value/TWIP);
	};

function PixelsToTwips(vstr)
	{
	vstr = vstr.replace(/px/g,"");
	var value = parseInt(vstr);
	return Round(value*TWIP);
	};

function TwipsToInch(value)
	{
	return Round(value/INCH);
	};

function PixelsToInch(vstr)
	{
	vstr = vstr.replace(/px/g,"");
	var tw = PixelsToTwips(vstr);
	return TwipsToInch(tw);
	};


function InchToTwip(vstr1)
	{
	var vstr = ""+vstr1;
	return Math.round(parseFloat(vstr)*INCH);
	};

function InchToPixels(value)
	{
	var tw = InchToTwip(value);
	return TwipsToPixels(tw);
	};
function onlyalphabets(str)
	{
	var re = new RegExp("([A-Za-z]+)");
	return (re.exec(str)!=null && RegExp.$1==str);
	}

function onlydigits(str)
	{
	var re = new RegExp("([0-9.-.]+)");
	return (re.exec(str)!=null && RegExp.$1==str);
	}

function Validatefield(value, type)
	{
	if (type == "integer" || type == "float")
		{
		var numval;
		var val = value.replace(/,/g,"");
		if (type == "integer")
			numval = parseInt(val,10);
		else
			numval = parseFloat(val);
		if (isNaN(numval) || !onlydigits(value))
			return false;
		return true;
		}
	else if (type == "currency")
		{
		var val = value.replace(/,/g,"");
		numval = parseFloat(val);
		if (val=='' || isNaN(val) || Math.abs(numval)>1.0e+10)
			return false;
		else
			return true;
		}
	else if (type == "date")
		{
		var month;
		var day;
		var year;
		if (value.indexOf("/") == -1)
			{
			var l = value.length;
			month = parseInt(value.substr(0,2-l%2),10);
			day = parseInt(value.substr(2-l%2,2),10);
			year = parseInt(value.substr(4-l%2),10);
			}
		else
			{	
			var comps = value.split("/");
			month = parseInt(comps[0],10);
			day = parseInt(comps[1],10);
			year = parseInt(comps[2],10);
			}
		if (month >= 1 && month <= 12 && day >= 1 && day <=31 && ((year >= 0 && year < 100) || (year > 1900 && year <2100)))
			{
			if (year < 50)
				year += 2000;
			else if (year < 100)
				year += 1900;
			//value = getdatestring(new Date(year, month-1, day));
			return true;
			}
		else
			return false;
		}
	}

function CheckValidField(ele)
	{
	if (typeof(ele.cstype) != "undefined" && ele.value.length > 0 && !Validatefield(ele.value,ele.cstype))
		{
		if (ele.cstype == "integer")
			alert("Invalid numeric '"+ele.value+"' value.");
		else
			alert("Invalid '"+ele.value+"' value.");			
		ele.focus();
		ele.select();
		return false;
		}
	else
		return true;
	}

function ValidateForm(form)
	{
	var eleArray = form.elements;
	var i = 0;
	for(i = 0; i < eleArray.length; i++)
		{
		if (!CheckValidField(eleArray[i]))
			break;
		}
	return i==eleArray.length;
	}


/*
<div id=pageInfomessage></div>
<div id=pageInfo></div>

<script>
function onClickPage(n)
	{
	alert(pInfo.uid+"::"+n);
	}

function OnPageInfoGroup()
	{
	UpdatePagesInfo(pInfo);
	}

var pInfo = new PagesInfo("pg1",1,50,1000,-1,document.all.pageInfomessage,document.all.pageInfo,"Click Search to find SKUs...","onClickPage","OnPageInfoGroup");
UpdatePagesInfo(pInfo);

</script>

*/

function PagesInfo(uid,pageNo,pageSize,totalCount,sTime,messageDiv,pagesDiv,initialMessage,onchangepage,ongroupchange,onnextpage,onpreviouspage)
	{
	this.uid = uid;
	this.pageNo = parseInt(pageNo);
	this.pageSize = parseInt(pageSize);
	this.totalCount = parseInt(totalCount);		
	this.sTime = parseInt(sTime);
	this.messageDiv = messageDiv;
	this.pagesDiv = pagesDiv;
	this.initialMessage = initialMessage;
	this.onchangepage = onchangepage;
	this.ongroupchange = ongroupchange;
	this.onNextPage = onnextpage;
	this.onPreviousPage = onpreviouspage;
	}

function UpdatePagesInfo(pInfo)
	{
	if (!pInfo.pageSize) 
		pInfo.pageSize = 6;
	if (pInfo.messageDiv != null)
		{
		var	dtsr = "<H5>";
		if (pInfo.totalCount == -1)
			dtsr += pInfo.initialMessage;
		else
			{
			if (pInfo.sTime > 0)
				{
				var dt = new Date();
				dtsr += "Items found: "+pInfo.totalCount+".";
				var tt = ""+(dt.getTime()-pInfo.sTime)/1000;
				var ii = tt.indexOf(".");
				if (ii != -1 && ((dt.getTime()-pInfo.sTime)/1000) > 0)
					tt = tt.substring(0,ii);
				tt = parseInt(tt);
				if (tt > 60)
					{
					tt = Round(tt/60);
					tt += " mins. ";
					}
				else
					tt += " secs. ";
				dtsr += " Search Time:"+tt;
				}
			}
		if (pInfo.totalCount > 0)
			{
			var pp = pInfo.pageSize;
			if (pp > pInfo.totalCount-pInfo.pageNo*pInfo.pageSize)
				pp = pInfo.totalCount-pInfo.pageNo*pInfo.pageSize;
			dtsr += "Displaying from "+ (pInfo.pageNo*pInfo.pageSize+1)+ " to "+ (pInfo.pageNo*pInfo.pageSize+pp)+"...";
			}
		dtsr += "</H5>";
		pInfo.messageDiv.innerHTML = dtsr;
		}
	if (pInfo.pageSize < pInfo.totalCount)
		{
		var ndisplaypage = 25;
		var pagegroupindex = 0;
		if (typeof(eval("document.all.pageInfoGroupindex"+pInfo.uid)) != "undefined")
			pagegroupindex = eval("document.all.pageInfoGroupindex"+pInfo.uid).selectedIndex;
		else
			pagegroupindex = parseInt(pInfo.pageNo/ndisplaypage);
		var nPages = parseInt((pInfo.totalCount+pInfo.pageSize-1)/pInfo.pageSize);
		var pageComboStr = "<td>Pages</td><td><select name='pageInfoGroupindex"+pInfo.uid+"' onchange='javascript:"+pInfo.ongroupchange+"(this);'>";
		var spage1 = 0; epage1 = 0;
		for (var n = 0; n < nPages; n=n+ndisplaypage)
			{
			var spage = n+1;
			var epage = n+ndisplaypage;
			if (epage > nPages)
				epage = nPages;
			var selectedStr = "";
			if (n == pagegroupindex*ndisplaypage)
				{
				selectedStr = "selected ";
				spage1 = spage;
				epage1 = epage;
				}
			var dstr = spage+" To "+epage;
			if (spage == epage)
				dstr = spage;
			if (nPages > ndisplaypage)
				pageComboStr += "<option "+selectedStr+">"+dstr+"</option>";
			else
				pageComboStr = "";
			}
		if (pageComboStr.length > 0) 
			pageComboStr += "</select></td>";
		var pageStr = "<table class='textbullet'><tr>"+pageComboStr;
		pageStr +="<td>"+(pInfo.pageNo==0?"":("<a href='javascript:"+pInfo.onPreviousPage+"();'>"))+" &lt;Previous "+(pInfo.pageNo==0?"":"</a>")+"</td>";
		for(var nn = spage1; nn <= epage1; nn++)
			pageStr += "<td>"+(nn==pInfo.pageNo+1?"":"<a href='javascript:"+pInfo.onchangepage+"("+nn+");'>")+nn+(nn==pInfo.pageNo+1?"":"</a>")+"</td>";
		pageStr +="<td>"+(pInfo.pageNo==nPages-1?"":("<a href='javascript:"+pInfo.onNextPage+"();'>"))+" Next&gt; "+(pInfo.pageNo==nPages-1?"":"</a>")+"</td>";
		pageStr += "</tr></table>";
		pInfo.pagesDiv.innerHTML = pageStr;
		}
	else
		pInfo.pagesDiv.innerHTML = "";			
	}

function GetXmlValue(node,attr,defvalue)
	{
	if (node.getAttribute(attr) != null)
		return node.getAttribute(attr);
	else if (typeof(defvalue) == "undefined")
		return"";
	else
		return defvalue;
	}


function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.0
  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 && document.getElementById) x=document.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
	}
