var Browser = new Object();
Browser.isMozilla = (typeof document.implementation != 'undefined') && (typeof document.implementation.createDocument != 'undefined') && (typeof HTMLDocument!='undefined');
Browser.isIE = window.ActiveXObject ? true : false;
Browser.isFirefox = (navigator.userAgent.toLowerCase().indexOf("firefox")!=-1);
Browser.isSafari = (navigator.userAgent.toLowerCase().indexOf("safari")!=-1);
Browser.isOpera = (navigator.userAgent.toLowerCase().indexOf("opera")!=-1);


if (Browser.isMozilla) {
// set up ie environment for MozextendEventObject();emulateAttachEvent();emulateEventHandlers(["click", "dblclick", "mouseover", "mouseout","mousedown", "mouseup", "mousemove","keydown", "keypress", "keyup"]);emulateCurrentStyle();/*emulateDocumentAll();emulateElement()*/
// It is better to use a constant for event.buttonEvent.LEFT = 0;Event.MIDDLE = 1;Event.RIGHT = 2;}else {Event = {};
// IE is returning wrong button numberEvent.LEFT = 1;Event.MIDDLE = 4;Event.RIGHT = 2;}
/** Extends the event object with srcElement, cancelBubble, returnValue,* fromElement and toElement*/
	function extendEventObject() {
		Event.prototype.__defineSetter__("returnValue", function (b) {if (!b) this.preventDefault();return b;});
		Event.prototype.__defineSetter__("cancelBubble", function (b) {if (b) this.stopPropagation();return b;});
		Event.prototype.__defineGetter__("srcElement", function () {var node = this.target;while (node.nodeType != 1) node = node.parentNode;return node;});
		Event.prototype.__defineGetter__("fromElement", function () {var node;
			if (this.type == "mouseover") node = this.relatedTarget;
			else if (this.type == "mouseout") node = this.target;
			if (!node) return;while (node.nodeType != 1) node = node.parentNode;
			return node;});
		Event.prototype.__defineGetter__("toElement", function () {var node;if (this.type == "mouseout") node = this.relatedTarget;
			else if (this.type == "mouseover") node = this.target;
			if (!node) return;while (node.nodeType != 1) node = node.parentNode;return node;});
		Event.prototype.__defineGetter__("offsetX", function () {return this.layerX;});
		Event.prototype.__defineGetter__("offsetY", function () {return this.layerY;});
	}
	/** Emulates element.attachEvent as well as detachEvent*/
	function emulateAttachEvent() {
		HTMLDocument.prototype.attachEvent =HTMLElement.prototype.attachEvent = function (sType, fHandler) {var shortTypeName = sType.replace(/on/, "");fHandler._ieEmuEventHandler = function (e) {window.event = e;return fHandler();};
			this.addEventListener(shortTypeName, fHandler._ieEmuEventHandler, false);};
		HTMLDocument.prototype.detachEvent =HTMLElement.prototype.detachEvent = function (sType, fHandler) {var shortTypeName = sType.replace(/on/, "");
			if (typeof fHandler._ieEmuEventHandler == "function") this.removeEventListener(shortTypeName, fHandler._ieEmuEventHandler, false);
				else this.removeEventListener(shortTypeName, fHandler, true);};}
	/** This function binds the event object passed along in an* event to window.event*/
	function emulateEventHandlers(eventNames) {
		for (var i = 0; i < eventNames.length; i++) {
			document.addEventListener(eventNames[i], function (e) {window.event = e;}, true);  
		// using capture
		}
	}
	/** Simple emulation of document.all* this one is far from complete. Be cautious*/
	function emulateAllModel() {
		var allGetter = function () {
			var a = this.getElementsByTagName("*");
			var node = this;a.tags = function (sTagName) {return node.getElementsByTagName(sTagName);};
			return a;};
		HTMLDocument.prototype.__defineGetter__("all", allGetter);
		HTMLElement.prototype.__defineGetter__("all", allGetter);}
	function extendElementModel() {
			HTMLElement.prototype.__defineGetter__("parentElement", function () {if (this.parentNode == this.ownerDocument) 
				return null;return this.parentNode;});
			HTMLElement.prototype.__defineGetter__("children", function () {
				var tmp = [];var j = 0;var n;
				for (var i = 0; i < this.childNodes.length; i++) {
					n = this.childNodes[i];
					if (n.nodeType == 1) {
						tmp[j++] = n; 
						if (n.name) {  
							// named children 
							if (!tmp[n.name]) tmp[n.name] = [];
							tmp[n.name][tmp[n.name].length] = n;
						}
						if (n.id)    // child with id
							tmp[n.id] = n
					}
				}
				return tmp;});
			HTMLElement.prototype.contains = function (oEl) {if (oEl == this) return true;
			if (oEl == null) return false;
			return this.contains(oEl.parentNode);};
	}
	function emulateCurrentStyle() {
		HTMLElement.prototype.__defineGetter__("currentStyle", function () {return this.ownerDocument.defaultView.getComputedStyle(this, null);
		/*var cs = {};var el = this;for (var i = 0; i < properties.length; i++) {cs.__defineGetter__(properties[i], encapsulateObjects(el, properties[i]));}return cs;*/});
		}
	function emulateHTMLModel() {
		// This function is used to generate a html string for the text properties/methods
		// It replaces '\n' with "<BR"> as well as fixes consecutive white spaces
		// It also repalaces some special characters
	}
	function convertTextToHTML(s) {
		s = s.replace(/\&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/\n/g, "<BR>");
		while (/\s\s/.test(s))s = s.replace(/\s\s/, "  ");
		return s.replace(/\s/g, " ");
	}
	HTMLElement.prototype.insertAdjacentHTML = function (sWhere, sHTML) {
		var df;  // : DocumentFragment
		var r = this.ownerDocument.createRange();
		switch (String(sWhere).toLowerCase()) {
			case "beforebegin":
				r.setStartBefore(this);df = r.createContextualFragment(sHTML);
				this.parentNode.insertBefore(df, this);
				break;
			case "afterbegin":
				r.selectNodeContents(this);
				r.collapse(true);
				df = r.createContextualFragment(sHTML);
				this.insertBefore(df, this.firstChild);
				break;
			case "beforeend":
				r.selectNodeContents(this);
				r.collapse(false);
				df = r.createContextualFragment(sHTML);
				this.appendChild(df);
				break;
			case "afterend":
				r.setStartAfter(this);
				df = r.createContextualFragment(sHTML);
				this.parentNode.insertBefore(df, this.nextSibling);
				break;
		}
	};
	HTMLElement.prototype.__defineSetter__("outerHTML", function (sHTML) {var r = this.ownerDocument.createRange();r.setStartBefore(this);var df = r.createContextualFragment(sHTML);this.parentNode.replaceChild(df, this);return sHTML;});
	HTMLElement.prototype.__defineGetter__("canHaveChildren", function () {switch (this.tagName) {case "AREA":case "BASE":case "BASEFONT":case "COL":case "FRAME":case "HR":case "IMG":case "BR":case "INPUT":case "ISINDEX":case "LINK":case "META":case "PARAM":return false;}return true;});
	HTMLElement.prototype.__defineGetter__("outerHTML", function () {var attr, attrs = this.attributes;var str = "<" + this.tagName;for (var i = 0; i < attrs.length; i++) {attr = attrs[i];if (attr.specified)str += " " + attr.name + '="' + attr.value + '"';}if (!this.canHaveChildren)return str + ">";return str + ">" + this.innerHTML + "</" + this.tagName + ">";});HTMLElement.prototype.__defineSetter__("innerText", function (sText) {this.innerHTML = convertTextToHTML(sText);return sText;});
	var tmpGet;
	HTMLElement.prototype.__defineGetter__("innerText", tmpGet = function () {var r = this.ownerDocument.createRange();r.selectNodeContents(this);return r.toString();});
	HTMLElement.prototype.__defineSetter__("outerText", function (sText) {this.outerHTML = convertTextToHTML(sText);return sText;});
	HTMLElement.prototype.__defineGetter__("outerText", tmpGet);HTMLElement.prototype.insertAdjacentText = function (sWhere, sText) {this.insertAdjacentHTML(sWhere, convertTextToHTML(sText));};
}

