function trim(str, chars) {
    return ltrim(rtrim(str, chars), chars);
}

function ltrim(str, chars) {
    chars = chars || "\\s";
    return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
}

function rtrim(str, chars) {
    chars = chars || "\\s";
    return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
}

function Chg_Status(vi_str, vi_flag) {
	document.getElementById('mstatus').innerHTML = '<font style="color:black;">'+vi_str+'</font>';
}

function openpopup(popurl){
	var winpops=window.open(popurl,"popup","width=450,height=300")
}

function Highlight(thisform, vi_cnt, vi_obj) {
	for(i=0,j=0; i<thisform.elements.length; i++) {
		if (thisform.elements[i].name == vi_obj) {
			if (j == vi_cnt) {
				thisform.elements[i].style.color = "blue";
				thisform.elements[i].style.fontWeight = "bold";
			}else {
				thisform.elements[i].style.color = "black";
				thisform.elements[i].style.fontWeight = "";
			}
			j++;
		}
	}
}

function Refresh() {
	window.location.reload(true);
}

v_toggle = 0;
function Toggle() {
	thisform = document.form2;
	for(i=0; i<thisform.elements.length; i++) {
		if (thisform.elements[i].name == "select[]") {
			if (v_toggle == 0) {
				thisform.elements[i].checked = true;
			}else {
				if (thisform.elements[i].checked) {
					thisform.elements[i].checked = false;
				}else {
					thisform.elements[i].checked = true;
				}
			}
		}
	}
	v_toggle++;
}
	
function commify(Num) {
	var newNum = "";
	var newNum2 = "";
	var count = 0;

	//check for decimal number
	if (Num.indexOf('.') != -1) { //number ends with a decimal point
		if (Num.indexOf('.') == Num.length-1) {
			Num += "00";
		}
		if (Num.indexOf('.') == Num.length-2) { //number ends with a single digit
			Num += "0";
		}

		var a = Num.split("."); 
		Num = a[0]; //the part we will commify
		var end = a[1] //the decimal place we will ignore and add back later
	}else {
		var end = "00";
	} 

	//this loop actually adds the commas 
	for (var k = Num.length-1; k >= 0; k--) {
		var oneChar = Num.charAt(k);
		if (count == 3) {
			newNum += ",";
			newNum += oneChar;
			count = 1;
			continue;
		}else {
			newNum += oneChar;
			count ++;
		}
	} //but now the string is reversed!

	//re-reverse the string
	for (var k = newNum.length-1; k >= 0; k--) {
		var oneChar = newNum.charAt(k);
		newNum2 += oneChar;
	}

	// add dollar sign and decimal ending from above
	newNum2 = "$" + newNum2 + "." + end;
	return newNum2;
}

function Viewing(vi_view, vi_id, vi_size) {
	v_array = new Array;
	v_array[0] = "mview";
	v_array[1] = "medit";
	v_array[2] = "mmanage";
	v_array[3] = "mdata";
	v_array[4] = "msetup";
	v_array[5] = "mprofile";
	v_array[6] = "mupgrade";
	v_array[7] = "mrenew";
	v_array[8] = "mbrief";
	v_array[9] = "msignup";
	v_array[10] = "msales";
	v_array[11] = "mtrace";

	for(i=0;i<vi_size;i++) {
		for(j=0;j<v_array.length;j++) {
			v_obj = document.getElementById(v_array[j]+i);
			v_obj2 = document.getElementById(v_array[j]+"_2");
			if (v_obj || v_obj2) {
				if (v_array[j].indexOf("mview") != -1) {
					if (v_obj) v_obj.innerHTML = "View";
					if (v_obj2) v_obj2.innerHTML = "View";
				}else if (v_array[j].indexOf("medit") != -1) {
					if (v_obj) v_obj.innerHTML = "Edit";
					if (v_obj2) v_obj2.innerHTML = "Edit";
				}else if (v_array[j].indexOf("mmanage") != -1) {
					if (v_obj) v_obj.innerHTML = "Menege";
					if (v_obj2) v_obj2.innerHTML = "Menege";
				}else if (v_array[j].indexOf("mdata") != -1) {
					if (v_obj) v_obj.innerHTML = "Data";
					if (v_obj2) v_obj2.innerHTML = "Data";
				}else if (v_array[j].indexOf("msetup") != -1) {
					if (v_obj) v_obj.innerHTML = "Setup";
					if (v_obj2) v_obj2.innerHTML = "Setup";
				}else if (v_array[j].indexOf("mprofile") != -1) {
					if (v_obj) v_obj.innerHTML = "Profile";
					if (v_obj2) v_obj2.innerHTML = "Profile";
				}else if (v_array[j].indexOf("mupgrade") != -1) {
					if (v_obj) v_obj.innerHTML = "Upgrade";
					if (v_obj2) v_obj2.innerHTML = "Upgrade";
				}else if (v_array[j].indexOf("mrenew") != -1) {
					if (v_obj) v_obj.innerHTML = "Renew";
					if (v_obj2) v_obj2.innerHTML = "Renew";
				}else if (v_array[j].indexOf("mbrief") != -1) {
					if (v_obj) v_obj.innerHTML = "Brief";
					if (v_obj2) v_obj2.innerHTML = "Brief";
				}else if (v_array[j].indexOf("msignup") != -1) {
					if (v_obj) v_obj.innerHTML = "Signup";
					if (v_obj2) v_obj2.innerHTML = "Signup";
				}else if (v_array[j].indexOf("msales") != -1) {
					if (v_obj) v_obj.innerHTML = "Sales";
					if (v_obj2) v_obj2.innerHTML = "Sales";
				}else if (v_array[j].indexOf("mtrace") != -1) {
					if (v_obj) v_obj.innerHTML = "Trace";
					if (v_obj2) v_obj2.innerHTML = "Trace";
				}
			}
		}
	}

	v_obj = document.getElementById(vi_view+vi_id);
	if (v_obj) {
		v_obj.innerHTML = "<font style='font-size:9px;color:blue;'><b>"+v_obj.innerHTML+"</b></font>";
	}
}

