var T=true;
var F=false;
var tempBuf	= "";
var gBufSize=1200;
var m_nOrgId=0;
var MyReload=null;

var xmlhttp=false;
try {	xmlhttp=new ActiveXObject("Msxml2.XMLHTTP");	} catch (e1) {
try {	xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");	} catch (e2) {
try {	xmlhttp=new XMLHttpRequest();					} catch (e3) {alert("You need a browser which supports an XMLHttpRequest Object");}}}
function CreateXMLObject() {
	var xmlhttp2=false;
	try {	xmlhttp2=new ActiveXObject("Msxml2.XMLHTTP");	} catch (e1) {
	try {	xmlhttp2=new ActiveXObject("Microsoft.XMLHTTP");} catch (e2) {
	try {	xmlhttp2=new XMLHttpRequest();					} catch (e3) {alert("You need a browser which supports an XMLHttpRequest Object");}}}
	return xmlhttp2;
}

function RootChangeComplete() {
	if (xmlhttp.readyState!=4) return;
	myReload()
}
function ChangeRoot(obj) {
	if (!xmlhttp) return;
	xmlhttp.open("GET", "AdminActor.aspx?Type=SetAdminOrg&OrgId="+obj.value,true);
	xmlhttp.onreadystatechange=RootChangeComplete
	xmlhttp.send(null)
}
function dw(s){	
	tempBuf+=s;
	if (tempBuf.length>gBufSize) dwFlash();
}		
function dwFlash() {
	document.write(tempBuf);
	tempBuf	= "";
}
function BookDisabled() {genIFd('ifDisabled',null,'MessageBox.aspx?Id=2&Type=2',null,null);}
function lm(id) {genIFd('ifOutoftries','spOut'+id,"PopUpMessage.aspx?Id=OutOfTries",null,'divMain');	}
function MonitorWindow(oWin) {
	if (oWin.closed) {
		myReload();
	}
	else setTimeout(function () {MonitorWindow(oWin)},500);
}
function ExternalBookOpen(oXML,strUrl) {
	if (oXML.readyState!=4) return;
	if (oXML.responseText.indexOf("Error")==0) alert(oXML.responseText);
	else {
		oWind = window.open(oXML.responseText,"","height=520,width=950,top=0,left=0,scrollbars=no,toolbar=no,resizable=yes");
		oWind.focus();
		setTimeout(function () {MonitorWindow(oWind)},5000);
	}
}
function LoadExternalBook(nBookId,strUrl) {
	var oXML	= CreateXMLObject();
	if (!oXML) return;
	oXML.open("GET", "AdminActor.aspx?Type=InsertExternalStatus&BookId="+nBookId,true);
	oXML.onreadystatechange=function() {ExternalBookOpen(oXML,strUrl);}
	oXML.send(null)
	
}
function CheckAll(obj,tblName,strStartsWith) {
	var coll=EById(tblName).getElementsByTagName("INPUT");
	var nLength=coll.length;
	for(var i=0;i<nLength;i++) {
		if (coll[i].id.indexOf(strStartsWith)!=0) continue;
		if (coll[i].disabled) continue;
		coll[i].checked=obj.checked;
	}
}
function PageSearch(nBookId,nSection,strValue,nUserRole) {
	if (nBookId>0)	document.location.href="BookPageSearch.aspx?UserRole="+nUserRole+"&BookId="+nBookId+"&Search="+escape(strValue);
	else			document.location.href="BookSearch.aspx?UserRole="+nUserRole+"&Section="+nSection+"&Search="+escape(strValue);
}
function getLeftPos(oDiv,stopObj) {
	if (stopObj!=null && oDiv==stopObj) return 0;
	if (oDiv==null) return 0;
	return oDiv.offsetLeft+getLeftPos(oDiv.offsetParent,stopObj)
}
function getTopPos(oDiv,stopObj) {
	if (stopObj!=null && oDiv==stopObj) return 0;
	if (oDiv==null) return 0;
	return oDiv.offsetTop+getTopPos(oDiv.offsetParent,stopObj);
}