// Standard functions copied from Dreamweaver
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_validateForm() { //v4.0
  var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
  for (i=0; i<(args.length-2); i+=3) { nm="\""+args[i+1]+"\""; test=args[i+2]; val=MM_findObj(args[i]);
    if (val) { if ((val=val.value)!="") {
      if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
        if (p<1 || p==(val.length-1)) errors+='- '+nm+' must contain an e-mail address.\n';
      } else if (test!='R') { num = parseFloat(val);
        if (isNaN(val)) errors+='- '+nm+' must contain a number.\n';
        if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
          min=test.substring(8,p); max=test.substring(p+1);
          if (num<min || max<num) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
    } } } else if (test.charAt(0) == 'R') errors += '- '+nm+' is required.\n'; }
  } if (errors) alert('The following error(s) occurred:\n'+errors);
  document.MM_returnValue = (errors == '');
}

// ExpressBuilder Functions
function EBAdmin_str_valid(str,charset){
	var result = true;
	for (var i=0;i<str.length;i++)
		if (charset.indexOf(str.substr(i,1))<0){ result = false; break; }
	return result;
}
function EBAdmin_color_button_click(fldnm){
	var arr = showModalDialog("ebadmin_selcolor.asp","","status=no;scroll=no;resizable=no;toolbar=no;dialogWidth:331px;dialogHeight:350px;");
	var x;
	if (arr != null){ if ((x=MM_findObj(fldnm))!=null){ x.value=arr; } }
}
function EBAdmin_image_button_click(fldnm, fldpath){
	var arr = showModalDialog("ebadmin_selimage.asp?start="+fldpath,"","status=no;scroll=yes;resizable:yes;toolbar=no;dialogWidth:475px;dialogHeight:383px;");
	var x;
	if (arr != ""){ if ((x=MM_findObj(fldnm))!=null){ x.value=arr; } }
}
function EBAdmin_small_button_over(eButton){
	eButton.style.backgroundColor = "#D4D0C8";
	eButton.style.borderColor = "#EEEEEE #999999 #999999 #EEEEEE";
}
function EBAdmin_small_button_out(eButton){
	eButton.style.backgroundColor = "#D4D0C8";
	eButton.style.borderColor = "#D4D0C8";
}
function EBAdmin_small_button_down(eButton){
	eButton.style.backgroundColor = "#BCB6A9";
	eButton.style.borderColor = "#999999 #EEEEEE #EEEEEE #999999";
}
function EBAdmin_small_button_up(eButton){
	eButton.style.backgroundColor = "#D4D0C8";
	eButton.style.borderColor = "#EEEEEE #999999 #999999 #EEEEEE";
	eButton = null;
}
function EBAdmin_set_rowcolor(theRow, thePointerColor){
    if (thePointerColor == '' || typeof(theRow.style) == 'undefined') return false;
    if (typeof(document.getElementsByTagName) != 'undefined') {
        var theCells = theRow.getElementsByTagName('td');
    }else if (typeof(theRow.cells) != 'undefined') {
        var theCells = theRow.cells;
    }else {
        return false;
    }
    var rowCellsCnt  = theCells.length;
    for (var c = 0; c < rowCellsCnt; c++) {
        theCells[c].style.backgroundColor = thePointerColor;
    }
    return true;
}

