﻿// JScript File
var setCookieDate = new Date();
setCookieDate.setTime(setCookieDate.getTime() + (365*2) * 24 * 60 * 60 * 1000);

function replace(input, find, replace)
{
	re = eval('/' + find + '/gi');
	return input.replace(re, replace);
}

var icyWindow;
function pageOpen(pageURL) //width, height, name, scrollbar, top, left
{
	if(pageURL=="") pageURL = "dictionary.aspx"
	var width = pageOpen.arguments[1] ? pageOpen.arguments[1] : 500;
	if(width== 'full') width = window.screen.availWidth-10;
	var height = pageOpen.arguments[2] ? pageOpen.arguments[2] : 500;
	if(height== 'full') height = window.screen.availHeight-40;
	var name = pageOpen.arguments[3] ? pageOpen.arguments[3] : "empty";
	var scrollbar = pageOpen.arguments[4] ? "yes" : "no";
	var top = pageOpen.arguments[5] != null ? pageOpen.arguments[5] : 300;
	var left = pageOpen.arguments[6] != null ? pageOpen.arguments[6] : 300;

	if(typeof(icyWindow) != "undefined" && icyWindow.closed == false)
	{
		icyWindow.close();
	}
	icyWindow = window.open(pageURL,name,'width=' + width + ',height=' + height + ',marginwidth=0,scrollbars=' + scrollbar + ',marginheight=0');
	icyWindow.moveTo(top,left);
	icyWindow.focus();
	return false;
}

/*
* There are hidden arguments: 
* 
*	toggle(
		[id] id of the node to toggle, 
		[plusIcon] id of the plus icon to switch with the toggle state, 
		[forceToggle] boolean value to force toggle state disregarding the node style state
		);
* 
*/
function toggle(nodeId)
{
	var node = document.getElementById(nodeId);
	var force = false;
	var newState;
	if(node)
	{
		if(node.style.display=='none')
			newState = "open";
		else
			newState = "close";
	}
	else
		return;

	if(toggle.arguments[2])
		force = toggle.arguments[2];

	if(force)
		newState = "open";
	
	node.style.display = newState == "open" ? '' : 'none';

	//we'll try to save state of the documents	- no longer used
	//manageNode(newState, node.id);
	
	var plusIcn;
	if(toggle.arguments[1])
	{
		plusIcn = document.getElementById(toggle.arguments[1]);
		if(plusIcn)
			plusIcn.src = newState == "open" ? "assets/images/icons/icn_minus16x16.gif" : "assets/images/icons/icn_plus16x16.gif";
	}
	return false;
}

function setCookie(name, value, expires, path, domain, secure) 
{
	if(expires=='')expires=setCookieDate;
  var curCookie = name + "=" + escape(value) +
      ((expires) ? "; expires=" + expires.toGMTString() : "") +
      ((path) ? "; path=" + path : "") +
      ((domain) ? "; domain=" + domain : "") +
      ((secure) ? "; secure" : "");
  document.cookie = curCookie;
  return false;
}

function getCookie(name) {
  var dc = document.cookie;
  var prefix = name + "=";
  var begin = dc.indexOf("; " + prefix);
  if (begin == -1) {
    begin = dc.indexOf(prefix);
    if (begin != 0) return null;
  } else
    begin += 2;
  var end = document.cookie.indexOf(";", begin);
  if (end == -1)
    end = dc.length;
  return unescape(dc.substring(begin + prefix.length, end));
}
	