function PrintFooter(bIsVis) {
	if (bIsVis) document.write('<table width="100%" cellpadding=0 cellspacing=0><tr height=20><td class="AppFooter">Copyright &copy; 2010 <b>CFM Partners</b>. All rights reserved.</td></tr></table>')
}
function EById(id) {return document.getElementById(id)}

function Val1(obj,name) {
	if (obj.value.length>0) {
		EById(name).style.visibility="hidden";
		return true;
	}
	EById(name).style.visibility="visible";
	return false
}

function Val3(obj1,obj2,name) {
	if (obj1.value.length==0 || obj2.value.length==0) {
		EById(name).style.visibility="hidden";
		return true;
	}
	if (obj1.value!=obj2.value) {
		EById(name).style.visibility="visible";
		return false;
	}
	EById(name).style.visibility="hidden";
	return true;
}

function CeckSecurity(strPass) {
	if (strPass.length<6) return false;
	var is_number	= false;
	var is_alpha	= false;
	for (i=0;i< strPass.length;i++) {
		var my_char=strPass.charAt(i);
//		if ( my_char>='0' && my_char<='9') is_number=true;
		if ((my_char>='a' && my_char<='z') || (my_char>='A' && my_char<='Z')) is_alpha=true;
	}
//	if (!is_number)	return false;
	if (!is_alpha)	return false;
	return true;
}

function Security(obj1,obj2,name,name2) {
	if (obj1.value=="********" && obj1.value==obj2.value) {
		EById(name).style.display="none";
		EById(name2).style.display="none";
		return true;
	}
	if (Val3(obj1,obj2,name)) {
		EById(name).style.display="none";
		if (obj1.value.length==0 || CeckSecurity(obj1.value)) {
			EById(name2).style.display="none";
			return true;
		}
		EById(name2).style.display="block";
		return false;
	}
	EById(name2).style.display="none";
	EById(name).style.display="block";
	return false;
}

function Val2(obj,name) {
	while (1) {
		if (obj.value.length==0) break;
		var ind = obj.value.indexOf(" ");
		if (ind<1) break;
		if (ind+1==obj.value.length) break;
		EById(name).style.visibility="hidden";
		return true;
	}
	EById(name).style.visibility="visible";
	return false
}
function ValInt(obj,name,bAllowEmpty,nMax,nLength,nMin) {
	var retVal=true;
	if (obj.value.length==0) retVal=bAllowEmpty;
	else {
		exp = /^\s*[-\+]?\d+\s*$/;
		if (obj.value.match(exp) == null || isNaN(parseInt(obj.value, 10))) retVal=false;
		else {
			if (nMax && (parseInt(obj.value)>nMax)) retVal=false;
			if (nMin && (parseInt(obj.value)<nMin)) retVal=false;
			if (nLength>0 && obj.value.length!=nLength) retVal=false;
		}
	}
	EById(name).style.visibility	= retVal?"hidden":"visible";
	return retVal;
}
function ValidateDate(obj,name) {
	if (obj.value.length==0) {
		EById(name).style.visibility="hidden";
		return true;
	}
	var objConv = ValidatorConvert(obj.value);
	if (objConv) {
		obj.value=objConv;
		EById(name).style.visibility="hidden";
		return true;
	}
	else EById(name).style.visibility="visible";
	return false;
}
function ValidatorConvert(op) {
	function GetFullYear(year) {
		return (year + 2000) - ((year < 2050) ? 0 : 100);
	}
	var num, cleanInput, m, exp;
	var yearFirstExp = new RegExp("^\\s*((\\d{4})|(\\d{2}))([-/]|\\. ?)(\\d{1,2})\\4(\\d{1,2})\\s*$");
	m = op.match(yearFirstExp);
	var day, month, year;
	if (m != null && (m[2].length == 4)) {
		day = m[6];
		month = m[5];
		year = (m[2].length == 4) ? m[2] : GetFullYear(parseInt(m[3], 10))
	}
	else {
		var yearLastExp = new RegExp("^\\s*(\\d{1,2})([-/]|\\. ?)(\\d{1,2})\\2((\\d{4})|(\\d{2}))\\s*$");
		m = op.match(yearLastExp);
		if (m == null) return null;
		day = m[3];
		month = m[1];
		year = (m[5].length == 4) ? m[5] : GetFullYear(parseInt(m[6], 10))
	}
	month -= 1;
	var date = new Date(year, month, day);
	return (typeof(date) == "object" && year == date.getFullYear() && month == date.getMonth() && day == date.getDate()) ? (((month+1)<10?('0'+(month+1)):(month+1))+'/'+day+'/'+year) : null;
}