function Get_Cookie( name ) {
	var start = document.cookie.indexOf( name + "=" );
	var len = start + name.length + 1;
	if ( ( !start ) && ( name != document.cookie.substring( 0, name.length ) ) ) {
		return null;
	}
	if ( start == -1 ) return null;
	var end = document.cookie.indexOf( ";", len );
	if ( end == -1 ) end = document.cookie.length;
	return unescape( document.cookie.substring( len, end ) );
}

function SetCookie(cookieName,cookieValue,nDays) {
	var today = new Date();
	var expire = new Date();
	if (nDays==null || nDays==0) nDays=1;
	expire.setTime(today.getTime() + 3600000*24*nDays);
	document.cookie = cookieName+"="+escape(cookieValue)+";expires="+expire.toGMTString();
}

function Ajax(url) {
	var req = false;
	// For Safari, Firefox, and other non-MS browsers
	  
	if (window.XMLHttpRequest) {
		try {
			req = new XMLHttpRequest();
		} catch (e) {
			req = false;
		}
	}else if (window.ActiveXObject) {
	// For Internet Explorer on Windows
		try {
			req = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				req = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {
				req = false;
			}
		}
	}

	if (req) {
		// Synchronous request, wait till we have it all
		req.open('GET', url, false);
		req.send(null);
		v_return = req.responseText;
		return v_return;
	}

	return null;
}

