var layers_display = new Array();
var popWin;

function openPopWindow(src, options, name)
{
	var x = arguments[3];
	var y = arguments[4];

    if (!x && !options.match(/left/i) && (matches = options.match(/width\=(\d+)/i)))
        x = (screen.width - matches[1]) / 2;

    if (!y && !options.match(/top/i) && (matches = options.match(/height\=(\d+)/i)))
        y = (screen.height - matches[1]) / 2;

	if (x) options+= ",left="+x+",screenX="+x;
	if (y) options+= ",top="+y+",screenY="+y;

	if (popWin) popWin.close();
	popWin=window.open(src, name, options);
	popWin.focus();
}

function invertLayerDisplay()
{
    var obj, i;
    for (i=0; i<arguments.length; i++) {
    	obj = MM_findObj(arguments[i]);
    	if (obj) Element.toggle(obj);
    	/*
    	{
    		//obj.style.display = obj.style.display == "" ? "none" : "";
    		if (obj.style.display == "") {
    			new Effect.Fade(obj);
    		} else {
    			new Effect.Appear(obj);
    		}
    	}
    	*/
	}
}

function changeLayerDisplay(layer, display)
{
    var obj;
	if ((obj=MM_findObj(layer))!=null)	obj.style.display=display;
}

function checkActive(elm)
{
	var img_name = arguments[1] ? arguments[1] : 'icon_active';
	var status = elm.checked ? "Y" : "N";
	MM_swapImage(img_name,'','img/active_'+status+'.gif',1);
}

function setChecked(f, name, checked)
{
	for (var i=0; i<f.elements.length; i++)
		if (f.elements[i].name == name)
			f.elements[i].checked = checked;
}

function countChecked(f, name)
{
	var n=0;
	
	for (var i=0; i<f.elements.length; i++)
		if (f.elements[i].name == name && f.elements[i].checked) 
			n++;
			
	return n;	
}

function MM_findObj(n, d) { //v4.01
  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;
}

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 trim(s)
{
  while ((s.substring(0,1) == ' ') || (s.substring(0,1) == '\n') || (s.substring(0,1) == '\r'))
    s = s.substring(1,s.length);
  while ((s.substring(s.length-1,s.length) == ' ') || (s.substring(s.length-1,s.length) == '\n') || (s.substring(s.length-1,s.length) == '\r'))
    s = s.substring(0,s.length-1);
  return s;
}

function emailCheck (emailStr) {
	var emailPat=/^(.+)@(.+)$/
	var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"
	var validChars="\[^\\s" + specialChars + "\]"
	var quotedUser="(\"[^\"]*\")"
	var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
	var atom=validChars + '+'
	var word="(" + atom + "|" + quotedUser + ")"
	var userPat=new RegExp("^" + word + "(\\." + word + ")*$")
	var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$")


	var matchArray=emailStr.match(emailPat)
	if (matchArray==null) {
		return false
	}
	var user=matchArray[1]
	var domain=matchArray[2]

	if (user.match(userPat)==null) {
		return false
	}

	var IPArray=domain.match(ipDomainPat)
	if (IPArray!=null) {
		  for (var i=1;i<=4;i++) {
			if (IPArray[i]>255) {
				return false
			}
		}
		return true
	}

	var domainArray=domain.match(domainPat)
	if (domainArray==null) {
		return false
	}

	var atomPat=new RegExp(atom,"g")
	var domArr=domain.match(atomPat)
	var len=domArr.length
	if (domArr[domArr.length-1].length<2 ||
		domArr[domArr.length-1].length>4) {
	   return false
	}

	if (len<2) {
	   return false
	}

	return true;
} 

function format_number(p,d) 
{
  var r;
  var t_separator = arguments[2] ? arguments[2] : '.';
  
  if(p<0){p=-p;r=format_number2(p,d);r="-"+r;}
  else   {r=format_number2(p,d);}
  
  return r.replace('.', t_separator);
}

function format_number2(pnumber,decimals) 
{
  var strNumber = new String(pnumber);
  var arrParts = strNumber.split('.');
  var intWholePart = parseInt(arrParts[0],10);
  var strResult = '';
  if (isNaN(intWholePart))
    intWholePart = '0';
  if(arrParts.length > 1)
  {
    var decDecimalPart = new String(arrParts[1]);
    var i = 0;
    var intZeroCount = 0;
     while ( i < String(arrParts[1]).length )
     {
       if( parseInt(String(arrParts[1]).charAt(i),10) == 0 )
       {
         intZeroCount += 1;
         i += 1;
       }
       else
         break;
    }
    decDecimalPart = parseInt(decDecimalPart,10)/Math.pow(10,parseInt(decDecimalPart.length-decimals-1)); 
    Math.round(decDecimalPart); 
    decDecimalPart = parseInt(decDecimalPart)/10; 
    decDecimalPart = Math.round(decDecimalPart); 

    //If the number was rounded up from 9 to 10, and it was for 1 'decimal' 
    //then we need to add 1 to the 'intWholePart' and set the decDecimalPart to 0. 

    if(decDecimalPart==Math.pow(10, parseInt(decimals)))
    { 
      intWholePart+=1; 
      decDecimalPart="0"; 
    } 
    var stringOfZeros = new String('');
    i=0;
    if( decDecimalPart > 0 )
    {
      while( i < intZeroCount)
      {
        stringOfZeros += '0';
        i += 1;
      }
    }
    decDecimalPart = String(intWholePart) + "." + stringOfZeros + String(decDecimalPart); 
    var dot = decDecimalPart.indexOf('.');
    if(dot == -1)
    {
      decDecimalPart += '.'; 
      dot = decDecimalPart.indexOf('.'); 
    } 
    var l=parseInt(dot)+parseInt(decimals); 
    while(decDecimalPart.length <= l) 
    {
      decDecimalPart += '0'; 
    }
    strResult = decDecimalPart;
  }
  else
  {
    var dot; 
    var decDecimalPart = new String(intWholePart); 

    decDecimalPart += '.'; 
    dot = decDecimalPart.indexOf('.'); 
    var l=parseInt(dot)+parseInt(decimals); 
    while(decDecimalPart.length <= l) 
    {
      decDecimalPart += '0'; 
    }
    strResult = decDecimalPart;
  }
  return strResult;
}

function format_price(price)
{
	var d_separator = arguments[1] ? arguments[1] : '.';
	return format_number(price, 2, d_separator);
}

function simple_price(price)
{
	return simple_float(price);
}

function simple_float(n)
{
	n = new String(n);
	n = parseFloat(Math.abs(n.replace(',', '.')));
	return isNaN(n) ? 0 : n;
}

function format_float(n)
{
    n = new String(n);
	return n.replace('.', ',');
}
