
//------------------------
//[ aejwJS aka.aejwatlas ]
//------------------------
//   (c)2006-2008 aejw.com - http://www.aejw.com/ - all rights reserved
//   build: 0144

var aejw=function(){
	var aejw_init=false;

	//[ events ]
	var aejw_eventIndex=[],aejw_eventBindLoadTimer=0;

	//[ metrics ]
	var aejw_metricsMouseX=0,aejw_metricsMouseY=0,aejw_metricsCapture=false;

	//[ propBag ]
	var aejw_propBagIDs=null,aejw_propBagValues=null;

	//[ panels ]
	var aejw_panels_hideTimers=new Array();
	var aejw_panels_last=null;

	return{
		
//-------------------
//[ dom and general ]
//-------------------

	get:function(element){
		if(typeof(element)=='object'){return(element);}
		if(document.getElementById&&document.getElementById(element)){return(document.getElementById(element));}else if(document.all&&document.all(element)){return(document.all(element));}else if(document.layers&&document.layers[element]){return(document.layers[element]);}var o=eval('document.'+element);if(o!=null) return(o);
	},
	getStyle:function(element){
		aejw.domSupport();
		var elementObj=aejw.get(element);
		if(elementObj==null){return(null);}		
		if(document.aeDOMsupport==3){
			return(elementObj);
		}else if(document.aeDOMsupport!=0){
			return(elementObj.style);
		}
		return(null);
	},
	getFromEvent:function(ev){if(!ev||ev==null){ev=window.event;}if(ev.originalTarget){return(ev.originalTarget);}else if(ev.srcElement){return(ev.srcElement);}},	
	setInner:function(element,innerText){
		var elementInner=null;
		if(typeof(element)=='object'){elementInner=element;}
		if(document.getElementById){
			if(elementInner==null){elementInner=document.getElementById(element);}
			elementInner.innerHTML='';
			elementInner.innerHTML=innerText;
		}else if(document.all){
			if(elementInner==null){elementInner=document.all(element);}
			elementInner.innerHTML=innerText;
		}else if(document.layers){
			if(elementInner==null){elementInner=document.layers[element];}
			elementInner.document.open();
			elementInner.document.write('<p style="margin:0px:padding:0px;">'+innerText+'</p>');
			elementInner.document.close();
		}
	},
	isDef:function(element){return(typeof(element)!='undefined');},
	isHidden:function(elementID){var ost=aejw.getStyle(elementID);return((ost&&ost.visibility=='hidden'));},
	isVisible:function(elementID){var ost=aejw.getStyle(elementID);return(!ost||(ost.visibility!='hidden'&&ost.display!='none'));},
	isCollapsed:function(elementID){var ost=aejw.getStyle(elementID);return((ost&&ost.display=='none'));},
	hide:function(elementID){var ost=aejw.getStyle(elementID);if(ost){ost.visibility='hidden';ost.display='block';}},
	collapse:function(elementID){var ost=aejw.getStyle(elementID);if(ost){ost.visibility='hidden';ost.display='none';}},
	show:function(elementID){var ost=aejw.getStyle(elementID);if(ost){ost.visibility='visible';ost.display='block';};},
	salt:function(){return String.fromCharCode(97+Math.round(Math.random() * 25))+String.fromCharCode(97+Math.round(Math.random() * 25))+String.fromCharCode(97+Math.round(Math.random() * 25))+String.fromCharCode(97+Math.round(Math.random() * 25));},

//--------------
//[ validation ]
//--------------

	canUseAJAX:function(){
		return(aejw.ajaxObject()!=null);
	},

	canUseDOM:function(){
		return(aejw.domSupport!=0);
	},

	canModifyDocument:function(){
		if(typeof(document.aeCanCreate)!='undefined'){return(document.aeCanCreate);}
		document.aeCanCreate=(document.documentElement&&document.createElement&&document.createTextNode);
		return(document.aeCanCreate);
	},

	// return 1 for getElement, 2 IE .all, 3 for NS .layers, 0 for no support
	domSupport:function(){
		if(typeof(document.aeDOMsupport)!='undefined'){return(document.aeDOMsupport);}		
		if(document.getElementById){document.aeDOMsupport=1;}else if(document.all){document.aeDOMsupport=2;}else if(document.layers){document.aeDOMsupport=3;}else{document.aeDOMsupport=0;}
		return(document.aeDOMsupport);
	},

//// ==== document.documentElement
//// ==== document.getElementsByTagName

//-----------------
//[ property bays ]
//-----------------

	propXYWH:function(oX,oY,oW,oH) {
		return{
			x:oX,
			y:oY,
			width:oW,
			height:oH
		};
	},

//----------
//[ events ]
//----------

	eventBind:function(elementObj,eventName,functionCall,stopEvent){
		var token=-1;
		eventName=aejw.eventRefineName(eventName);		
		if(!document.aeEventBindInit){
			document.aeEventBindInit=true;
			aejw.eventBind(window,'unload',aejw._eventDispose,false);
		}
		stopEvent=!(!stopEvent||stopEvent==null||stopEvent==0);
		if(elementObj.addEventListener){
			elementObj.addEventListener(eventName,functionCall,stopEvent);
			token=0;
		}else if(elementObj.attachEvent){
			token=elementObj.attachEvent('on'+eventName,functionCall);
		}else{
			elementObj['on'+eventName]=functionCall;
			if(typeof(elementObj['on'+eventName])!='function'){
				if(aejw_eventBindLoadTimer==0&&eventName=='load'){
					aejw_eventBindLoadTimer=setTimeout(overLoad+'(window.event);',3000);
				}
			}
		}
		if(token>-1){
			aejw_eventIndex.push(arguments);
		}
		return(token);
	},
		
	eventUnbind:function(elementObj,eventName,functionCall,stopEvent){
		eventName=aejw.eventRefineName(eventName);
		if(elementObj.removeEventListener){
			elementObj.removeEventListener(eventName,functionCall,stopEvent);
		}else if(elementObj.detachEvent){
			elementObj.detachEvent('on'+eventName,functionCall);
		}else{
			elementObj['on'+eventName]=null;
		}
	},
	eventRefineName:function(eventName){if(eventName.length>2&&eventName.substring(0,2)=='on'){eventName=eventName.substring(2,eventName.length);}if(eventName=='unload'){eventName=((typeof(window.onbeforeunload)!='undefined')?'beforeunload':'unload');}return(eventName);},
	eventStop:function(ev){
		if(!ev||ev==null){return;}
		if(ev.preventDefault){
			ev.preventDefault();
			ev.stopPropagation();
		}else{
			ev.returnValue=false;
			ev.cancelBubble=true;
		}
	},
	_eventDispose:function(){
		if(document.aeEventBindInit==false){return;}
		for(var i=aejw_eventIndex.length-1;i>=0;i--){
			aejw.eventUnbind(aejw_eventIndex[i][0],aejw_eventIndex[i][1],aejw_eventIndex[i][2],!(!aejw_eventIndex[i][3]||aejw_eventIndex[i][3]==null||aejw_eventIndex[i][3]==0));
		}
		aejw_eventIndex=[];
		document.aeEventBindInit=false;
	},

//-----------
//[ metrics ]
//-----------

	portalL:function(){var i=(document.documentElement.scrollLeft>0)?document.documentElement.scrollLeft:document.body.scrollLeft;return(i);},
	portalT:function(){var i=(document.documentElement.scrollTop>0)?document.documentElement.scrollTop:document.body.scrollTop;return(i);},
	portalW:function(){var i=0;if(document.documentElement&&document.documentElement.clientWidth){i=document.documentElement.clientWidth;}else if(typeof(window.innerWidth)=='number'){i=window.innerWidth;}else if(document.body&&document.body.clientWidth){i=document.body.clientWidth;}return(i);},
	portalH:function(){var i=0;if(document.documentElement&&document.documentElement.clientHeight){i=document.documentElement.clientHeight;}else if(typeof(window.innerHeight)=='number'){i=window.innerHeight;}else if(document.body&&document.body.clientHeight){i=document.body.clientHeight;}return(i);},
	portalR:function(){return(aejw.portalW()+aejw.portalL());},
	portalB:function(){return(aejw.portalH()+aejw.portalT());},	

	mouseX:function(){return(aejw_metricsMouseX);},
	mouseY:function(){return(aejw_metricsMouseY);},
	_startMouseCapture:function(){if(aejw_metricsCapture){return;}aejw.eventBind(document,'mousemove',aejw._captureMouseEvent);aejw_metricsCapture=true;},
	_captureMouseEvent:function(browserEvent){if(document.captureEvents){aejw_metricsMouseX=browserEvent.pageX;aejw_metricsMouseY=browserEvent.pageY;}else if(window.event.clientX){aejw_metricsMouseX=window.event.clientX+document.documentElement.scrollLeft;aejw_metricsMouseY=window.event.clientY+document.documentElement.scrollTop;}},
	
	getX:function(element){
		element=aejw.get(element);
		var curleft=0;
		if(element.offsetParent){
			while(element.offsetParent){
				curleft+=element.offsetLeft;
				element=element.offsetParent;
			}
		}else if(element.x){
			curleft+=element.x;
		}else if(element.offsetLeft){
			curleft+=element.offsetLeft;
		}		
		return(curleft);
	},
	getY:function(element){
		element=aejw.get(element);
		var curtop=0;		
		if(element.offsetParent){
			while(element.offsetParent){
				curtop+=element.offsetTop;
				element=element.offsetParent;
			}			
		}else if(element.y){
			curtop+=element.y;			
		}else if(element.offsetTop){
			curtop+=element.offsetTop;
		}		
		return(curtop);
	},
	getW:function(element){
		element=aejw.get(element);
		if(element.clip){
			return(element.clip.width);
		}else if(element.style.pixelWidth){
			return(element.style.pixelWidth);
		}else{
			return(element.offsetWidth);
		}
	},
	getH:function(element){
		element=aejw.get(element);
		if(element.clip){
			return(element.clip.height);
		}else if(element.style.pixelHeight){
			return(element.style.pixelHeight);
		}else{
			return(element.offsetHeight);
		}
	},

//---------
//[ spawn ]
//---------

	newDialog:function(wndHref,width,height,windowName){if(!windowName||windowName==null||windowName==''){windowName='rnd'+aejw.salt();}if(!width||width==null||width==''){width='640';}if(!height||height==null||height==''){height='480';}window.open(wndHref,windowName,'width='+width+',height='+height+',resizable,location=yes,scrollbars=yes,status=yes');return false;},
	newBrowser:function(wndHref,width,height,windowName){if(!windowName||windowName==null||windowName==''){windowName='rnd'+aejw.salt();}if(!width||width==null||width==''){width='640';}if(!height||height==null||height==''){height='480';}window.open(wndHref,windowName,'width='+width+',height='+height+',resizable,location=yes,toolbar=yes,menubar=yes,scrollbars=yes,status=yes');return false;},

//--------
//[ ajax ]
//--------

	ajaxCall:function(url, returnCallback, method){
		if(!method||method==null){method='get';}
		var reqObj=aejw.ajaxObject();
		reqObj.onreadystatechange= function(){
			// 0 (uninitialized) 1 (loading) 2 (loaded) 3 (interactive) 4 (complete) 
			if(reqObj.readyState!=4) return;
			//if(reqObj.status!=200) return;
			returnCallback(reqObj.responseText);
		}
		try{
			// 'http://localhost/p27/default.aspx?ig='+escape(url)+'&format=text'
			//alert(url);
			reqObj.open(method, url, true);
			reqObj.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
			reqObj.setRequestHeader('User-Agent', 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.0.3705)');
			reqObj.send(null);
		}catch(e){				
		}
	},
	ajaxObject:function(){
		try{if(netscape.security){netscape.security.PrivilegeManager.enablePrivilege('UniversalBrowserRead');}}catch(e){}
		var httpRequest=null;
		if(window.XMLHttpRequest){
			httpRequest=new XMLHttpRequest();
			if (httpRequest.overrideMimeType) {
				httpRequest.overrideMimeType('text/xml');
			}
		}else if(window.ActiveXObject){
			try{httpRequest=new ActiveXObject('MSXML3.XMLHTTP');
			}catch(e){
				try{httpRequest=new ActiveXObject('MSXML2.XMLHTTP');
				}catch(e){
					try{httpRequest=new ActiveXObject('Microsoft.XMLHTTP');
					}catch(e){}
				}
			}
		}
		return httpRequest;
	},

/**
 * Creates an HTTP POST request and sends the response to the callback function
 *
 * Note: passing null or undefined for 'object' makes the request fail in Opera 8.
 *       Pass an empty string instead.
 
function HTTPPost(uri, callbackFunction, callbackParameter, object) {
  var xmlHttp=new XMLHttpRequest();
  var bAsync=true;
  if (!callbackFunction) {
    bAsync=false;
  }
  xmlHttp.open('POST', uri, bAsync);

  var toSend='';
  if (typeof object == 'object') {
    xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    for (var i in object) {
      toSend += (toSend ? '&' : '') + i + '=' + encodeURIComponent(object[i]);
    }
  }
  else {
    toSend=object;
  }
  xmlHttp.send(toSend);

  if (bAsync) {
    if (callbackFunction) {
      xmlHttp.onreadystatechange=function() {
        if (xmlHttp.readyState == 4) {
          callbackFunction(xmlHttp.responseText, xmlHttp, callbackParameter);
        }
      }
    }
    return xmlHttp;
  }
  else {
    return xmlHttp.responseText;
  }
}
*/

//---------
//[ panel ]
//---------

	panelHide:function(elementID){
		if(!aejw_init){return;}
		if(!elementID||elementID==null||elementID.length==0){elementID=aejw_panels_last;}
		if(!elementID||elementID==null||elementID.length==0){return;}
		var panelTimerID=null;
		var panelTimerPos=-1;
		for(var i=0;i<aejw_panels_hideTimers.length;i++){
			var k=(aejw_panels_hideTimers[i]).indexOf(':');
			if((aejw_panels_hideTimers[i]).substring(0,k)==elementID){
				panelTimerID=parseInt((aejw_panels_hideTimers[i]).substring(k+1));
				panelTimerPos=i;
				break;
			}
		}
		if(panelTimerID!=null){
			clearTimeout(panelTimerID);
			aejw_panels_hideTimers.splice(panelTimerPos,1);
		}
		panelTimerID=setTimeout('aejw._hidePanel(\''+elementID+'\');',150-(10*aejw_panels_hideTimers.length));
		aejw_panels_hideTimers[aejw_panels_hideTimers.length]=elementID+':'+panelTimerID;
	},

	panelHold:function(elementID){
		if(!aejw_init){return;}
		if(aejw_panels_hideTimers.length==0){return;}
		if(!elementID||elementID==null||elementID.length==0){elementID=aejw_panels_last;}
		if(!elementID||elementID==null||elementID.length==0){return;}
		var panelTimerID=null;
		var panelTimerPos=-1;
		for(var i=0;i<aejw_panels_hideTimers.length;i++){
			var k=(aejw_panels_hideTimers[i]).indexOf(':');
			if((aejw_panels_hideTimers[i]).substring(0,k)==elementID){
				panelTimerID=parseInt((aejw_panels_hideTimers[i]).substring(k+1));
				panelTimerPos=i;
				break;
			}
		}
		if(panelTimerID==null||panelTimerPos<0){return;}
		clearTimeout(panelTimerID);
		aejw_panels_hideTimers.splice(panelTimerPos,1);
	},

	_hidePanel:function(elementID){
		var element=aejw.getStyle(elementID);
		if(element!=null){
			element.visibility='hidden';
			element.left=0;
			element.top=0;
		}
		aejw.panelHold(elementID);
		if(elementID==aejw_panels_last){
			aejw_panels_last=null;
		}
	},

	panel:function(tipContents,tipName,attachToID,tipSettings){

		// check params
		if(!aejw_init) return;
		if(!tipName||tipName==null||tipName.length==0){tipName='tooltip';}
		if(!tipSettings||tipSettings==null||!tipSettings.indexOf){tipSettings='';}

		// set active tooltip
		if(tipSettings.indexOf('join;')==-1){
			if(!tipContents&&tipContents!=null){
				aejw.panelHide();
				return;
			}
			if(aejw_panels_last!=null&&aejw_panels_last.length>0){
				aejw._hidePanel(aejw_panels_last);
			}
			aejw_panels_last=tipName;
		}


		// collect element
		var objAttach=aejw.get(tipName);
		var oObjStyle=aejw.getStyle(tipName); 
		if(oObjStyle==null||objAttach==null){
			return;	
		}

		// prepare tip contents
		if(!tipContents||tipContents==null){tipContents='';}
		if(tipContents.replace){
			while(tipContents.indexOf('\n')>-1){tipContents=tipContents.replace('\n','<br/>');}
			while(tipContents.indexOf('|[|')>-1){tipContents=tipContents.replace('|[|','<');}
			while(tipContents.indexOf('|]|')>-1){tipContents=tipContents.replace('|]|','>');}
		}	
		if(tipContents!=null&&tipContents!=''&&tipContents!='#'){
			aejw.setInner(objAttach,tipContents);	
		}

		// collect settings / vars
		aejw.propBag(tipSettings);			
		var iX=0,iY=0;
		var rightAlign=((aejw.propBagStr('right')!=null)||(aejw.propBagStr('rightAlign')!=null));
		var iOffsetX=aejw.propBagInt('offsetX');
		var iOffsetY=aejw.propBagInt('offsetY');
		var iWidth=aejw.propBagInt('width');
		var iHeight=aejw.propBagInt('height');

		// collect x and y
		var attachToObject=null;
		if(attachToID){
			attachToObject=aejw.get(attachToID);
			if(attachToObject&&attachToObject!=null){
				iY=aejw.getY(attachToID);			
				iX=aejw.getX(attachToID);
			}
		}else{
			iX=aejw.mouseX()+12;
			iY=aejw.mouseY()+12;
		}
		if(iOffsetX>0){iX+=iOffsetX;}
		if(iOffsetY>0){iY+=iOffsetY;}

		//if(oObjStyle.visibility!='visible'&&oObjStyle.visibility!='show'){		

			var objWidth = aejw.getW(objAttach);
			var bodyWidth = aejw.portalR();			
			
			if(rightAlign==true && attachToObject && attachToObject!=null){
				iX+=attachToObject.offsetWidth-aejw.get(tipName).offsetWidth;
			}
			if((iX+objWidth)>=bodyWidth){
				iX=(bodyWidth-objWidth);
			}

			oObjStyle.left=iX+'px';			
			oObjStyle.top=iY+'px';
			if(iWidth&&iWidth!=null&&iWidth>0){
				oObjStyle.width=iWidth+'px';
			}else{
				oObjStyle.width='auto';
			}
			if(iHeight&&iHeight!=null&&iHeight>0){
				oObjStyle.height=iHeight+'px';
			}else{
				oObjStyle.height='auto';
			}

			oObjStyle.visibility='visible';
		//}

	},

//-----------
//[ propBag ]
//-----------

	propBag:function(propStr){

		aejw_propBagIDs=new Array();
		aejw_propBagValues=new Array();
		if(!propStr||propStr==null){return;}else{propStr=propStr+';';}

		var j=0,k=-2,o=0;
		var itemName='',itemValue='';
		while(j!=-1){
			j=propStr.indexOf(';',j+1);
			if(j>-1){
				itemName=propStr.substring(k+2,j);
				itemValue='';
				o=itemName.indexOf('=');
				if(o!=-1){
					itemValue=itemName.substring(o+1, itemName.length);
					itemName=itemName.substring(0,o);
				}
				if(itemName.length>0){
					aejw_propBagIDs.push(itemName);
					aejw_propBagValues.push(itemValue);
				}
				k=j-1;
			}
		}
		//aejw_propBagIDs.reverse();
		//aejw_propBagValues.reverse();

	},

	propBagInt:function(valueID){
		var z=aejw.propBagStr(valueID);
		if(z==null){
			return 0;
		}else{
			z=parseInt(z);
		}
		return z;
	},

	propBagStr:function(valueID){			
		// collect settings / vars
		var retValue=null;
		for(k=0;k<=(aejw_propBagIDs.length-1);k++){
			if(aejw_propBagIDs[k]==valueID){
				retValue=aejw_propBagValues[k];
				break;
			}
		}
		return retValue;			
	},

//--------------
//[ panel:menu ]
//--------------

	assignMenu:function(elementID,menuContents,level){
		if(!level||level==null||level==''||level<1){level=1;}
		var objAttach=aejw.get(elementID);

		// on mouse over	
		aejw.eventBind(objAttach,'mouseover',function(){	

			var objPanel=aejw._mnuCreate(level);
			var i=0; var j=-1;
			while(true){
				i=menuContents.indexOf('|', j+1);
				if(i==-1){
					i=menuContents.length;			
				}
				var menuEntry=menuContents.substring(j+1,i);			
				var hrefLink=null;
				var confirmMessage=null;
				var k=menuEntry.indexOf(':');
				if(k>-1){
					hrefLink=menuEntry.substring(k+1,menuEntry.length);
					if(hrefLink.substring(0,1)=='('){					
						var o=hrefLink.indexOf(')',2);
						if(o>-1){
							confirmMessage=hrefLink.substring(1,o);
							hrefLink=hrefLink.substring(o+1);
							if(confirmMessage==''){confirmMessage=null;}						
						}
					}
				}			
				switch(menuEntry.substring(0,1)){
				case '#':
					menuEntry=menuEntry.substring(1,menuEntry.length);
					aejw._mnuItem(objPanel,'b',menuEntry)
					break;
				case '-':			
					if(k>-1){
						hrefLink='p27navigate(\''+hrefLink+'\''
						if(confirmMessage!=null){hrefLink+=',\''+confirmMessage+'\''}
						hrefLink+=');'
					}
					break;
				case '+':
					if(k>-1){
						hrefLink='p27dialog(\''+hrefLink+'\''
						if(confirmMessage!=null){hrefLink+=',\''+confirmMessage+'\''}
						hrefLink+=');'
					}
					break;
				case '[':
					k=-1;
					var f=menuContents.indexOf(']]', j+2);
					if(f>-1){
						k=menuContents.indexOf(':', j+2);
						var moreEnds=0;
						var zz=j;
						while(true){
							zz=menuContents.indexOf('[[', zz+2);
							if(zz>-1&&zz<f){
								moreEnds++;
							}else{break;}
						}
						for(var zz=1; zz<=moreEnds;zz++){
							f=menuContents.indexOf(']]', f+2);
						}

					}
					if(f>-1&&k>-1&&k<f){
						aejw._mnuItemSub(objPanel,menuContents.substring(j+3,k),menuContents.substring(k+1,f),level)
						i=f+1;
					}else{
						aejw._mnuItemErr(objPanel,'invalid \'[[ : ]]\' structure');
					}
					hrefLink=null
					break;
				case '':
					break;
				default:
					aejw._mnuItemErr(objPanel,'invalid \''+menuEntry.substring(0,1)+'\' in menu');
					break;
				}
				if(hrefLink!=null){
					aejw._mnuItem(objPanel,'span',menuEntry.substring(1,k),'javascript:var x='+hrefLink+'')
				}
				if(i>=menuContents.length){break;}
				j=i;

			}		

			if(level>1){

				aejw.panelHold('aejwMnu'+level);
				aejw.panel(null,'aejwMnu'+level,elementID,'join;offsetX='+aejw.getW(elementID)+';offsetY=0;');

				aejw.eventBind(objPanel,'mouseover',function(){
					for(var ii=(level);ii>0;ii--){
						aejw.panelHold('aejwMnu'+(ii-1)+'');
					}
				});

				aejw.eventBind(objPanel,'mouseout',function(){
					for(var ii=1;ii<=level;ii++){
						aejw.panelHide('aejwMnu'+(ii-1)+'');
					}
				});

			}else{
				aejw.panel(null,'aejwMnu'+level,elementID,'offsetX=0;offsetY=22;');
			}

		});

		// on mouse out
		aejw.eventBind(objAttach,'mouseout',function(){

			aejw.panelHide('aejwMnu'+level);

		});

	},

	_mnuItem:function(objPanel,tag,caption,link){
		//var element=document.createElement(tag);
		//if(tag=='div'){
			//element.style.paddingLeft='10px';
			//element.style.clear='left';
			//element.style.float='left';
		//}		
		if(link&&link!=null){
			var elementA=document.createElement('a');
			while(link.indexOf('&amp;')>-1){link=link.replace('&amp;','&');}
			elementA.setAttribute('href', unescape(link));
			aejw.setInner(elementA, caption.replace(' ','&nbsp;'));
		
			var elementS=document.createElement('span');
			aejw.setInner(elementS, '&nbsp;&nbsp;&nbsp;');
			
			objPanel.appendChild(elementS);
			objPanel.appendChild(elementA);
			//elementA.appendChild(element);
		}else{
			var element=document.createElement(tag);
			aejw.setInner(element, caption.replace(' ','&nbsp;'));
			objPanel.appendChild(element);
		}
		objPanel.appendChild(document.createElement('br'));
	},

	_mnuItemSub:function(objPanel,caption,items,level){
		var element=document.createElement('span');
		element.id='p27m'+aejw.salt();	

		//element.style.paddingLeft='10px';
		//element.style.clear='left';
		//element.style.float='left';

		var elementS=document.createElement('span');
		aejw.setInner(elementS, '&nbsp;&nbsp;&nbsp;');		
		aejw.setInner(element, caption.replace(' ','&nbsp;'));
		
		objPanel.appendChild(elementS);
		objPanel.appendChild(element);
		objPanel.appendChild(document.createElement('br'));

		aejw.assignMenu(element.id,items,level+1);
	},

	_mnuItemErr:function(objPanel,caption){
		var element=document.createElement('div');
		element.className='p27error';
		aejw.setInner(element, caption.replace(' ','&nbsp;'));
		objPanel.appendChild(element);
	},

	_mnuCreate:function(level){
		var element=aejw.get('aejwMnu'+level);
		if(element&&element!=null){
			element.parentNode.removeChild(element);
		}
		element=document.createElement('div');
		element.id='aejwMnu'+level;
		element.className='p27tooltip';
		aejw.eventBind(element,'mouseout',function(){aejw.panelHide('aejwMnu'+level);});
		aejw.eventBind(element,'mouseover',function(){aejw.panelHold('aejwMnu'+level);});
		aejw.get('p27elements').appendChild(element);
		return element;
	},

//--------------
//[ aejw / end ]
//--------------
	_initaejw:function(ev){
		aejw._startMouseCapture(ev);
		aejw_init=true;
	}
	};}();
	aejw.eventBind(window,'load',function(){aejw._initaejw();});