var sEBAdmin_FullScreenDivName="";
function EBAdmin_ResizeHtmlArea(){
	if(sEBAdmin_FullScreenDivName!=""){
		var div=MM_findObj("idHtmlArea_"+sEBAdmin_FullScreenDivName);
		var cont=MM_findObj("idContent_"+sEBAdmin_FullScreenDivName);
		if(div!=null){
			div.style.width=document.body.clientWidth;
			div.style.height=document.body.clientHeight;
			if(cont!=null){
				if(div.style.pixelWidth>6){
					cont.style.width=div.style.pixelWidth-6;
				}
				if(div.style.pixelHeight>94){
					cont.style.height=div.style.pixelHeight-94;
				}
			}
		}
	}
}
function EBAdmin_FullScreenHtmlArea(divName){
	var div=MM_findObj("idHtmlArea_"+divName);
	var cont=MM_findObj("idContent_"+divName);
	var upl=MM_findObj("imageupload_"+divName);
	if(div.style.position!="absolute"){
		document.body.scrollTop="0px";
		document.body.style.overflow="hidden";
		onresize=new Function("EBAdmin_ResizeHtmlArea();");
		if(div!=null){
			div.style.position="absolute";
			div.style.border="3px solid #FFFFFF"
			div.style.left="0px";
			div.style.top="0px";
			div.style.width=document.body.clientWidth;
			div.style.height=document.body.clientHeight;
			if(cont!=null){
				if(div.style.pixelWidth>6){
					cont.style.width=div.style.pixelWidth-6;
				}
				if(div.style.pixelHeight>94){
					cont.style.height=div.style.pixelHeight-94;
				}
			}
			if(upl!=null){
				upl.style.width="100%";
			}
		}
		sEBAdmin_FullScreenDivName=divName;
	}else{
		document.body.style.overflow="auto";
		onresize="";
		if(div!=null){
			div.style.position="static";
			div.style.border="0px none #000000"
			div.style.left="0px";
			div.style.top="0px";
			div.style.width="";
			div.style.height="";
			if(cont!=null){
				cont.style.width="";
				cont.style.height="";
			}
			if(upl!=null){
				upl.style.width="";
			}
		}
		sEBAdmin_FullScreenDivName="";
	}
}

