// JavaScript Document

//////////////////////////////////////////////////////////////////////////////////////////
//SYSTEM FUNCTIONS
//////////////////////////////////////////////////////////////////////////////////////////
function $C(strClass,strTag,objContElm)
{
	strTag=strTag||"*";
	objContElm=objContElm||d;
	var objColl=objContElm.getElementsByTagName(strTag);
	if (!objColl.length&&strTag=="*"&&objContElm.all) objColl=objContElm.all;
	var arr=new Array();
	var delim=strClass.indexOf('|')!=-1?'|':' ';
	var arrClass=strClass.split(delim);
	for (var i=0,j=objColl.length;i<j;i++)
	{
		var arrObjClass=objColl[i].className.split(' ');
		if (delim==' ' && arrClass.length>arrObjClass.length) continue;
		var c=0;
		comparisonLoop:
		for (var k=0,l=arrObjClass.length;k<l;k++)
		{
			for (var m=0,n=arrClass.length;m<n;m++)
			{
				if (arrClass[m]==arrObjClass[k]) c++;
				if ((delim=='|'&&c==1) || (delim==' '&&c==arrClass.length))
				{
					arr.push(objColl[i]);
					break comparisonLoop
				}
			}
		}
	}
	return arr
};

function ParseDataStr(str,bForceToStr)
{
	if (str==null) return {};
	var buf = str.split(",");
	var arr = {};
	
	for (var i=0,k,v;i<buf.length;i++)
	{
		if (/^([a-z]\w*)(?:=(.*))?$/.test(buf[i]))
		{
			k = RegExp.$1;
			v = RegExp.$2;
			v = !/\S/.test(v)?"true":/^\d+$/.test(v)?v:("'"+v+"'");
			eval("arr."+k.toLowerCase()+"="+v)
		}
		
		if (bForceToStr) for (x in arr) arr[x]=arr[x].toString();
	}
	
	return arr
};

function display_form_error(FORM,FORMITEM,ELEMENT,TEXT) {
	//clear first
	clear_form_error(FORM,ELEMENT);
	
	var oForm				= document.forms[FORM];
	ELEMENT.className		= 'sub_label_error';
	ELEMENT.innerHTML		= TEXT;
	FORMITEM.className		= FORMITEM.className + ' error';
	FORMITEM.focus();
}

function clear_form_error(FORM,ID) {
	var i;
	var oForm	= document.forms[FORM];
	
	//clear all input tags where class=error
	var x = oForm.getElementsByTagName('input');
	for (i=0;i<x.length;i++) { 
		if (x[i].className.indexOf('error')!=-1) { 
			x[i].className =''; } 
	}
	
	//clear all select tags where class=error
	var x = oForm.getElementsByTagName('select');
	for (i=0;i<x.length;i++) { 
		if (x[i].className.indexOf('error')!=-1) { 
			x[i].className =''; } 
	}
	
	//clear error messages
	if (document.getElementById(ID)) {
		document.getElementById(ID).innerHTML = '&nbsp;';
		document.getElementById(ID).style.display = 'none';
	}
}

function document_view(FORM,PATH,DOC_NAME,DOC_MIME,TARGET,WINDOW)	{
	if (WINDOW == "POPUP") { displayWindow('', '680', '500', 'YES', 'YES'); }
	var oForm = document.forms[FORM];
	oForm.PATH.value 		= PATH;
	oForm.A_DOC_NAME.value 	= DOC_NAME;
	oForm.A_DOC_MIME.value 	= DOC_MIME;
	oForm.action 			= TARGET;
	oForm.submit();
}

function form_view(FORM,FORM_TYPE,FORM_ID,TARGET,WINDOW)	{
	if (WINDOW == "POPUP") { displayWindow('', '680', '500', 'YES', 'YES'); }
	var oForm = document.forms[FORM];
	oForm.FORM_TYPE.value 	= FORM_TYPE;
	oForm.FORM_ID.value 	= FORM_ID;
	oForm.action 			= TARGET;
	oForm.submit();
}

function signature(FORM,ELEMENT,PLACEMENT,NAME) {
	var oForm = document.forms[FORM].elements[ELEMENT];
	
	if (oForm.checked == true) {
		document.getElementById(PLACEMENT).innerHTML = NAME;
	} else {
		document.getElementById(PLACEMENT).innerHTML = '&nbsp;';
	}
}