//---------------
//[ portal27 JS ]
//---------------

function p27page()
{

	this.btnInitArray=new Array();
	this.bidInitArray=new Array();
	this.altInitArray=new Array();
	
	this.btn=function(btn,jsid,altStyle) { 
		this.btnInitArray[this.btnInitArray.length]=btn; 
		if(jsid==null){jsid='';}
		this.bidInitArray[this.bidInitArray.length]=jsid;
		if(altStyle==null){altStyle='';}
		this.altInitArray[this.altInitArray.length]=altStyle;
		return this;
	}
	
	this.init=function(){ 
		for( i=0 ; i < this.btnInitArray.length ; i++ ){
			p27attachBtn(this.btnInitArray[i],this.bidInitArray[i],this.altInitArray[i]);
		}
		this.btnInitArray=new Array();
		this.bidInitArray=new Array();
		this.altInitArray=new Array();		
	}

	this.signout=function(){ 
		if(confirm('Are you sure you wish to Sign-out\nof your site account?\n\n(Sign-out will also remove auto sign-in...)')){
			var currentUrl=''+document.location;
			if(currentUrl.indexOf('&portalReq=',0)>-1){currentUrl=currentUrl.substring(0,currentUrl.indexOf('&portalReq=',0))}
			if(currentUrl.indexOf('?',0)==-1){currentUrl+='?'}else{currentUrl+='&'}
			document.location=currentUrl+'portalReq=signout';		
		}
		return false;	
	}
	
}
var p27 = new p27page;