function MakePhone(el) {
	var strOut	= "";
	if (el.value.length<10) return;
	for(var i=0;i<el.value.length;i++) {
		var ch=el.value.substring(i,i+1);
		if (ch=="1" && i==0) continue;
		switch(ch) {
		case "0":case "1":case "2":case "3":case "4":case "5":case "6":case "7":case "8":case "9":case "x":strOut+=ch;break;
		}
	}
	if (strOut.length>=10) el.value=strOut.substring(0,3)+"-"+strOut.substring(3,6)+"-"+strOut.substring(6);
}
var m_ttFormTab	= null;
function HideSave(id) {
	var span = EById(id);
	if (span) {
		span.style.display="none";
		span=null;
	}
}

function TT_SetTabsForm(obj) {m_ttFormTab = obj;}
function TT_Select(id) {
	if (m_ttFormTab) m_ttFormTab.value=id;
	for(var i=0;i< TT_Ids.length;i++) {
		var tObj	= EById('TT_B'+TT_Ids[i]);
		if (!tObj || TT_Ids[i]==id) continue;
		tObj.style.display="none";
	}
	EById('TT_B'+id).style.display="block";
	var tobj	= EById('tblTabs');
	var coll2= tobj.getElementsByTagName("TD")
	for(var k=0;k< coll2.length;k++) {
		if (coll2[k].className=="cellA") {
			coll2[k].className="cellI";
			continue;
		}
	}
	EById('TT_H'+id).className="cellA";
}

function TabStart() {
	dw('<table cellpadding=0 cellspacing=0 id=tblTabs border=0>')
	dw('<tr>')
}
var TT_Ids	= new Array();
function TabBody(nId,strName,bIsSelected,fnCallback,bNotVisible) {
	TT_Ids[TT_Ids.length]=nId;
	dw(		'<td'+(bNotVisible?' style="display:none")':'')+' id=TT_H'+nId+' class=cell'+(bIsSelected?'A':'I')+' nowrap onClick="TT_Select('+nId+');'+(fnCallback!=null?fnCallback:"")+'">'+strName+'</td>')
	dw(		'<td class=sepR><img src="images/c.gif" height=1 width=4></td>')
}
function TabEnd(strTitle) {
	dw('<td class=sepR width=100%>&nbsp;</td>')
	if (strTitle) dw('<td class=sepR nowrap>'+strTitle+'</td>')
	dw('</tr>')
	dw('</table>')
}

function get_left(oAncor,oScroll,nW,stopObj) {
	var ancLeft	= getLeftPos(oAncor,stopObj);
	if (oScroll) ancLeft+=getLeftPos(oScroll,stopObj)
	var maxObj	= document.body;
	if (stopObj) maxObj=stopObj;

	var pos1 = ancLeft-nW-2+oAncor.offsetWidth;
	var pos2 = ancLeft;
	var bodyW = maxObj.scrollWidth;
	if (maxObj.offsetWidth>bodyW) bodyW=maxObj.offsetWidth;
	if (pos2+nW < bodyW)			{return ""+pos2+"px";}
	if (pos1 > 0 && pos1+nW<bodyW)	{return ""+pos1+"px";}
	if (ancLeft-nW>0)				{return ""+(ancLeft-nW)+"px";}
	if (bodyW>nW)					{return ""+(bodyW-nW-1)+"px";}
	return "0px";

}