function show_hide(ID,ACT) {
	
	if 		(ACT == 'show') {
		document.getElementById(ID).style.display = ''; }
	else if (ACT == 'hide') {
		document.getElementById(ID).style.display = 'none'; }	
}		
//////////////////////////////////////////////////////////////////////////////////////////
//COMMON FUNCTIONS
//////////////////////////////////////////////////////////////////////////////////////////

function MM_jumpMenu(targ,selObj,restore){ //v3.0
  eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
  if (restore) selObj.selectedIndex=0;
}

function selectAll(myform,disable) {
 d = document.forms[myform];
 for (i = 0; i < d.elements.length; i++) {
   if ((d.elements[i].type == "checkbox") && (d.elements[i].className != "checkbox_skip")) {
     d.elements[i].checked = true;
	 if (disable) { d.elements[i].disabled = true; }
   }
 }
}

function deselectAll(myform,disable) {
 d = document.forms[myform];
 for (i = 0; i < d.elements.length; i++) {
   if ((d.elements[i].type == "checkbox") && (d.elements[i].className != "checkbox_skip")) {
     d.elements[i].checked = false;
	 if (!disable) { d.elements[i].disabled = false; }
   }
 }
}

function stripSpaces(x) {
    while (x.substring(0,1) == ' ') x = x.substring(1);
    while (x.substring(x.length-1,x.length) == ' ') x = x.substring(0,x.length-1);
    return x;
}

function isEmpty(str) {
	var ie = document.all;
	str = stripSpaces(str);
	
	if (ie) {
		if(str=="") return true;
		var re = /(\S+)/gi;
		var t = re.test(str); 
		return !t;
	} else {
		if(str=="")	 return true;
		return false;
	}
}

function isEmail(str) {
	var tmp = str + "";
	
	if(tmp!="") {		
		var exclude=/[^@\-\.\[A-Za-z0-9]]|^[_@\.\-]|[\._\-]{2}|[@\.]{2}|(@)[^@]*\1/;				
		var check=/@[\w\-]+\./;
		var checkend=/\.[a-zA-Z]{2,3}$/;

		if(((tmp.search(exclude) != -1)||(tmp.search(check)) == -1)||(tmp.search(checkend) == -1)) return false;	
	}
	return true;	
}

function isDate(year,month,day) {
	var date = new Date(year,month-1,day);		
	var y = date.getFullYear();
	var m = date.getMonth();
	var d = date.getDate();
		
	m++;	
	if(month.length==2 && month.substr(0,1)=="0")
		m = "0" + m;

	if(day.length==2 && day.substr(0,1)=="0")
		d = "0" + d;

	if(year+" "+month+" "+day != y +" "+ m +" "+ d)
		return false;
	else	
		return true;
}

function isClean(str,type) {
	if 		(type == 1) { var iChars = "!@#$%^&*()+=-[]\\\';,./{}|\":<>? "; }
	else if (type == 2) { var iChars = "!@#$%^&*()+=-[]\\\';,./{}|\":<>?";  }
	else if (type == 3) { var iChars = "!@#$%^&*()+=[]\\\';,./{}|\":<>?";  }
	
	for (var i = 0; i < str.length; i++) {
		if (iChars.indexOf(str.charAt(i)) != -1) { return false; }
	}
	return true;
}

function displayWindow(url, width, height, scrollbar, menubar) {
        var Win = window.open(url,"POPUP",'width=' + width + ',height=' + height + ',left=10, top=10, resizable=yes, scrollbars=' + scrollbar + ',menubar=' + menubar + ', alwaysraised' );
		Win.focus();
}

function isNumeric(str,type) {
	if 		(type == 1) { var iChars = "0123456789"; }
	else if (type == 2) { var iChars = "0123456789-";  }
	else if (type == 3) { var iChars = "0123456789.";  }
  
	var IsNumber=true;
	var Char;
	
	for (i = 0; i < str.length && IsNumber == true; i++) { 
		Char = str.charAt(i); 
		if (iChars.indexOf(Char) == -1) {
        	IsNumber = false;
		}
	}
	return IsNumber;
}

function decimal_format(total,type) {
      if 		(type == 0) { var decimals = 0; }
	  else if 	(type == 1) { var decimals = 1; }
	  else if 	(type == 2) { var decimals = 2; }		
	  
      var suffix = ""
	  
      for ( var i=0; i<decimals; i++ )
          suffix += "0";

      var num = "" + parseFloat(total);
      if ( num == "NaN" )
         return num = "0." + suffix;

      if ( num.indexOf(".") == -1 )
         return num += (decimals>0) ? "."+suffix : "";

      return (num+suffix).substring(0,num.indexOf(".")+decimals+1);
}