function p27navigate(navAddress, confirmText){
	if(confirmText&&confirmText!=null){
		if(!confirm(confirmText)){
			return false;
		}
	}
	document.location=p27link(navAddress);
	return false;
}

function p27dialog(navAddress){
	aejw.newDialog(p27link(navAddress), 780, 520, 'p27dialog');
	return false;
}

function p27browse(navAddress){
	aejw.newBrowser(p27link(navAddress), 780, 520, 'p27dialog');
	return false;
}

function p27link(navAddress){	
	if(!navAddress||navAddress == null)
		navAddress='';
	var appenedParam='';	
	if(navAddress.indexOf('://') > -1){
		return navAddress;
	}
	if(navAddress.indexOf('.') > -1 ){
		if(navAddress.indexOf('&') == -1 || (navAddress.indexOf('&') > navAddress.indexOf('.'))){
			return p27_pathToRoot+navAddress;
		}
	}
	if(navAddress.indexOf('=') == -1 || (navAddress.indexOf('&') > -1 && navAddress.indexOf('=') > navAddress.indexOf('&'))){
		navAddress='page='+navAddress;
	}
	navAddress=navAddress.replace('&amp;','&');
	if(p27_linkFormat=='1' && (navAddress.length > 5 && navAddress.substring(0,5)=='page=')){
		var x = navAddress.indexOf('&');
		if(x==-1) x=navAddress.length;
		return (p27_pathToRoot+navAddress.substring(5,x)+'.aspx'+navAddress.substring(x)).replace('.aspx&','.aspx?');
	}else{
		return p27_pathToRoot+'default.aspx?'+navAddress;
	}
}