function toUpper(vi_str) {
    var pattern = /(\w)(\w*)/; // a letter, and then one, none or more letters 

    var a = vi_str.split(/\s+/g); // split the sentence into an array of words

    for (i = 0 ; i < a.length ; i ++ ) {
        var parts = a[i].match(pattern); // just a temp variable to store the fragments in.

        var firstLetter = parts[1].toUpperCase();
        var restOfWord = parts[2].toLowerCase();

        a[i] = firstLetter + restOfWord; // re-assign it back to the array and move on
    }
    
    return(a.join(' ')); // join it back together
}
function Build_Window(vi_title, vi_title2, vi_left, vi_top, vi_width, vi_height, vi_refresh, vi_min, vi_max, vi_close, vi_resize, vi_status) {
	document.write('<div id="frame_'+vi_title+'"; style="position:absolute;left:'+vi_left+'px;top:'+vi_top+'px;width:'+vi_width+'px;height:'+vi_height+'px;border:2px outset #eeeeee;background:#D6D6D6;visibility:hidden;"></div>');
	document.write('<div id="titlebar_'+vi_title+'" style="position:absolute;border:none;overflow:hidden;visibility:hidden;">');
//	document.write('<div onDblclick="MaxWindow(dd.elements.frame_file, dd.elements.titlebar_file, dd.elements.clientarea_file, dd.elements.statusbar_file, dd.elements.resizehandle_file, dd.elements.minbutton_file, dd.elements.maxbutton_file, dd.elements.closebutton_file, dd.elements.refreshbutton_file);" id="titlebar_'+vi_title+'" style="position:absolute;border:none;overflow:hidden;visibility:hidden;">');
	document.write('<span style="position:absolute;left:0px;top:0px;padding:0px;">');
	document.write('<table width="100%" border="0" cellspacing="0" cellpadding="0">');
	document.write('<tr>');
	document.write('<td bgcolor="#000000" width="1"><img src="images/invisible.gif" width="1" height="1"></td>');
	document.write('<td height="25" class="m11" background="images/line.jpg" align="left" valign="middle">&nbsp;&nbsp;<b>'+vi_title2+'</b></td>');
	document.write('<td bgcolor="#000000" width="1"><img src="images/invisible.gif" width="1" height="1"></td>');
	document.write('</tr>');
	document.write('</table>');
	document.write('</span></div>');
	document.write('<div id="clientarea_'+vi_title+'" style="position:absolute;border:1px inset #cccccc;background:white;overflow:auto;visibility:hidden;">');
	document.write('<iframe name="win_'+vi_title+'" id="win_'+vi_title+'" frameborder="0" scrolling="auto" width="100%" height="100%" src="'+vi_title+'.php"></iframe>');
	document.write('</div>');
	document.write('<div align="left" class="m10" id="statusbar_'+vi_title+'" style="width:'+(vi_width-20)+'px;position:absolute;border:none;overflow:hidden;visibility:hidden;">');
	document.write(vi_status);
	document.write('</div>');
	document.write('<img width="16" height="14" alt="'+vi_refresh+'" title="'+vi_refresh+'" name="refreshbutton_'+vi_title+'" src="images/refresh_up.gif" alt="" style="visibility:hidden;" target="win_'+vi_title+'">');
	document.write('<img width="16" height="14" alt="'+vi_close+'" title="'+vi_close+'" name="closebutton_'+vi_title+'" src="images/close_up.gif" alt="" style="visibility:hidden;">');
	document.write('<img width="16" height="14" alt="'+vi_max+'" title="'+vi_max+'" name="maxbutton_'+vi_title+'" src="images/max_up.gif" alt="" style="visibility:hidden;">');
	document.write('<img width="16" height="14" alt="'+vi_min+'" title="'+vi_min+'" name="minbutton_'+vi_title+'" src="images/min_up.gif" alt="" style="visibility:hidden;">');
	document.write('<img width="16" height="14" alt="'+vi_resize+'" title="'+vi_resize+'" name="resizehandle_'+vi_title+'" src="images/resize_up.gif" alt="" style="visibility:hidden;">');
}
	
function Remote(url) {
	var req = false;
  
	if (window.XMLHttpRequest) {
		try {
			req = new XMLHttpRequest();
		} catch (e) {
			req = false;
		}
	}else if (window.ActiveXObject) {
		try {
			req = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				req = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {
				req = false;
			}
		}
    }
	if (req) {
	    req.open('GET', url, false);
		req.send(null);
		return req.responseText;
	}else {
		return;
	}
}

function Cursor(thisobj) {
	var evt = window.event;

	if (evt.keyCode == 38) { // up
		for(i=0; i<thisobj.form.elements.length; i++) {
			if (thisobj.form.elements[i].name == thisobj.name) {
				if (thisobj.form.elements[i] == thisobj) {
					v_temp.focus();
					break;
				}
				v_temp = thisobj.form.elements[i];
			}
		}
	}
	if (evt.keyCode == 40) { // down
		v_found = false;
		for(i=0; i<thisobj.form.elements.length; i++) {
			if (thisobj.form.elements[i].name == thisobj.name) {
				v_temp = thisobj.form.elements[i];
				if (v_found) {
					v_temp.focus();
					break;
				}
				if (thisobj.form.elements[i] == thisobj) {
					v_found = true;
				}
			}
		}
	}
}
	
/*function doBlink() {
	var blink = document.all.tags("mstatus");
	for (var i=0; i<blink.length; i++) {
		blink[i].style.visibility = blink[i].style.visibility == "" ? "hidden" : "";
	}
}

function startBlink() {
	if (document.all) {
		setInterval("doBlink()",500);
	}
}
window.onload = startBlink;

function PleaseWait() {
	return '<blink>Please wait ...</blink>';
}*/
