var TWIP=10;
var INCH=1440;
 function getUniqueID()
 {
	return Math.floor(Math.random() * 1000000) * ((new Date()).getTime() % 1000);				
 }

function getFloatValue(vstr)
	{
	var value = ""+vstr;
	if (value.length > 0)
		{
		var fvalue = parseFloat(value);
		if (isNaN(fvalue))
			return 0;
		return fvalue;		
		}
	return 0;
	}

function FitImageToRect(ow, oh, destWidth, destHeight, pref2Width, pref2Height)
	{
	var rvalues = new Array(2);
	if (ow == 0 || oh == 0)
	{
	    rvalues[0] = rvalues[1] = 0;
	    return rvalues;	    
	}
	var factor = getFloatValue(ow)/getFloatValue(oh);
	var wFactor = getFloatValue(destWidth)/getFloatValue(ow);
	var hFactor = getFloatValue(destHeight)/getFloatValue(oh);
	if(pref2Width && pref2Height)
		{
		if(wFactor < hFactor)
			pref2Width = false;
		else
			pref2Height = false;
		}
	//if( (wFactor<hFactor && !pref2Height) || pref2Width)
	if(wFactor<hFactor)
		{
		rvalues[0] = destWidth;
		rvalues[1] = Math.floor(destWidth/factor);
		}
	else
		{
		rvalues[0] = Math.floor(destHeight*factor);
		rvalues[1] = destHeight;
		}
	return rvalues;
	}

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);
	}
function ShowDate(img,pstr)
	{
	var ele = document.getElementById(img.id+pstr);
	var startDate = ele.value;
	if (startDate.length == 0)
		{
		var d = new Date();
		startDate = (d.getMonth()+1)+"/"+d.getDate()+"/"+d.getFullYear();
		}
	var dstr = window.showModalDialog("DialogFrm.aspx?tgtPage=date.aspx&title=Date&sdate="+startDate,window,"status:no;center:yes;resizable:yes;scrollbars=yes;dialogWidth:250px;dialogHeight:250px;");
	if (typeof(dstr) != "undefined" && dstr.length > 0)
		{
		ele.value = dstr;
		//ele.focus();
		//ele.select();
		}
	}
	
function checkMaxLength(obj,len) 
    {
	var currentLength = obj.value.length;
	if (currentLength > len)
	    {
	    obj.value = obj.value.substr(0,len);	    
	    }		
    }
  function jsRedirect(url)
  {
    window.location=url; 
    return false;
  }
  
function GetRadWindow()
    {
	    var oWindow = null;
	    if (window.radWindow) oWindow = window.radWindow;
	    else if (window.frameElement.radWindow) oWindow = window.frameElement.radWindow;
	    return oWindow;
    }        
function CloseRadWindow()
{
	GetRadWindow().Close();
}
function SaveStatsInPortfolio(stats_id)
{
    var url = "saveit.aspx?stats_id="+stats_id;
	var oWindow = window.radopen("", "SaveItWindow");    
	oWindow.SetTitle("Save It");
    oWindow.Center();   
    oWindow.SetUrl(url);
}
function InsertStats(stats_id,ow,oh,replace_imgid)
{
		var oWindow = GetRadWindow();
        var arg = new Object();                    
        //Using an Object as a argument is convenient as it allows setting many properties.
        //arg.id = 'IMG2';
        arg.replace_imgid = (!replace_imgid||replace_imgid.length==0)?"NEW_IMG_STAT":replace_imgid;
        arg.stats_id = stats_id;
        arg.ow = ow;		
        arg.oh = oh;
        arg.width = 300;		
        arg.height = 300;		                		
        arg.format = '.pdf';		
        oWindow.Argument = arg;
		oWindow.Close();    
}
 function Open_eDesign_Help()
    {
    MM_openBrWindow('http://www.siteprint.com/Level3_help/index.htm','Help','scrollbars=yes,resizable=yes,width=500,height=300');
    }
    
function InsertLogo(logo_id,ow,oh,format,replace_imgid)
    {
	var oWindow = GetRadWindow();
    var arg = new Object();                    
    arg.replace_imgid = (!replace_imgid||replace_imgid.length==0)?"NEW_IMG_LOGO":replace_imgid;
    arg.logo_id = logo_id;
    arg.ow = ow;		
    arg.oh = oh;
    arg.width = 125;		
    arg.height = 125;		                		
    arg.format = format;		
    oWindow.Argument = arg;
	oWindow.Close();    
    }
    
function InsertClipart(clipart_id,ow,oh,format,replace_imgid)
    {
	var oWindow = GetRadWindow();
    var arg = new Object();                    
    arg.replace_imgid = (!replace_imgid||replace_imgid.length==0)?"NEW_IMG_CLIPART":replace_imgid;
    arg.clipart_id = clipart_id;
    arg.ow = ow;		
    arg.oh = oh;
    arg.width = 125;		
    arg.height = 125;		                		
    arg.format = format;		
    oWindow.Argument = arg;
	oWindow.Close();    
    }
    
function InsertImage(img_id,ow,oh,format,itype)
    {
	var oWindow = GetRadWindow();
    var arg = new Object();                    
    arg.img_id = img_id;
    arg.ow = ow;		
    arg.oh = oh;
    arg.width = 125;		
    arg.height = 125;		                		
    arg.format = format;		
    arg.itype = itype;
    oWindow.Argument = arg;
	oWindow.Close();    
    }
   
function OpenRadWindow(url,title,w,h)
	{
	var oWindow = window.radopen("", "DialogWindow");    
	//oWindow.SetTitle(title);
    oWindow.SetSize(w,h);	    
	oWindow.SetUrl(url);
    oWindow.Center();	
	}
    