function p27togglePanel(panelID){
	if(!aejw.isVisible(panelID)){
		aejw.show(panelID);
		aejw.get(panelID+'img').src=p27_pathToRoot+'p27/res/icoMinus.gif';
	}else{
		aejw.collapse(panelID);
		aejw.get(panelID+'img').src=p27_pathToRoot+'p27/res/icoPlus.gif';
	}
	return false;
}

// [ button (p27) ]
//
var _lastSet;
var _lastTimer=0;
var _lastClassOut=0;
var _p27btnActiveJSid=null;

function p27hoverOver(o,classOver,jsid){
	if( _lastTimer!=0&&_lastClassOut !=null){
		if(jsid!=null&&jsid!=''){
			_p27btnActiveJSid	= jsid;
		}else{
			_p27btnActiveJSid	= null;
		}
		p27hoverOut(null,_lastClassOut);
		clearTimeout(_lastTimer);
		_lastTimer=0;
		_lastClassOut=null;
	}	
	o.className=classOver;
	return false;
}

function p27hoverOut(o,classOut){
	if(o!=null){
		_lastSet=o;
		if(_lastTimer>0){clearTimeout(_lastTimer);}
		_lastTimer=setTimeout('p27hoverOut(null,\''+classOut+'\');',50);
		_lastClassOut=classOut;
	}else{
		_lastSet.className=classOut;
		clearTimeout(_lastTimer);
		_lastTimer=0;
		_lastClassOut=null;
		_lastSet=null;
	}
}