function EBAdmin_GetDocumentURL(){
	var docLoc = document.location.toString();
	docLoc = docLoc.substring(0,docLoc.lastIndexOf("/")+1);
	return docLoc;
}
function EBAdmin_ReplaceAbsoluteURL(html) {
	var sRet, sRe;
	var sFullURL = document.location.toString();
	var sRelativeURL = sFullURL.substring(0,sFullURL.lastIndexOf("/")+1);
	var sPageName = sFullURL.replace(sRelativeURL, "");
	sRelativeURL = sRelativeURL.replace(/&/gi, "&amp;")
	sRelativeURL = sRelativeURL.replace(/\//gi,"\\\/");
	sRelativeURL = sRelativeURL.replace(/\./gi,"\\\.");
	sRelativeURL = sRelativeURL.replace(/\?/gi,"\\\?");
	sPageName = sPageName.replace(/&/gi, "&amp;")
	sPageName = sPageName.replace(/\//gi,"\\\/");
	sPageName = sPageName.replace(/\./gi,"\\\.");
	sPageName = sPageName.replace(/\?/gi,"\\\?");
	sRe = eval("/"+sRelativeURL+"/gi");
	sRet = html.replace(sRe, "")
	sRe = eval("/"+sPageName+"/gi");
	sRet = sRet.replace(sRe, "")
	return sRet;
}

///////////// HtmlArea Table Tool Function Start
var preRange;
var prevRangeType = "None";
var parentNode;
var BorderCurrent = 0;

function EBAdmin_showTableToolkitMenu(theFrameName, objSelection) {
	var parentNodeTagName = "None"
	
	parentNode = EBAdmin_getParentNode(objSelection);
	if(parentNode){
		parentNodeTagName = parentNode.tagName
	}
	if(!document.all.EBAdminHA_contextmenu) {
		var ne=document.createElement("DIV");
		ne.id = 'EBAdminHA_contextmenu';
		ne.unselectable = 'on';
		ne.style.position = 'absolute';
		ne.style.visibility = 'hidden';
		ne.style.top = '0px';
		ne.style.border = '1px solid #7C7C7C';
		ne.style.backgroundColor = '#F4F4F4';
		ne.style.width = 'auto';
		ne.className = 'ebadmin_smalltext';
		
		ne.oncontextmenu = new Function("event.returnValue=false");
		ne.onmousedown =  new Function("event.cancelBubble = true;");
		ne.onmouseout = new Function("cleanTableToolkitMenu(this);");
		
		document.body.appendChild(ne);
	} else {ne = document.all.EBAdminHA_contextmenu;}
	
	var divs = ne.getElementsByTagName("DIV")
	for (var i = divs.length - 1; i >= 0; i--){
		if (divs[i].isDynamic){
			divs[i].removeNode(true);
		}
	}
	ne = EBAdmin_contextItem('tableOption', "Table Options", 1, "");
	//ne.isDynamic = false;
	EBAdminHA_contextmenu.appendChild(ne);
	ne = EBAdmin_contextItem('toggleTableborder',"Toggle Table Border", 0, "EBAdmin_toggleTableBorder('" + theFrameName.toString() +"', 1); ");
	EBAdminHA_contextmenu.appendChild(ne);	
	
	if(parentNodeTagName=="TD" || parentNodeTagName == "None") {
		ne = EBAdmin_contextItem('tableAddnew',"Add New Table", 0, "EBAdmin_AddNewTable(); ");
		EBAdminHA_contextmenu.appendChild(ne);
	}	
	if(parentNodeTagName=="TABLE" || parentNodeTagName=="TD") {
		ne = EBAdmin_contextItem('tableEdit',"Edit Table Properties", 0, "EBAdmin_editTable(parentNode); ");	
		EBAdminHA_contextmenu.appendChild(ne);
	}
	if(parentNodeTagName=="TD") {
		ne = EBAdmin_contextItem('EBAdminHA_rowOptions',"Row Options", 1, "");	
		EBAdminHA_contextmenu.appendChild(ne);
		ne = EBAdmin_contextItem('EBAdminHA_addRowBelow',"Add Row Below", 0, "EBAdmin_addRow(parentNode, 'afterEnd');");	
		EBAdminHA_contextmenu.appendChild(ne);
		ne = EBAdmin_contextItem('EBAdminHA_addRowAbove',"Add Row Above", 0, "EBAdmin_addRow(parentNode, 'beforeBegin');");	
		EBAdminHA_contextmenu.appendChild(ne);
		ne = EBAdmin_contextItem('EBAdminHA_delelteRow',"Delete Current Row", 0, "EBAdmin_deleteRow(parentNode);");	
		EBAdminHA_contextmenu.appendChild(ne);
		
		ne = EBAdmin_contextItem('EBAdminHA_cellOptions',"Cell Options", 1, "");	
		EBAdminHA_contextmenu.appendChild(ne);
		ne = EBAdmin_contextItem('EBAdminHA_editCell',"Edit Cell Properties", 0, "EBAdmin_editCell(parentNode);");	
		EBAdminHA_contextmenu.appendChild(ne);
		ne = EBAdmin_contextItem('EBAdminHA_mergeCellRight',"Merge Cell Right", 0, "EBAdmin_mergeCell(parentNode, 'right');");	
		EBAdminHA_contextmenu.appendChild(ne);
		ne = EBAdmin_contextItem('EBAdminHA_addColumnAfter',"Add column after", 0, "EBAdmin_addColumn(parentNode, 'right');");	
		EBAdminHA_contextmenu.appendChild(ne);
		ne = EBAdmin_contextItem('EBAdminHA_addColumnBefore',"Add column before", 0, "EBAdmin_addColumn(parentNode, 'right');");	
		EBAdminHA_contextmenu.appendChild(ne);
		ne = EBAdmin_contextItem('EBAdminHA_deleteColumn',"Delete column", 0, "EBAdmin_deleteColumn(parentNode, 'right');");	
		EBAdminHA_contextmenu.appendChild(ne);				
	}

    EBAdminHA_contextmenu.style.left = event.clientX + document.body.scrollLeft;
    EBAdminHA_contextmenu.style.top = event.clientY + document.body.scrollTop;
    EBAdminHA_contextmenu.style.visibility="visible";
    EBAdminHA_contextmenu.style.zIndex = 100;
    EBAdminHA_contextmenu.focus();
    event.returnValue = false;
}


function cleanTableToolkitMenu(menudiv){
    var divs = menudiv.getElementsByTagName("DIV")
    if (event.toElement.tagName!=='DIV') {
	    for (var i = divs.length - 1; i >= 0; i--){
	      if (divs[i].isDynamic){
	        divs[i].removeNode(true);
	      }
	    }
	    menudiv.style.visibility = "hidden";
	}
}

function cleanTableMenuItemList() {
	if(document.all.EBAdminHA_contextmenu){
		var ne = document.all.EBAdminHA_contextmenu;
		var divs = ne.getElementsByTagName("DIV");
		for (var i = divs.length - 1; i >= 0; i--){
			if (divs[i].isDynamic){
				divs[i].removeNode(true);
			}
		}
		ne.style.visibility = "hidden";
	}		
}

function EBAdmin_contextItem(id, title, isHead, clickFunc){
  var ne = document.createElement("DIV");
  ne.id = id;
  ne.innerText = title;
  ne.isDynamic = true;
  ne.unselectable = 'on';
  if (isHead){
    ne.style.fontWeight = 'bold';
    ne.style.backgroundColor = '#CCCCCC';
  }else{
  	ne.innerHTML = "&nbsp; &nbsp; " + ne.innerHTML;
    ne.onmouseover = new Function("EBAdmin_contextItemOver(this);");
    ne.onmouseout = new Function("EBAdmin_contextItemOut(this);");
  }
  if (clickFunc) ne.onclick = new Function(clickFunc);
  ne.style.borderLeft = '4px solid #999999';
  ne.style.padding = '3px';
  return ne;
}

function EBAdmin_contextItemOver(item){
  item.style.backgroundColor='#DDDDDD'; 
  item.style.cursor = 'hand';
}
function EBAdmin_contextItemOut(item){
	item.style.removeAttribute('backgroundColor');
	event.cancelBubble = true;
}

function getTargetParentNode(srcNode, targetTagName) {
	var tempNode
	tempNode = srcNode
	if (srcNode.parentElement) {
		tempNode = srcNode.parentElement
		while(tempNode.tagName!="BODY" && tempNode) {
			if(tempNode.tagName==targetTagName) {
				return tempNode;
				break;
			}
			tempNode = tempNode.parentElement
		}
	}
	return tempNode
}

function EBAdmin_getParentNode(objSelection){
	prevRangeType = objSelection.type;
	preRange = objSelection.createRange();
	
	var objParentElement
	var temp 
	
	if(prevRangeType == "Control") {
		parentNode = preRange(0)
		return parentNode
	}
	else {	 	
		parentNode = preRange.parentElement();
		while(parentNode.tagName != "BODY") {
			  switch (parentNode.tagName){
				  case "TABLE":
				    return parentNode;
				    break;
				  case "TD":
				    return parentNode;
				    break;
			  }
			  parentNode = parentNode.parentElement;
		}
	}
}

function EBAdmin_AddNewTable() {
	cleanTableMenuItemList();
	var arr = showModalDialog("ebadmin_htmlarea_instbl.asp","","status=no;scroll=no;resizable=no;toolbar=no;dialogWidth:360px;dialogHeight:330px;");
	if (arr != null){ preRange.pasteHTML(arr); }
}

function EBAdmin_editTable(parentNode) {
	var tempTableNode;
	tempTableNode = parentNode;
	cleanTableMenuItemList();
	if(tempTableNode) {
		while(tempTableNode.tagName !="BODY"){
			if(tempTableNode.tagName =="TABLE") break; 
			tempTableNode = tempTableNode.parentElement;
		}
		if(tempTableNode.tagName == "TABLE"){
			showModalDialog("ebadmin_htmlarea_edittbl.asp",tempTableNode,"status=no;scroll=no;resizable=no;toolbar=no;dialogWidth:360px;dialogHeight:268px;");
		}
	}
}

function EBAdmin_toggleTableBorder(theFrameName, toggle) {
  if (toggle) BorderCurrent = !BorderCurrent;
  var frame = document.all(theFrameName)
  var tables = frame.contentWindow.document.body.getElementsByTagName("TABLE");
  cleanTableMenuItemList();
  for (var i = 0; i < tables.length; ++i){
    if (tables[i].border == 0){
      var tds = tables(i).getElementsByTagName("td");
      for (var j = 0; j < tds.length; ++j){
        if (BorderCurrent) tds[j].runtimeStyle.border = '1 dashed #3C3C3C';
        else tds[j].runtimeStyle.cssText = '';
      }
    }
  }
}


function EBAdmin_addRow(parentNode, loc) {
	cleanTableMenuItemList();
	var tr, table
	var tempNode
	if(parentNode.tagName == "TD") {
		tr = getTargetParentNode(parentNode, "TR")
		if(tr.tagName != "TR") return;
		var newTr = tr.cloneNode(true);
		var tds = newTr.getElementsByTagName("TD");
		for (var i = 0; i < tds.length; ++i){
			tds[i].runtimeStyle.border = '1 dashed #3C3C3C';
			tds[i].innerHTML = '&nbsp;';
		}
		tr.insertAdjacentElement(loc, newTr);
	}
}

function EBAdmin_deleteRow(parentNode) {
	cleanTableMenuItemList();
	var tr, table
	var tempNode
	
	if(parentNode.tagName=="TD") {
		tr = getTargetParentNode(parentNode, "TR")
		if(tr.tagName != "TR") return;
		table = getTargetParentNode(parentNode, "TABLE")
		if(table.tagName != "TABLE") return;
		tr.removeNode(true);
		if (!table.getElementsByTagName("TR").length) table.removeNode(true);
		tr=null;	
	}
}

function EBAdmin_editCell(parentNode) {
	cleanTableMenuItemList();
	if(parentNode.tagName=="TD") {
		showModalDialog("ebadmin_htmlarea_edittd.asp",parentNode,"status=no;scroll=no;resizable=no;toolbar=no;dialogWidth:360px;dialogHeight:235px;");
	}
}

function EBAdmin_mergeCell(parentNode, dir) {
	cleanTableMenuItemList();
	if(parentNode.tagName == "TD") {
		var td = parentNode;
		if (dir == 'left') td = td.previousSibling;
		td.innerHTML += td.nextSibling.innerHTML;
		td.colSpan += td.nextSibling.colSpan;
		td.nextSibling.removeNode(true);
	}
}

function EBAdmin_addColumn(parentNode, loc) {
	
	cleanTableMenuItemList();
	var pos;
	var table
	if(parentNode.tagName == "TD") {
		td = parentNode
		if (loc == 'left') td = td.previousSibling;
		table = getTargetParentNode(parentNode, "TABLE")
		if(table.tagName != "TABLE") return;
		
		for (pos = 1; td;pos+=td.colSpan, td = td.previousSibling);
		var trs = table.getElementsByTagName("TR");
		for (var i = 0; i < trs.length; ++i){
			var tds = trs(i).getElementsByTagName("TD");
			var currentCol = 0;
			for (var j = 0; j < tds.length; ++j){
				currentCol += tds(j).colSpan;
				if ((currentCol+1) >= pos){
					if (tds(j).colSpan > 1 && (currentCol + 1) != pos) tds(j).colSpan += 1;
					else{
						var neTD = document.createElement("TD");
						if (BorderCurrent) neTD.runtimeStyle.border = '1 dashed #3C3C3C';
						if (pos == 1) tds(j).insertAdjacentElement('beforeBegin', neTD);
						else tds(j).insertAdjacentElement('afterEnd', neTD);
					}
					break;
				}
			}
		}
	}
}

function EBAdmin_deleteColumn(parentNode) {
	cleanTableMenuItemList();
	var pos;
	var table;
	if(parentNode.tagName == "TD") {
		td = parentNode
		table = getTargetParentNode(parentNode, "TABLE")
		if(table.tagName != "TABLE") return;
		
		td = td.previousSibling;
		for (pos = 1; td;pos+=td.colSpan, td = td.previousSibling);
		var trs = table.getElementsByTagName("TR");
		for (var i = 0; i < trs.length; ++i){
			var tds = trs(i).getElementsByTagName("TD");
			var currentCol = 0;
			for (var j = 0; j < tds.length; ++j){
			  currentCol += tds(j).colSpan;
			  if (currentCol >= pos){
			    if (tds(j).colSpan > 1) tds(j).colSpan -= 1;
			    else tds(j).removeNode(true);
			    break;  
			  }
			}
		}
		for (var i = 0; i < trs.length; ++i){
			var tds = trs(i).getElementsByTagName("TD");
			if (tds.length == 0){
			  EBAdmin_deleteRow(tds);
			  --i;
			}
		} 
	}
}

///////////// HtmlArea Table Tool Function End

function isValidCreditCardNumber(cardNumber, cardType)
{
  var isValid = false;
  var ccCheckRegExp = /[^\d ]/;
  isValid = !ccCheckRegExp.test(cardNumber);

  if (isValid)
  {
    var cardNumbersOnly = cardNumber.replace(/ /g,"");
    var cardNumberLength = cardNumbersOnly.length;
    var lengthIsValid = false;
    var prefixIsValid = false;
    var prefixRegExp;

    switch(cardType)
    {
      case "M":		//"mastercard"
        lengthIsValid = (cardNumberLength == 16);
        prefixRegExp = /^5[1-5]/;
        break;

      case "V":			//"visa"
        lengthIsValid = (cardNumberLength == 16 || cardNumberLength == 13);
        prefixRegExp = /^4/;
        break;

      case "A":			//"amex"
        lengthIsValid = (cardNumberLength == 15);
        prefixRegExp = /^3(4|7)/;
        break;
        
      case "D":			//"Discover"
        lengthIsValid = (cardNumberLength == 16);
        prefixRegExp = /^6011/;
        break;      	
      
      case "J":			//"JCB"
        lengthIsValid = (cardNumberLength == 15 || cardNumberLength == 16);
        prefixRegExp = /^3|1800|2131/;
        break;      
      
      case "C":		//"Diner's Club"
        lengthIsValid = (cardNumberLength == 14);
        prefixRegExp = /^(30[0-5])|36|38/;
        break;      
      
      default:
        prefixRegExp = /^$/;
        alert("Card type not found");
    }

    prefixIsValid = prefixRegExp.test(cardNumbersOnly);
    isValid = prefixIsValid && lengthIsValid;
  }

  if (isValid)
  {
    var numberProduct;
    var numberProductDigitIndex;
    var checkSumTotal = 0;

    for (digitCounter = cardNumberLength - 1; 
      digitCounter >= 0; 
      digitCounter--)
    {
      checkSumTotal += parseInt (cardNumbersOnly.charAt(digitCounter));
      digitCounter--;
      numberProduct = String((cardNumbersOnly.charAt(digitCounter) * 2));
      for (var productDigitCounter = 0;
        productDigitCounter < numberProduct.length; 
        productDigitCounter++)
      {
        checkSumTotal += 
          parseInt(numberProduct.charAt(productDigitCounter));
      }
    }

    isValid = (checkSumTotal % 10 == 0);
  }

  return isValid;
}

function VerifyEmailAddress(sEmail) {
	var email = sEmail; 
	//var pattern = /^([a-zA-Z0-9_-\.])+@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-])+/; 
	var pattern = /^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/;
	flag = pattern.test(email); 
	if(flag) {
		return true; 
	} 
	else { 
		return false; 
	} 
}


function ConvertToFloat(sString){
	var s,ret,i;
	ret="";
	for(i=0;i<sString.length;i++){
		s=sString.substring(i,i+1);
		if(s=="0" || s=="1" || s=="2" || s=="3" || s=="4" || s=="5" || s=="6" || s=="7" || s=="8" || s=="9" || s=="." || s=="+" || s=="-"){ ret+=s; }
	}
	if(ret==""){ ret="0"; }
	eval("ret="+ret);
	return ret;
}

function FormatPrice(fPrice){
	var ret,i,j,k,s;
	ret="";
	i=Math.floor(fPrice);
	j=Math.round((fPrice-i)*100)/100;
	s=""+i;
	for(k=s.length-1;k>-3;k-=3){
		ret=s.substring(k-2,k+1)+","+ret;
	}
	while(ret.substring(0,1)==","){ ret=ret.substring(1,ret.length-1); }
	while(ret.substring(ret.length-1,ret.length)==","){ ret=ret.substring(0,ret.length-1); }
	if(j>0){
		s=""+j+"0000";
		ret="$"+ret+"."+s.substring(2,4);
	}else{
		ret="$"+ret+".00";
	}
	return ret;
}

//-------------------------------------------------------------------
// Trim functions
//   Returns string with whitespace trimmed
//-------------------------------------------------------------------
function LTrim(str){
	if (str==null){return null;}
	for(var i=0;str.charAt(i)==" ";i++);
	return str.substring(i,str.length);
	}
function RTrim(str){
	if (str==null){return null;}
	for(var i=str.length-1;str.charAt(i)==" ";i--);
	return str.substring(0,i+1);
	}
function Trim(str){return LTrim(RTrim(str));}
function LTrimAll(str) {
	if (str==null){return str;}
	for (var i=0; str.charAt(i)==" " || str.charAt(i)=="\n" || str.charAt(i)=="\t"; i++);
	return str.substring(i,str.length);
	}
function RTrimAll(str) {
	if (str==null){return str;}
	for (var i=str.length-1; str.charAt(i)==" " || str.charAt(i)=="\n" || str.charAt(i)=="\t"; i--);
	return str.substring(0,i+1);
	}
function TrimAll(str) {
	return LTrimAll(RTrimAll(str));
	}
//-------------------------------------------------------------------
// isNull(value)
//   Returns true if value is null
//-------------------------------------------------------------------
function isNull(val){return(val==null);}

//-------------------------------------------------------------------
// isBlank(value)
//   Returns true if value only contains spaces
//-------------------------------------------------------------------
function isBlank(val){
	if(val==null){return true;}
	for(var i=0;i<val.length;i++) {
		if ((val.charAt(i)!=' ')&&(val.charAt(i)!="\t")&&(val.charAt(i)!="\n")&&(val.charAt(i)!="\r")){return false;}
		}
	return true;
	}

//-------------------------------------------------------------------
// isInteger(value)
//   Returns true if value contains all digits
//-------------------------------------------------------------------
function isInteger(val){
	if (isBlank(val)){return false;}
	for(var i=0;i<val.length;i++){
		if(!isDigit(val.charAt(i))){return false;}
		}
	return true;
	}

//-------------------------------------------------------------------
// isNumeric(value)
//   Returns true if value contains a positive float value
//-------------------------------------------------------------------
function isNumeric(val){return(parseFloat(val,10)==(val*1));}

//-------------------------------------------------------------------
// isArray(obj)
// Returns true if the object is an array, else false
//-------------------------------------------------------------------
function isArray(obj){return(typeof(obj.length)=="undefined")?false:true;}

//-------------------------------------------------------------------
// isDigit(value)
//   Returns true if value is a 1-character digit
//-------------------------------------------------------------------
function isDigit(num) {
	if (num.length>1){return false;}
	var string="1234567890";
	if (string.indexOf(num)!=-1){return true;}
	return false;
	}

//-------------------------------------------------------------------
// isExpiryDate(year, month)
//   Returns true if month/year is a valid expire date
//-------------------------------------------------------------------
function isExpiryDate() {
	var argv = isExpiryDate.arguments;
	var argc = isExpiryDate.arguments.length;
	year = argc > 0 ? argv[0] : this.year;
	month = argc > 1 ? argv[1] : this.month;
	if (!isNumeric(year+""))
		return false;
	if (!isNumeric(month+""))
		return false;
	today = new Date();
	expiry = new Date(year, month);
	if (today.getTime() > expiry.getTime())
		return false;
	else
		return true;
}

//AutoResize Picture
function DrawImage(ImgD, FitWidth, FitHeight){
	var image = new Image();
	image.src = ImgD.src;
	if(image.width > 0 && image.height > 0){
		if(FitWidth > 0){
			ImgD.width = FitWidth;
			ImgD.height = (image.height * FitWidth) / image.width;
		} else {
			ImgD.height = FitHeight;
			ImgD.width = (image.width * FitHeight) / image.height;
		}
	}
} 



//FOR ROLLOVER IMAGES AND PRELOADING IMAGES
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.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];}
}





//Added Feb 8 2010 AD


var active_content=1;

function change_tab(tabnum) {
	//change class of current tab
	tab_el=document.getElementById("t"+active_content);
	tab_el.className="div_tab_inactive";
	
	//change class of new current tab
	tab_el=document.getElementById("t"+tabnum);
	tab_el.className="div_tab_active";
	
	tab_el=document.getElementById("c"+active_content);
	tab_el.className="div_content_hide";
	
	tab_el=document.getElementById("c"+tabnum);
	tab_el.className="div_content_show";
	
	tab_el=document.getElementById("it"+active_content);
	tab_el.className="tab_image_inactive";
	
	tab_el=document.getElementById("it"+tabnum);
	tab_el.className="tab_image_active";
	
	active_content=tabnum;
}




//Added Feb 8 2010