﻿// common javascript functions

function ExpandOrCollapse(a){
  var e=document.getElementById(a);
  if(!e)return true;
  if(e.style.display=="none"){
    e.style.display="block"
  } else {
    e.style.display="none"
  }
  return true; 
}

function ToggleSwap(c) {
	var myElement = document.getElementById(c); 
	// after click
	if ( myElement.className == 'toggle_closed' ) {
  		myElement.className = 'toggle_open';
	} else {
  		myElement.className = 'toggle_closed';
	}
}

function TogglerMessage(h, s, e, o) {
    var element = document.getElementById(e);
    var oelement = document.getElementById(o);
    
    if (oelement.style.display == "block") {
        element.innerHTML = h;
    }
    else {
        element.innerHTML = s;
    }
    
    //alert(s);
}

function windowOpener(windowHeight, windowWidth, windowName, windowUri)
{
    var centerWidth = (window.screen.width - windowWidth) / 2;
    var centerHeight = (window.screen.height - windowHeight) / 2;

    var newWindow = window.open(windowUri, windowName, 'resizable=0,scrollbars=1,width=' + windowWidth + 
        ',height=' + windowHeight + 
        ',left=' + centerWidth + 
        ',top=' + centerHeight);

    newWindow.focus();
    return newWindow.name;
}

function getParentElement(it) {
    content = window.opener.document.getElementById(it);
    //alert(content.innerHTML);
    document.write(content.innerHTML);
}

function HideElement(id)
{
    document.getElementById(id).style.display="none";
}

function ShowElement(id)
{
    document.getElementById(id).style.display="";
}

function formatPostalCode(objPostalCode,country)
{
    var objVal=objPostalCode.value;
    var objLen=objVal.length;
    if(country=='USA')
    {
        if(objLen==9)
        {
            objPostalCode.value=objVal.substring(0,5) + '-' + objVal.substring(5);
        }
    }
    else
    {
        if(objLen==6)
        {
            objPostalCode.value=objVal.substring(0,3).toUpperCase() + ' ' + objVal.substring(3).toUpperCase();
        }
    }
}

function setCookie(c_name,value,expiredays)
{
    var exdate=new Date();
    exdate.setDate(exdate.getDate()+expiredays);
    document.cookie=c_name+ "=" +escape(value)+
    ((expiredays==null) ? "" : ";expires="+exdate.toGMTString());
}

function getCookie(c_name)
{
if (document.cookie.length>0)
  {
  c_start=document.cookie.indexOf(c_name + "=");
  if (c_start!=-1)
    { 
    c_start=c_start + c_name.length+1; 
    c_end=document.cookie.indexOf(";",c_start);
    if (c_end==-1) c_end=document.cookie.length;
    return unescape(document.cookie.substring(c_start,c_end));
    } 
  }
return "";
}

function extractNumberWithDecimal(obj, decimalPlaces, allowNegative)
{
	var temp = obj.value;

	if (decimalPlaces == "") {decimalPlaces = 0};
	
	// avoid changing things if already formatted correctly
	var reg0Str = '[0-9]*';
	if (decimalPlaces > 0) {
		reg0Str += '\\.?[0-9]{0,' + decimalPlaces + '}';
	} else if (decimalPlaces < 0) {
		reg0Str += '\\.?[0-9]*';
	}
	reg0Str = allowNegative ? '^-?' + reg0Str : '^' + reg0Str;
	reg0Str = reg0Str + '$';
	var reg0 = new RegExp(reg0Str);
//	if (reg0.test(temp)) {return true};

	// first replace all non numbers
	var reg1Str = '[^0-9' + (decimalPlaces != 0 ? '.' : '') + (allowNegative ? '-' : '') + ']';
	var reg1 = new RegExp(reg1Str, 'g');
	temp = temp.replace(reg1, '');

	if (allowNegative) {
		// replace extra negative
		var hasNegative = temp.length > 0 && temp.charAt(0) == '-';
		var reg2 = /-/g;
		temp = temp.replace(reg2, '');
		if (hasNegative) {temp = '-' + temp};
	}
	
	if (decimalPlaces != 0) {
		var reg3 = /\./g;
		var reg3Array = reg3.exec(temp + (decimalPlaces > 0 ? '.' : ''));
		if (reg3Array != null) {
			// keep only first occurrence of .
			//  and the number of places specified by decimalPlaces or the entire string if decimalPlaces < 0
			var reg3Right = temp.substring(reg3Array.index + reg3Array[0].length);
			reg3Right = reg3Right.replace(reg3, '');
			reg3Right = reg3Right + (decimalPlaces > 0 ? '00000000' : '');
			reg3Right = decimalPlaces > 0 ? reg3Right.substring(0, decimalPlaces) : reg3Right;
			temp = temp.substring(0,reg3Array.index) + '.' + reg3Right;
		}
	}
	
	obj.value = temp;
}