function get_top(oAncor,oScroll,nH,stopObj) {
	var ancTop	= getTopPos(oAncor,stopObj);
	if (oScroll) ancTop+=getTopPos(oScroll,stopObj)
	var maxObj	= document.body;
	if (stopObj) maxObj=stopObj;
	var pos1 = ancTop-nH-2;
	var pos2 = ancTop+oAncor.offsetHeight+2;
	var bodyH = maxObj.scrollHeight;
	if (maxObj.offsetHeight>bodyH) bodyH=maxObj.offsetHeight;
	if (pos2+nH < bodyH)	{return ""+pos2+"px";}
	if (pos1 > 0)			{return ""+pos1+"px";}
	if (bodyH>nH)			{return ""+(bodyH-nH-1)+"px";}
	return "0px";
}
function MyPreferences() {
	genIF('ifPopup','sm2','AccountPreferences.aspx')
}
function markAll(myDocBody,CurFrame) {
	try {CurFrame.document.body.ondragover 	= function() {myDocBody.fireEvent("ondragover") } } 
	catch(e) {}
	for(var i=0;i < CurFrame.frames.length;i++) markAll(myDocBody,CurFrame.frames[i]);
}

function unmarkAll(CurFrame) {
	try {CurFrame.document.body.ondragover 	= null; } 
	catch(e) {}
	for(var i=0;i < CurFrame.frames.length;i++) unmarkAll(CurFrame.frames[i]);
}

function FlipVal(formObj) {
	formObj.value=1-formObj.value;
}

function Toggle(muObjN, muImg,oExtra) {
	var myObj = EById(muObjN);
	if(myObj.style.visibility != "visible") {
		myObj.style.visibility = "visible";
		myObj.style.display = "";
		if (oExtra) EById(muImg).src='images/filt_opened'+oExtra+'.gif';
		else		EById(muImg).src='images/filt_opened.gif';
		return true;
	}
	else {
		myObj.style.visibility = "hidden";
		myObj.style.display = "none";
		if (oExtra) EById(muImg).src='images/filt_closed'+oExtra+'.gif';
		else		EById(muImg).src='images/filt_closed.gif';
		return false;
	}
}

function LoadPages(input_obj, target_obj) {
	target_obj.style.display = 'block';
	target_obj.style.left	= get_left(input_obj,null,target_obj.offsetWidth);
	var nTop=get_top(input_obj,null,target_obj.offsetHeight);
	target_obj.style.top	= get_top(input_obj,null,target_obj.offsetHeight);
}
function gPages(nPageId,nTotalRecords,nPageSize) {
	var PagesVisible=7;
	var TotalVisible=PagesVisible*2+1
	if (nTotalRecords==0) return dw("<font color=red>[None]</font>");
	var start=nPageId-PagesVisible;
	var end=nTotalRecords/nPageSize
	var l=false
	if (start+TotalVisible<end) {end=start+TotalVisible;l=true}
	var z=(start>=0?start:0);
	var t=-1;	
	for(var i=z;i<end;i++) {	
		t=(((t==-1)&&(z>0))||((i==end-1)&&l))?'...':(i+1);
		if (i==nPageId) dw(" <span class=ntadmin style='color:#A90A08'><b>"+(i+1)+"</b></span> ")
		else			dw(" <a title='Load Page "+(i+1)+"' class=nladmin href='javascript:lPage("+i+")'>"+(t)+"</a> ")
	}
}
function lPage(pageId) {
	document.forms[0].hdPageId.value=pageId;
	if (MyReload) MyReload();
	else if (myReload) myReload();
}
function PageSizeApply(nPageSize) {
	document.forms[0].hdPageSize.value=nPageSize;
	if (MyReload) MyReload();
	else if (myReload) myReload();
}
function genRecords(nRecordStart,nRecordEnd,nTotalRecords) {
	if (nTotalRecords>0)	document.write('Records '+nRecordStart+' - '+nRecordEnd+' of '+nTotalRecords);
	else					document.write('Records: <span style="color:red">[None]</span>');
}
function DelRow(el) {
	while(el && el!=null && el.tagName!="TR") el=el.parentNode;
	el.parentNode.removeChild(el);
}