function p27attachBtn(btnID,jsid,altStyle){
	var bo=aejw.get(btnID);	
	if(!bo||bo == null) return;
	if(!altStyle||altStyle == null) altStyle='';
	if(bo.className!='p27btn'+altStyle+'Sel'){
		aejw.eventBind(bo,'mouseover',function(){
			if(typeof(p27hoverOver)=='function'){
				p27hoverOver(bo,'p27btn'+altStyle+'Hover',jsid);
			}
		});
		aejw.eventBind(bo,'mouseout',function(){
			if(typeof(p27hoverOut)=='function'){
				p27hoverOut(bo,'p27btn'+altStyle+'Normal');
			}
		});			
	}
}

function p27attachMenu(btnID, mnuID, rightAlign){
	var bo=aejw.get(btnID);
	if(!bo||bo==null){return;}
	var mnuOpt='offsetX=0;offsetY=24;';
	if(rightAlign==true){
		mnuOpt+='right;';
	}
	aejw.eventBind(bo,'mouseover',function(){
		aejw.panel(null,mnuID,btnID,mnuOpt);
	});
	aejw.eventBind(bo,'mouseout',function(){aejw.panelHide();});	
}

// text tags base('aejwTextAreaFunc')
function p27edtInsFormat(inputTag,startStr,endStr){

	if(!startStr||startStr==null){startStr='';}
	if(!endStr||endStr==null){endStr='';}

	var oInputTag=inputTag;
	if(!oInputTag||oInputTag==null){return false;}

	var sSel;var oTxtRange;	
	if(document.selection){
		oInputTag.focus();
	  oTxtRange=document.selection.createRange();
		var sSel=oTxtRange.text;
	}else if(oInputTag.selectionStart||oInputTag.selectionStart=='0'){
		var sSel=oInputTag.value.substring(oInputTag.selectionStart,oInputTag.selectionEnd);		
	}else{
		if(oInputTag.value){
			oInputTag.value+=startStr+' '+endStr;
		}
		return false;	
	}	

	if(sSel.length>startStr.length&&sSel.substring(0,startStr.length)==startStr){
		return;
	}
	if(sSel.substring(sSel.length-1,sSel.length)==' '){
		sSel=sSel.substring(0,sSel.length-1);
		endStr+=' ';
	}

	if(oTxtRange){ //ie		
		oTxtRange.text=startStr+sSel+endStr;	
	}else if(oInputTag.selectionStart||oInputTag.selectionStart=='0'){ //gecko
		oInputTag.value=oInputTag.value.substring(0, oInputTag.selectionStart)+startStr+sSel+endStr+oInputTag.value.substring(oInputTag.selectionEnd, oInputTag.value.length);
	}
	
	if(inputTag.focus) inputTag.focus();
	
	return false;
}