//these are mutual for the following two functions
var idIndx=0;
function doAttachArea()
{
	document.getElementById('Span1').innerHTML = '';
	if(idIndx==5)
	{
		alert('You can upload maximum 5 files at a time');
		return;
	}
	if(idIndx==0)
	{
		objTable = document.getElementById('atchFiles');
		objRow = objTable.tBodies[0].appendChild(document.createElement('TR'));
		objRow.id = 'tblAttchmnts';
		
		objCol = document.createElement('TD');
		objCol.className = 'subTitle';
		objCol.appendChild(document.createTextNode(''));
		objCol.setAttribute("valign","top");
		objCol.setAttribute("align","middle");
		objImg = document.createElement('img');
		objImg.setAttribute("src","assets/images/icons/icn_attach_large.gif");
		objImg.setAttribute("width","32");
		objImg.setAttribute("height","32");
		objCol.appendChild(document.createElement('br'));
		objCol.appendChild(objImg);
		objRow.appendChild(objCol);
		
		objCol = document.createElement("TD");
		objAttArea = document.createElement("TABLE");
		objAttArea.className = "alternate";
		objAttArea.id = "attachments";
		objAttArea.width = "100%";
		objAttArea.cellpadding = "1";
		objAttArea.cellspacing = "1";
		objAttArea.border = "0";
		objAttAreaBody = document.createElement("tbody");
		objAttArea.appendChild(objAttAreaBody);
		objCol.appendChild(objAttArea);
		objRow.appendChild(objCol);
	
		document.getElementById('sexy').innerText = 'attach another';
		document.getElementById('btnUploadFiles').style.display = '';
	}
	
	objAttArea = document.getElementById('attachments');
	
	objRow = objAttArea.tBodies[0].appendChild(document.createElement('TR'));
	objRow.id = 'tr'+idIndx;
	
	objCol = document.createElement("TD");
	objLinkText = document.createTextNode(idIndx+1);
	objCol.appendChild(objLinkText);
	objRow.appendChild(objCol);
	
	objCol = document.createElement("TD");
	objInput = document.createElement("input");
	objInput.type = "file";
	objInput.size = "30";
	objInput.name = "file"+idIndx;
	objInput.runat = "server";
	objCol.appendChild(objInput);
	objRow.appendChild(objCol);
	
	objCol = document.createElement("TD");
	objBtn = document.createElement("Button");
	objBtn.name = 'tr'+idIndx;
	objBtn.onclick = function(){removeAttachment(this.name);}
	objBtn.innerHTML = "remove";
	objBtn.className = "btnSmall";
	objCol.appendChild(objBtn);
	objRow.appendChild(objCol);
	
	window.scrollTo(0, document.body.scrollHeight);
	idIndx++;
	
	return false;
}
function removeAttachment(objId)
{
	document.getElementById('attachments').tBodies[0].deleteRow(document.getElementById(objId).rowIndex);
	idIndx--;
	if(idIndx==0)
	{
		document.getElementById('sexy').innerText = 'attach a file';
		document.getElementById('btnUploadFiles').style.display = 'none';
		document.getElementById('atchFiles').tBodies[0].deleteRow(document.getElementById('tblAttchmnts').rowIndex);
	}
	
	return false;
}

function validateSrch(e, objHndl, postBackEvent)
{
	if(e.keyCode != 13) return true;
	
	if(objHndl.value=='' || objHndl.value=='keywords')
	{
		alert('Please enter a keyword to search the database for.');
		return false;
	}
	else
	{
		eval(replace(postBackEvent,'&quot;',''));
	}
	return false;
}

function checkSrch(objHndl, postBackEvent)
{
	if(objHndl.value=='' || objHndl.value=='keywords')
	{
		alert('Please enter a keyword to search the database for.');
		return false;
	}
	else
	{
		if(postBackEvent && postBackEvent != "")
			eval(replace(postBackEvent,'&quot;',''));
		else
			return true;
	}
}

function addEvent( obj, type, fn ) {
  if ( obj.attachEvent ) {
    obj['e'+type+fn] = fn;
    obj[type+fn] = function(){obj['e'+type+fn]( window.event );}
    obj.attachEvent( 'on'+type, obj[type+fn] );
  } else
    obj.addEventListener( type, fn, false );
}

function removeEvent( obj, type, fn ) {
  if ( obj.detachEvent ) {
    obj.detachEvent( 'on'+type, obj[type+fn] );
    obj[type+fn] = null;
  } else
    obj.removeEventListener( type, fn, false );
}

Array.prototype.find = function(searchStr) {
	var returnArray = false;
	for (i=0; i<this.length; i++) {
		if (typeof(searchStr) == 'function') {
			if (searchStr.test(this[i])) {
				if (!returnArray) { returnArray = [] }
				returnArray.push(i);
			}
		} else {
			if (this[i]===searchStr) {
				if (!returnArray) { returnArray = [] }
				returnArray.push(i);
			}
		}
	}
	return returnArray;
}

/* hidden argument: bAppend */
function setText(objNodeLbl, objNodeText)
{
	var objNode = document.getElementById(objNodeLbl);
	if(objNode)
	{
		if(setText.arguments[2] && setText.arguments[2] == true)
			objNode.innerHTML += objNodeText;
		else
			objNode.innerHTML = objNodeText;
	}
}