// quick filters start
var __objs		= new Array()
var nTimeId		= 0;
var strPrevFilt	= "";		
function FilterNames(oCountName,fI,alNames,bSkipAlt) {
	if (nTimeId>0) clearTimeout(nTimeId);
	nTimeId = setTimeout(function() {RunFilt(oCountName,fI,alNames,bSkipAlt);},200);
}
function RunFilt(oCountName,fI,alNames,bSkipAlt) {
	m_nRCount=0;
	var mFiltr = fI.value.toLowerCase();
	if (strPrevFilt==mFiltr) return;
	isAlt=true;
	for (var id in alNames) {
		if (mFiltr.length==0 || alNames[id].indexOf(mFiltr)>=0) {
			__objs[id].style.display="";
			if (!bSkipAlt) __objs[id].className=(isAlt?"t1":"t2");
			isAlt=!isAlt
			m_nRCount++;
		}
		else __objs[id].style.display="none";
	}
	nTimeId=0;
	if (oCountName) {
		var oTemp	= EById(oCountName)
		if (oTemp.innerText) oTemp.innerText=m_nRCount;
		else oTemp.textContent=m_nRCount
		
	}
	strPrevFilt=mFiltr;
}
function CreateIndex(oTblName,nLengthIn) {
	var coll = EById(oTblName).getElementsByTagName('TR');
	var nLength=coll.length;
	for(i=0;i<nLength;i++) {
		if (!coll[i].id) continue;
		__objs[coll[i].id.substring(nLengthIn)]=coll[i];
	}
}
function InitializeFilters(oTblName,nLength) {
	setTimeout(function () {CreateIndex(oTblName,nLength);},100);
}
function LoadBook(id,bMod,bSkipTOC,strTitle)	{	
	var strName="BookTOC.aspx";
	if (bSkipTOC) strName="BookNavigate.aspx"
	if (bMod) {
		showModalDialog('modelessdialog.aspx?title='+escape(strTitle)+'&modelessdocument='+strName+'&BookId='+id, {opener: window}, 'dialogHeight:640px; dialogWidth:920px; center: yes; status: no; scroll: no; help: no; resizable: yes;');
		LoadBookList();
	}
	else location.href=strName+"?BookId="+id;		
}
function LoadBookE(id)	{	location.href="BookEdit.aspx?BookId="+id;		}
function GetRBValue(obj) {
	for(i=0;i<obj.length;i++) {
		if (obj[i].checked) return obj[i].value;
	}
}
var m_oWind = null;
function CloseWindow() {if (m_oWind && m_oWind.open && !m_oWind.closed) m_oWind.close();}
function OpenWindow(pop,ht,wd,sb,tb,rt) {
//	document.body.focus();
//	CloseWindow();
	m_oWind = window.open(""+pop+"","","height="+ht+",width="+wd+",top=0,left=0,scrollbars="+sb+",toolbar="+tb+",resizable="+rt+"");
	m_oWind.focus();
}
if (typeof(showModalDialog)=='undefined') {
	showModalDialog=function (url) {window.open(url,'popprint','scrollbars=yes,toolbar=no,resizable=yes,width=800,height=530')}
}
// quick filters start
function DictLoaded(ooo) {
	if (ooo.readyState!=4) return;
	if (myReload) myReload();
}
function LoadDict(nId) {
	mObj = CreateXMLObject();
	mObj.open("GET", "AdminActor.aspx?Type=ChangeDict&DictId="+nId,true);
	mObj.onreadystatechange=function () {DictLoaded(mObj);}
	mObj.send(null)
}
function GDic(nId,strName,bFirst,bSelected) {
	if (!bFirst) dw('<td>&nbsp;|&nbsp;</td>');
	if (bSelected)	dw('<td class=ntadmin>'+strName+'</td>');
	else			dw('<td><a class=nladmin href="javascript:LoadDict('+nId+')">'+strName+'</a></td>');
}	