function p27wrapTextArea(element) {
  
  this.element=aejw.get(element);
  this.footer=document.createElement('div');
  this.footer.className='taFooter';    
  if(this.element.nextSibling){
  	this.element.parentNode.insertBefore(this.footer,this.element.nextSibling);
  }else{
  	this.element.parentNode.appendChild(this.footer,this.element);
  }
  this.heightOffset=(aejw.getY(this.footer)-aejw.getY(this.element))-aejw.getH(this.element);

	var taBase=this;
  aejw.eventBind(this.footer,'mousedown',function(ev){
		aejw.eventStop(ev);
		if(document.aeMouseCaptured){return;}
		document.aeMouseCaptured=true;		
		taBase.aeMouseMove=document.onmousemove;
		taBase.aeMouseUp=document.onmouseup;
		taBase.dragOffset=aejw.mouseY()-aejw.getY(taBase.footer);
		var mouseMoveFunc = function(ev){
			taBase.element.style.height=Math.max(33,aejw.mouseY()-(aejw.getY(taBase.element)+taBase.dragOffset+taBase.heightOffset))+'px';
			if(navigator.product!='Gecko'){aejw.eventStop(ev);}
		};
		var mouseUpFunc = function(ev){
			aejw.eventUnbind(document,'mousemove',mouseMoveFunc,true);
			document.aeMouseCaptured=false;
			aejw.eventStop(ev);
		};
	  aejw.eventBind(document,'mousemove',mouseMoveFunc,true);
		aejw.eventUnbind(document,'mouseup',mouseUpFunc,true);
	  aejw.eventBind(document,'mouseup',mouseUpFunc,true);
  },true);
  
}

// ensure all ie versions support push and pop
if( typeof(Array.prototype.push) == 'undefined' ){
  Array.prototype.push = function(element){
  	this[this.length] = element;
  }
}
if( typeof(Array.prototype.pop) == 'undefined' ){
  Array.prototype.pop = function(){ 
    var last = this[ this.length - 1 ];
    this.length--;
    return last; 
  }
}
