var ajaxLoaded = false;
//this is a default function to fix bug if connection is too slow
makeAjaxRequest = function(vars, method, options, callback){var uuid = get_random();eval("tempCallback" + uuid + " = callback");eval("tempOptions" + uuid + " = options");setTimeout("new makeAjaxRequest('"+vars+"', '"+method+"', tempOptions" + uuid + ", tempCallback" + uuid + ")",1000);}//end of bug
var imgDir,ajaxActionFile;if(!imgDir)imgDir="../prism_resource/image/";imageObj=new Image();prismimage=new Array("ajax_tab_left.gif","ajax_tab_right.gif","ajax_tab_back.gif","ajax_tab_left_disabled.gif","ajax_tab_right_disabled.gif","ajax_tab_back_disabled.gif","ajax_field.gif","ajax_button.gif","ajax_drag.gif","ajax_close.gif","wait.gif","ajax_att.gif","ajax_spacer.gif","ajaxcalendar.gif","ajax_arrow3.gif","ajaxresize.gif","ajax_menu.gif","ajaxclose.gif","ajaxleft1.gif","ajaxright1.gif","ajaxdrop1.gif","ajax_asc1.gif","ajax_asc0.gif","ajax_del.gif","ajax_open.gif","ajax_scroller.gif","ajax_arrow5.gif","ajax_arrow.gif","ajaxdefault0.gif","ajaxdefault1.gif","ajax_search.gif","ajax_plus.gif","ajax_minus2.gif","ajax_search2.gif","iconCustom.gif","digital_asset_missing_image_large.gif");for(i=0;i<prismimage.length;i++){prismimage[i]=imgDir+prismimage[i];imageObj.src=prismimage[i];}var enginePath;function preLoadLibrary(lib){if(!enginePath)enginePath="../prism_resource/javascript/";try{var e=document.createElement("script");e.src=enginePath+lib;e.type="text/javascript";document.getElementsByTagName("head")[0].appendChild(e);}catch(err){}}preLoadLibrary('ajaxengine.js');var detect=navigator.userAgent.toLowerCase();var OS,browser,version,total,thestring;if(checkIt('konqueror')){browser="Konqueror";OS="Linux";}else if(checkIt('safari'))browser="Safari";else if(checkIt('omniweb'))browser="OmniWeb";else if(checkIt('opera'))browser="Opera";else if(checkIt('webtv'))browser="WebTV";else if(checkIt('icab'))browser="iCab";else if(checkIt('msie'))browser="Internet Explorer";else if(!checkIt('compatible')){browser="Netscape Navigator";version=detect.charAt(8);}else browser="An unknown browser";if(!version)version=detect.charAt(place+thestring.length);if(!OS){if(checkIt('linux'))OS="Linux";else if(checkIt('x11'))OS="Unix";else if(checkIt('mac'))OS="Mac";else if(checkIt('win'))OS="Windows";else OS="an unknown operating system";}function checkIt(string){place=detect.indexOf(string)+1;thestring=string;return place;}
//MOVE FRAME METHODS
function mdown(mx){if(mx=="x"){dragx=true;}else{dragy=true;}}function mup(){dragx=dragy=false;}function mmove(e){if(dragx){if(!e)mousePosition=window.event.clientX;else mousePosition=e.pageX;try{y=mousePosition-2;document.getElementById("leftframe").style.width=(y-b)+"px";y+=5;}catch(e){}}}function sety(){y-=5;document.getElementById("leftframe").style.width=(y-b)+"px";y+=5;}function resizeFrames(e){if(dragx){if(!e)mousePosition=window.event.clientX;else mousePosition=e.pageX;if(mousePosition>100&&mousePosition<700){try{yCoordinata=mousePosition+5;lfw=yCoordinata-bBorder;document.getElementById("lf").style.width=(yCoordinata-bBorder)+"px";document.getElementById("vf").style.left=(yCoordinata-bBorder)+"px";rfw=pageWidth()-lfw-bBorder-20;document.getElementById("rf").style.width=rfw+"px";document.getElementById("rf").style.left=(yCoordinata)+"px";yCoordinata+=5;}catch(err){}}}}function setupYposition(){yCoordinata=y;bBorder=b;yCoordinata-=5;lfw=yCoordinata-bBorder;document.getElementById("lf").style.width=lfw+"px";document.getElementById("vf").style.width=bBorder+"px";document.getElementById("vf").style.left=(yCoordinata-bBorder)+"px";rfw=pageWidth()-lfw-bBorder-20;document.getElementById("rf").style.width=rfw+"px";;document.getElementById("rf").style.left=(yCoordinata)+"px";yCoordinata+=5;}
//END SCRIPT FOR MOVING FRAMES
	
	//Temporary function used for some old version of contacts can be romoved soon 07/01/2006, Dima S
	function createFormField(tt,fn,fv,fw,fh,fo,fr,fa,fov){
  var field = "";
  if(fr == 1) {var frv = " readonly";} else {var frv = "";}        
  if(tt == 9 || tt == 10){ //create select box
  if(tt == 10) var multiple = " multiple"; else var multiple = "";
  if(fr == 1) var frv = " disabled"; else var frv = "";if(tt == 9) var fh = 1;
  if(fw) var fwd = "style=\"width:"+fw+"px\""; else var fwd = "";
  field += "<select id=\""+fn+"\" "+fwd+" name=\""+fn+"\" size=\""+fh+"\" "+multiple+" " + frv +" " + fa +">"; 
  fo = createArrayFromList(fo,',');fov = createArrayFromList(fov,',');
  for(var i = 0; i < fo.length; i++){field += "<option value=\"" + fov[i] + "\"";if(fov[i] == fv) field += " selected"; field += ">" + fo[i];}field += "<\/select>";}else if (tt == 6) { //create checkbox
   field += "<input type=\"checkbox\" value=\"1\" name=\"" + fn + "\" " + fa +" id=\"" + fn + "\"";if(fv == 1) field += " checked";if(fr == 1) field += " disabled";field += ">";}else if (tt == 5) { //create time
   field += "<input type=\"text\" onkeyup=\"DateTimeFilter('time',this,event);\" size=\"10\" maxlength=\"8\" value=\"" + fv + "\" class=\"inputField\" name=\"" + fn + "\" id=\"" + fn + "\" " + frv +">";}else if (tt == 4) { //create calendar
   field += "<input type=\"text\" onkeyup=\"DateTimeFilter('date',this,event);\" size=\"10\" maxlength=\"10\" onclick=\"openCalendar(getElement('" + fn + "'));\" value=\"" + fv + "\" class=\"inputField\" name=\"" + fn + "\" id=\"" + fn + "\" " + frv +">";if(fr != 1) field += "<a href=\"javascript:void(0);\" onclick=\"openCalendar(getElement('" + fn + "'));\"><img src=\""+prismimage[13]+"\" border=\"0\" align=\"absmiddle\" alt=\"Change Date\" width=\"19\" height=\"19\" /><\/a>";}else if (tt == 11) { //create textarea           
   field += "<textarea id=\"" + fn + "\" rows=\"" + fh + "\" cols=\"" + fw + "\" name=\"" + fn + "\" " + frv +" " + fa +">" + fv + "<\/textarea>";}else if (tt == 101) { //create bold text
   field += "<strong><label>" + fv + "<\/strong><\/label>";}else { //text field
   if(tt==100) var ty = 'password'; else var ty = 'text';field += "<input type=\"" + ty + "\" id=\"" + fn + "\" size=\"" + fw + "\" value=\"" + fv + "\" class=\"inputField\" name=\"" + fn + "\" " + frv +" " + fa +">";}return field;}   
	//END of Temporary function used for some old version of contacts can be romoved soon 07/01/2006
	
	//CUSTOM ESCAPE FUCNTION TO REMOVE UNVWANTED CHARACHTERS
	function unicodeToEntities(str){  	 
	try{
		str = str.toString();   
    var q='';
    for(i=0; i<str.length; i++) {
      j=str.charCodeAt(i);
      q+=(j==38)?'&amp;':(j<128)?str.charAt(i):'&#'+j+';';      
    }    
		return q;
    }catch(err){return str;}
  }
	function entitiesToUnicode(str){  	 
	try{
		var q = str.toString();   
    var rexp = /&#[0123456789]*;/g;
		while(rexp.exec(q)) {
			q = q.replace(new RegExp(rexp), String.fromCharCode(RegExp.lastMatch.replace(/&#/g,'').replace(/;/g,'')));
		}
		return q;
    }catch(err){return str;}
  }
	function escapeApostrophe(str, revert){
		if(revert) str = str.replace(/&apos;/g, "'");
		else str = str.replace(/'/g, "&apos;");
		return str;
	}
  function cEscape(str){  
	str = unicodeToEntities(str);//convert to entities  
  try{
	str = str.replace(/\+/g,"&#43;");
	str = str.replace(/;amp;/g,";");
	str = str.replace(/&amp;#/g,"&#");	
	str = str.replace(/"/g,"&quot;");
	str = str.replace(/</g,'&lt;');
	str = str.replace(/>/g,'&gt;');  
	str = escape(str);  
  } catch(err){}
	return str;
	}
  	
	function cutLine(str,len){if(str && str.length > len) str = str.substring(0,len) + '..'; return str;}
	function statusMessage(message, pl){		
		if(top.document.getElementById('statusBox')) {
			top.document.getElementById('statusBox').style.paddingLeft = pl + 'px';
			if(message != '') message = "<img src='"+imgDir+"information.gif' width=15 height=15 hspace=5 align=absmiddle>" + message;
			top.document.getElementById('statusBox').innerHTML = message;		
		}
	}
	function CreateMessage(message){
	return "<table width='100%'><tr><td height='100%' align='center' valign='middle'><div class='MessageBox' id='boxContainer'><div class='MessageBox' id='boxContent'><br>" + message + "<br><img src='" + prismimage[10] + "' width=32 height=32 vspace=30></div></div></td></tr></table>"
	} 
	function setImage(id, image){		
		if (document.images) {
			if(getElement(id)) getElement(id).src = (image)?image.src:prismimage[35];
			else id.src = (image)?image.src:prismimage[35];
		}
	} 
  //Generate XML
  function defineDataFromXML(xml,level){
    var xmlDataArray = new Array();
    if(!level) var level = 2;
    var x = xml.responseXML.getElementsByTagName('myRoot');
    if(x[0].attributes.getNamedItem('PAGESNUMBER'))
       xmlDataArray['PAGESNUMBER'] = x[0].attributes.getNamedItem('PAGESNUMBER').value;
    else xmlDataArray['PAGESNUMBER'] = 1; 
    if(x[0].attributes.getNamedItem('TOTALRECORDS'))
       xmlDataArray['TOTALRECORDS'] = x[0].attributes.getNamedItem('TOTALRECORDS').value;
    else xmlDataArray['TOTALRECORDS'] = 0;
    if(x[0].attributes.getNamedItem('CURRENTPAGE'))
        xmlDataArray['CURRENTPAGE'] = x[0].attributes.getNamedItem('CURRENTPAGE').value;
    else xmlDataArray['CURRENTPAGE'] = 1;
    if(x[0].attributes.getNamedItem('CURRENTDOM'))
        xmlDataArray['CURRENTDOM'] = x[0].attributes.getNamedItem('CURRENTDOM').value;
    else xmlDataArray['CURRENTDOM'] = null;
              
    xmlDataArray['XMLLOOP'] = x[0].childNodes.length;
    for (var j = 0; j < x[0].childNodes.length; j++) {
    if (x[0].childNodes[j].nodeType != 1) continue;
    var cNodeName = x[0].childNodes[j].nodeName;
    xmlDataArray.push(cNodeName);
    if(x[0].childNodes[j].firstChild) {      
      xmlDataArray[cNodeName] = x[0].childNodes[j].firstChild.nodeValue;
        if(level == 2){//Extract second XML LEVEL
        for (var a = 0; a < x[0].childNodes[j].childNodes.length; a++) {            
            if(x[0].childNodes[j].childNodes[a].firstChild) {         
              eval("xmlDataArray['" + cNodeName + "_" + x[0].childNodes[j].childNodes[a].nodeName + "'] = x[0].childNodes["+j+"].childNodes["+a+"].firstChild.nodeValue");
            } else {
              eval("xmlDataArray['" + cNodeName + "_" + x[0].childNodes[j].childNodes[a].nodeName + "'] = ''");
            }
          }
        }
       } else { //first level node value is empty
         xmlDataArray[cNodeName] = '';       
       }
     }     
     return xmlDataArray;
   }    
  //Clean Prism Arrays
  function cleanUpPrismArrays(){
    for(m = 0; m < mainMassives.length; m++) {
       eval(mainMassives[m] + "Array = new Array();");
  		 eval(mainMassives[m] + "ArrayStatic = new Array();");	            
    }
  }
  //Check Enhanced FIelds
  function checkEnhancedFields(){
    var ids = createArrayFromList(EnhancedFieldsArray['Mandatory']);
    var titles = createArrayFromList(EnhancedFieldsArray['MandatoryTitles'],'^');
    for(var i = 0; i < ids.length; i++){
      if(EnhancedFieldsArray[ids[i]] == ''){
        createErrorMessage(titles[i] + " is required");
        if(getElement(ids[i])) getElement(ids[i]).className='inputFieldError';             
        return false;} else if(getElement(ids[i])) getElement(ids[i]).className='inputField'; 
    }
    return true;
  }
  //Load prism arrays
  function loadDataToMainArrays(xml){
    mainMassives = new Array(); 
    var x = xml.responseXML.getElementsByTagName('myRoot');  					
        if(x[0].childNodes.length == 0) {
  		    alert('No data has arrived, please contact us for support');return;
  	    }	  					
      	for (j = 0; j < x[0].childNodes.length; j++) {
      		massivename = x[0].childNodes[j].nodeName;     
          eval(massivename + "Array = new Array();");
      		eval(massivename + "ArrayStatic = new Array();");
          eval(massivename + "Massives = new Array();");      
          mainMassives.push(massivename);
      		for (k = 0; k < x[0].childNodes[j].childNodes.length; k++) {
      			thename = x[0].childNodes[j].childNodes[k].nodeName;
      			if(x[0].childNodes[j].childNodes[k].firstChild) {								
      					thevalue = x[0].childNodes[j].childNodes[k].firstChild.nodeValue;					
      				}
      			else {thevalue = ""};  
           //alert(massivename + '/' + thename + '/' + thevalue);            
           eval(massivename + "Array['" + thename + "'] = thevalue");
					 eval(massivename + "ArrayStatic['" + thename + "'] = thevalue");
           eval(massivename + "Massives.push(thename)");							
      	}
      } 
  }
  //Compare prism Data
  function comparePrismData(mainMassives, action){  
	return;
	try{  
		samedata = true;
        for (a = 0; a < mainMassives.length; a++){
          for (b = 0; b < eval(mainMassives[a] + 'Massives.length'); b++){
              arrayFname = eval(mainMassives[a] + 'Massives[' + b + ']');
							
							dataCurrent = eval(mainMassives[a] + 'Array["' + arrayFname + '"]');
              dataStatic = eval(mainMassives[a] + 'ArrayStatic["' + arrayFname + '"]'); 
							dataCurrent = cEscape(dataCurrent);	
							dataStatic = cEscape(dataStatic);	            
              
              if(dataStatic == 'undefined'||dataStatic == null||dataStatic == 0) dataStatic = "";
              if(dataCurrent == 'undefined'||dataCurrent == null||dataCurrent == 0) dataCurrent = "";
             
              if(dataStatic.toLowerCase() == 'true') dataStatic = 1;
              if(dataCurrent.toLowerCase() == 'true') dataCurrent = 1;      
              if(dataStatic.toLowerCase() == 'false') dataStatic = "";
              if(dataCurrent.toLowerCase() == 'false') dataCurrent = "";  
              if(dataCurrent != dataStatic) { 
                samedata = false;
                //if(!samedata){alert(arrayFname + "/" + dataCurrent + "/" + dataStatic);return;}
              }
            }
        }
        if(!samedata){
          if(confirm("You have made some changes that are not saved\n\nWould you like to save them, otherwise they will be lost?")){
            if(action) eval(action + "()");            
          }
        }    
    } catch (err) {}
  }
  //Field Filter
  function setCustomFilter(from,to, validch, mask, event){
    doFilterAction('custom', from, to, validch, mask, event);
  }
  function setFieldFilter(from,to,type,more,event){       
    var mask;
    switch (type){
    case '09':
    var validch = "0123456789";
    break;
    case 'az':
    var validch = "qwertyuioplkjhgfdsazxcvbnm";
    break;
    case 'Az':
    var validch = "qwertyuioplkjhgfdsazxcvbnmQWERTYUIOPLKJHGFDSAZXCVBNM";
    break;
    case '0z':
    var validch = "qwertyuioplkjhgfdsazxcvbnmQWERTYUIOPLKJHGFDSAZXCVBNM0123456789";
    break;
    case '$':
    var validch = "0123456789.,";
    break;
    case 'USTel':
    var validch = "0123456789";
    break;
    case 'date':
    var validch = "0123456789/";    
    break;
    case 'time':
    var validch = "0123456789:";    
    break;
    case 'url':
    var validch = "qwertyuioplkjhgfdsazxcvbnmQWERTYUIOPLKJHGFDSAZXCVBNM0123456789:./\-_";    
    break;    
    default:
    var validch = "";
    }   
    if(more) validch += more;
    doFilterAction(type, from, to, validch, mask, event);
    return true;
  }
  function doFilterAction(type, from, to, validch, mask, event){    
    var checktemp = cvalue = ""; 
    var keyCode;
    if(event) {
      keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;	
			if (keyCode == 8) return true;
    }
        
    if(getElement(from)) var field = getElement(from);
    else if(from) var field = from;
    if(field.type != 'text' && field.type != 'textarea') return false;
        
    for (var i=0; i<from.value.length; i++){
    cvalue = "";                     				
    if (validch.indexOf(from.value.substring(i, i+1)) != "-1")
		cvalue = from.value.substring(i, i+1);              
    checktemp += cvalue; 
    }
    if(checktemp!='') {
			if(type == '$') checktemp = formatCurrency(checktemp);
      else if(type == 'USTel') checktemp = formatNumbers(checktemp, '($$$) $$$-$$$$'); 
      else if(type == 'date') checktemp = formatNumbers(checktemp, '$$/$$/$$$$');   
      else if(type == 'custom') checktemp = formatNumbers(checktemp, mask);    
		} 
    if(getElement(to)) getElement(to).value = checktemp;
    else if(to) to.value = checktemp;
    return checktemp;    
  }
  function DateTimeFilter(t,val,event,format){
	var checktemp = "";	
	var validch = "0123456789";
	var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;
	if(t=='time') {separator = ":";kolvo=6;}
	else {separator = "/";kolvo=8;}

		if(val.value!='' && keyCode != 8 && val.value.length < kolvo) {
				for (var i=0; i<val.value.length; i++) {				
					if (validch.indexOf(val.value.substring(i, i+1)) != "-1")
						checktemp += val.value.substring(i, i+1);
					if (i==1 || i==4) checktemp += separator;
				}		
			val.value = checktemp;
			val.focus();
		}
	}
	function TimeFilter(e,t,val,format){		 
		 if(e) DateTimeFilter(t,val,e,format);
		 else DateTimeFilter(t,val,event,format);
	}
  function formatCurrency(num) {
    num = num.toString().replace(/\$|\,/g,'');
    if(isNaN(num))
    num = "0";
    sign = (num == (num = Math.abs(num)));
    num = Math.floor(num*100+0.50000000001);
    cents = num%100;
    num = Math.floor(num/100).toString();
    if(cents<10)
    cents = "0" + cents;
    for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
    num = num.substring(0,num.length-(4*i+3))+','+
    num.substring(num.length-(4*i+3));
    return (((sign)?'':'-') + num + '.' + cents);
  }
  function formatNumbers(num,mask){
    var readynum = ''; var realcount = 0;
    for(var m = 0; m < mask.length; m++){      
      if(mask.substring(m,m+1) == '$'){
        readynum += num.substring(realcount,realcount+1);realcount++;
      } else {
        readynum += mask.substring(m,m+1);
      }
    }
    return readynum;
  }    
  //Replace Image
  function replacePrismDefaultImage(id,len,what,instead) {
    var im = document.images;
    for(var i = 0; i < im.length; i++) {      
      if(im[i].id.substring(0,len) == id.substring(0,len)) {
        if(im[i].id == id) getElement(im[i].id).src = prismimage[what];
        else getElement(im[i].id).src = prismimage[instead];
      }
    }
  }
	function getXMLNodeFromText(text,node){
		var text = text.replace(/&lt;/g,"<").replace(/&gt;/g,">");
		var startpos = text.indexOf('>', text.indexOf('<' + node + ' ', 1)) + 1;	
		return text.substring(startpos,text.indexOf('</' + node + '>', startpos));
	}
  //Get Selected Data
  function getSelectedData(obj, returntype, separator) {
    var result = new Array();
    if(!separator) separator = ',';
    var objInput = document.getElementsByTagName('input');
   // try{
      if(obj) { 
         etype = obj.type;
         switch (etype) {
         case 'checkbox': //checkboxes
         if (obj.checked) result[0] = 1;
         else result[0] = 0;
         break;
         case 'radio': //radioboxes
         for(t=0; t < objInput.length; t++)
            if(objInput[t].id == obj.id && objInput[t].checked) {
              result[0] = objInput[t].value;break;}
         break;
         case 'select-one': //selectbox            
         if(obj.options.length > 0) result[0] = obj.options[obj.selectedIndex].value;
         break;
         case 'select-multiple': //multiple select            
         for(var r = 0; r < obj.length; r++)
         if(obj[r].selected) result.push(obj[r].value);
         break;
         default:
         result[0] = obj.value; 
         }
       } 
       if(returntype == 'list') return createListFromArray(result,separator);
       else return result;
    //} catch(err){return result;}   
  } 
  function doCheckRadioBox(obj,num){
    var objInput = document.getElementsByTagName('input');
    var ccount = 0;
    for(var t=0; t < objInput.length; t++){
      if(objInput[t].id == obj.id) {          
        if(ccount == num) {objInput[t].checked = true;break;}
      ccount++;
      }   
    }
  }
  function getPrismDataFromArray(massives){     
  	 var datato='';     
     try {
				for (a = 0; a < massives.length; a++) { 				
					for (b = 0; b < eval(massives[a] + 'Massives.length'); b++){
              arrayFname = eval(massives[a] + 'Massives[' + b + ']');              
              dataCurrent = eval(massives[a] + 'Array["' + arrayFname + '"]'); 
							eval(massives[a] + 'ArrayStatic["' + arrayFname + '"] = dataCurrent');  
							if(arrayFname.substring(0,1) == 'T' && checkNum(arrayFname.substring(1,2))) {arrayFname = massives[a] + '_' + arrayFname;} 
              if(arrayFname && dataCurrent || dataCurrent == '')
                datato += '&' + arrayFname + '=' + cEscape(dataCurrent);
            }
        } 
      } catch (err) {}
      return datato;
  }
  //Array Updater
  function updatePrismData(massv){
  try{       
      if(massv) updatePrismDataElement(massv);
      else for(var s = 0; s < mainMassives.length; s++) updatePrismDataElement(mainMassives[s]);
    } catch (err) {}
  }
  function updatePrismDataElement(massivename){
    var objInput = document.getElementsByTagName('input');
    for (m = 0; m < eval(massivename + 'Massives.length'); m++){
        var ff = eval(massivename + 'Massives[' + m + ']');
        var obj = document.getElementById(ff);            
         if(obj) {            
         etype = obj.type;        
         //alert("UPDATING: " + ff + "/type:" + etype);
         switch (etype) {
         case 'checkbox': //checkboxes
         if (obj.checked) eval(massivename + "Array['" + ff + "'] = 1");
         else eval(massivename + "Array['" + ff + "'] = 0");
         break;
         case 'radio': //radioboxes          
          for(t=0; t < objInput.length; t++)
            if(objInput[t].id == obj.id && objInput[t].checked) {
              eval(massivename + "Array['" + ff + "'] = objInput["+t+"].value");break;}
         break;
         case 'select-one': //selectbox            
         if(obj.options.length > 0) eval(massivename + "Array['" + ff + "'] = obj.options[obj.selectedIndex].value");
         break;
         case 'select-multiple': //select multiple box        
           eval(massivename + "Array['" + ff + "'] = getSelectedData(obj, 'list', ',')");
         break;
         default:
         eval(massivename + "Array['" + ff + "'] = obj.value;"); 
         } 
      }
    }
  }  
  function selectSelectbox(id,value){         
    if(getElement(id)) {
      if(getElement(id).type == 'select-one'){
      for(s = 0; s < getElement(id).options.length; s++) {
        if(getElement(id).options[s].value == value){
          getElement(id).options[s].selected=true;
          return true;
        } 
      }
      } else {
        getElement(id).value = value;
      }
    }
    return false;
  }
  
  //Class BUILDER
  var Class = {
  create: function() {
    return function() {
       this.initialize.apply(this, arguments);
      }
    }
  }
    //Main AJAX Object method
    Object.extend = function(destination, source) {
      for (property in source) {
        destination[property] = source[property];
      }
      return destination;
  }
  
   //Interface Builder
   var prismInterfaceObject = function() {};   
   var prismInterface = Class.create();
       prismInterface.prototype = Object.extend(new prismInterfaceObject(), { 
         initialize: function(options) {    
          this.setOptions(options);
          eval("this." + this.options.interfaceType + "();");
          },
         setOptions: function(options) {

          this.options = {
            interfaceType: 'standard',
						interfaceFace: '',
            assignedTo: null, 
            leftBlock: true,            
            leftBlockWidth: 350,
            leftBlockId: '', 
            rightBlockId: '',
            topLeftBlock:   true,
            topLeftBlockId: '',
            bottomRightBlock: true,         
            bottomRightBlockId: '',
            bottomRightHeight: null,
            topLeftBlock2:   false,
            topLeftBlockId2: '',
            topLeftBlock3:   false,
            topLeftBlockId3: '',
            tabMenuId: 'tabMenu',
						internalHeightTop: null
          }
             
          Object.extend(this.options, options || {});
        },        
        internal: function(){ 
          (checkIt('msie'))?this.topotstup2 = 55:this.topotstup2 = 80;
          this.tabMenu = new prismDOM.create('div', this.options.tabMenuId, 'tabmenus');
              prismDOM.setstyle(this.tabMenu,'height','20px');
              if(!this.options.bottomRightBlock) prismDOM.setstyle(this.tabMenu,'width', '100%');
              prismDOM.setstyle(this.tabMenu,'backgroundImage','url(\'' + prismimage[16] + '\')');
              prismDOM.setstyle(this.tabMenu,'backgroundRepeat', 'repeat-x'); 
              prismDOM.setstyle(this.tabMenu,'backgroundPosition', 'bottom left');
          
          this.intConteiner = new prismDOM.create('div',this.options.rightBlockId,'Conteiner');             
              prismDOM.setstyle(this.intConteiner,'overflow','auto');  
              prismDOM.setstyle(this.intConteiner,'overflowX','hidden');
              
              if(this.options.bottomRightBlock) this.topotstup2 += 30; 
              
              if(this.options.internalHeightTop)
								prismDOM.setstyle(this.intConteiner,'height',pageHeight() - this.options.internalHeightTop + 'px');
							else
								prismDOM.setstyle(this.intConteiner,'height',pageHeight() - this.topotstup2 + 'px'); 
							
              if(checkIt('msie')) prismDOM.setstyle(this.intConteiner,'width', '100%');
              else prismDOM.setstyle(this.intConteiner,'width', '100%');
              
              this.intConteiner.vAlign = "top";  
             
              prismDOM.setstyle(this.intConteiner,'borderTop','0px');   
              prismDOM.setstyle(this.intConteiner,'marginBottom','5px');//create spacer  
          if(this.options.bottomRightBlock){            
             this.rButtons = new prismDOM.create('div',this.options.bottomRightBlockId,'Conteiner');              
             prismDOM.setstyle(this.rButtons,'height','25px');
          }
          
          this.intConteiner2 = new prismDOM.create('div'); 
               prismDOM.setstyle(this.intConteiner2,'margin','10px');
          this.intConteiner2.appendChild(this.tabMenu);
          this.intConteiner2.appendChild(this.intConteiner);
          if(this.options.bottomRightBlock) this.intConteiner2.appendChild(this.rButtons);          
          
          if(getElement(this.options.assignedTo)) getElement(this.options.assignedTo).appendChild(this.intConteiner2);
        },
        standard: function(){                  
          this.loadingpage();
          this.setvariables();
          this.setevents();
          if(checkIt('msie')){
            this.topotstup = 10;
            this.topotstup2 = 30;
          }
          else {
            this.topotstup = 15;
            this.topotstup2 = 35;
          }
          if(this.options.interfaceType == 'internal') {
            this.options.leftBlock = false;
            this.options.topLeftBlock = false;
          }
         
          if(this.options.assignedTo && document.getElementById(this.options.assignedTo))
            this.mybody=document.getElementById(this.options.assignedTo);
          else
            this.mybody=document.getElementsByTagName("body").item(0);
          
          this.mainform = new prismDOM.create('form','prismform');
          //create main frame 
          this.rightdiv = new prismDOM.create('div','rf',null);
 					if(this.options.topMargin) prismDOM.setstyle(this.rightdiv,'marginTop',this.options.topMargin + 'px');
					//fix size for editors
					if(this.options.interfaceFace == 'editor') prismDOM.setstyle(this.rightdiv,'width', '95%');    
          
          //create buttons conteiner          
          if(this.options.leftBlock){          
          this.leftdiv = new prismDOM.create('div','lf',null);
					if(this.options.topMargin) prismDOM.setstyle(this.leftdiv,'marginTop',this.options.topMargin + 'px');
          this.vertdiv = new prismDOM.create('div','vf',null,'onmousedown','mdown(\'x\')');
               prismDOM.setstyle(this.vertdiv,'height',pageHeight() - 50 + 'px');

          if(this.options.topLeftBlock){    
            this.lButtons = new prismDOM.create('div',this.options.topLeftBlockId,'Conteiner');              
                 prismDOM.setstyle(this.lButtons,'height','25px');
								 prismDOM.setstyle(this.lButtons,'overflow','hidden');
                 prismDOM.setstyle(this.lButtons,'marginBottom','5px');//create spacer  
                 this.topotstup += 30;
                 this.leftdiv.appendChild(this.lButtons); 
           }
          //create additional block  
          if(this.options.topLeftBlock2){    
          this.lButtons2 = new prismDOM.create('div',this.options.topLeftBlockId2,'Conteiner');              
               prismDOM.setstyle(this.lButtons2,'height','25px');
               prismDOM.setstyle(this.lButtons2,'marginBottom','5px');//create spacer 
          this.leftdiv.appendChild(this.lButtons2);    
          this.topotstup += 30; 
           }
          //create additional block 2 
          if(this.options.topLeftBlock3){    
          this.lButtons3 = new prismDOM.create('div',this.options.topLeftBlockId3,'Conteiner');              
               prismDOM.setstyle(this.lButtons3,'height','25px');
               prismDOM.setstyle(this.lButtons3,'marginBottom','5px');//create spacer 
          this.leftdiv.appendChild(this.lButtons3);    
          this.topotstup += 35; 
           }     
          //create listing conteiner
          this.lConteiner = new prismDOM.create('div',this.options.leftBlockId,'Conteiner');							         
              prismDOM.setstyle(this.lConteiner,'overflow','auto');  
              prismDOM.setstyle(this.lConteiner,'overflowX','hidden');              
              prismDOM.setstyle(this.lConteiner,'height',pageHeight() - this.topotstup + 'px'); 
          this.leftdiv.appendChild(this.lConteiner);          
          } 
          //create menu conteiner   
          this.tabMenu = new prismDOM.create('div',this.options.tabMenuId,'tabmenus');
              prismDOM.setstyle(this.tabMenu,'height','20px');
              if(!this.options.bottomRightBlock) {
									prismDOM.setstyle(this.tabMenu,'width', '100%');
              }
							prismDOM.setstyle(this.tabMenu,'backgroundImage','url(\'' + prismimage[16] + '\')');
              prismDOM.setstyle(this.tabMenu,'backgroundRepeat', 'repeat-x'); 
              prismDOM.setstyle(this.tabMenu,'backgroundPosition', 'bottom left');
              
          this.rConteiner = new prismDOM.create('div',this.options.rightBlockId,'Conteiner');             
              prismDOM.setstyle(this.rConteiner,'overflow','auto');  
              prismDOM.setstyle(this.rConteiner,'overflowX','hidden');
              
              if(this.options.bottomRightBlock) this.topotstup2 += 30; 
              this.rch = pageHeight() - this.topotstup2;
              
              if(this.options.bottomRightHeight) this.rch-= this.options.bottomRightHeight - 26; 
              
              if(this.options.rightBlockHeight) prismDOM.setstyle(this.rConteiner,'height', this.options.rightBlockHeight + 'px'); 
							else prismDOM.setstyle(this.rConteiner,'height', this.rch + 'px');
							
							prismDOM.setstyle(this.rConteiner,'width', '100%');
             
              prismDOM.setstyle(this.rConteiner,'borderTop','0px');   
              prismDOM.setstyle(this.rConteiner,'marginBottom','5px');//create spacer  
          
          if(this.options.bottomRightBlock){            
             this.rButtons = new prismDOM.create('div',this.options.bottomRightBlockId,'Conteiner');
           
             if(this.options.bottomRightHeight){
               prismDOM.setstyle(this.rButtons,'height', this.options.bottomRightHeight + 'px');
             } else prismDOM.setstyle(this.rButtons,'height','25px');
          }   

              this.rightdiv.appendChild(this.tabMenu); 
              this.rightdiv.appendChild(this.rConteiner);
              if(this.options.bottomRightBlock) this.rightdiv.appendChild(this.rButtons);  
              
              if(this.options.leftBlock){
                this.mybody.appendChild(this.leftdiv);                
                this.mybody.appendChild(this.vertdiv);
              }
              this.mybody.appendChild(this.rightdiv);
              this.mybody.appendChild(this.mainform);
       
          },
          divopacity: function(id){
            //if(checkIt('msie')) getElement(id).style.filter = "Alpha(Opacity=30, FinishOpacity=70, Style=0);";
            //else getElement(id).style.opacity = "0.3";          
          },
          divopacityBack: function(id){
            //if(checkIt('msie')) getElement(id).style.filter = "Alpha(Opacity=100, FinishOpacity=100, Style=0);";
            //else getElement(id).style.opacity = "1";          
          }, 
          pageopacity: function(where,id){ 
            if(where) this.toload = getElement(where);
            else this.toload=document.getElementsByTagName("body").item(0);
            if(!id) id = "pagecover"; 
            if(!getElement(id)){
              this.loaddiv = new prismDOM.create('div',id,null);
              this.loaddiv.style.position = "absolute";
              if(checkIt('msie')) this.loaddiv.style.filter = "Alpha(Opacity=50, FinishOpacity=70, Style=2);";
              else this.loaddiv.style.opacity = "0.5";
              prismDOM.setstyle(this.loaddiv,'margin','1px');
              prismDOM.setstyle(this.loaddiv,'backgroundColor','#FFFFFF');
              prismDOM.setstyle(this.loaddiv,'visibility','visible');
              prismDOM.setstyle(this.loaddiv,'width', '100%');
              if(checkIt('msie')) prismDOM.setstyle(this.loaddiv,'height', pageHeight()-25 + 'px');  
              else prismDOM.setstyle(this.loaddiv,'height', '95%');          
              this.toload.appendChild(this.loaddiv);      
            }
          },
          removeopacity: function(where,id){  
            if(where) this.toload = getElement(where);
            else this.toload=document.getElementsByTagName("body").item(0);
            if(!id) id = "pagecover";
            if(getElement(id)) this.toload.removeChild(getElement(id));
          },         
          hidepage: function(){ 
            this.toload=document.getElementsByTagName("body").item(0);
            prismDOM.setstyle(this.toload,'visibility','hidden');
            this.loaddiv = new prismDOM.create('div','loadpage',null);
            prismDOM.setstyle(this.loaddiv,'backgroundColor','#FFFFFF');
            prismDOM.setstyle(this.loaddiv,'visibility','visible');
            prismDOM.setstyle(this.loaddiv,'width', '100%');
            prismDOM.setstyle(this.loaddiv,'paddingTop', pageHeight()/2-100 + 'px');
            this.toload.appendChild(this.loaddiv);          
          },
          loadingpage: function(){ 
              this.hidepage();
              WriteOutput('loadpage','<font size="2"><center><img src="'+prismimage[10]+'"><br><br>please wait ... loading ...</center></label>');   
            },
          showpage: function(){ 
              this.toload = document.getElementsByTagName("body").item(0);
              this.toload.id = 'mainbody';               
              if(document.getElementById('loadpage')){
                this.toload.removeChild(document.getElementById('loadpage'));            
              }
              prismDOM.setstyle(this.toload,'visibility','visible');
           },              
          setevents: function(){
            if(this.options.leftBlock) addAjaxEvent(window, 'load', setupYposition);
            addAjaxEvent(document, 'mousedown', this.mousedownlistener);
            addAjaxEvent(document, 'mouseup', this.onmouseuplistener);                    
            
            //Add mouse move event this way because of the problem with IE
            document.onmousemove = function(e){                                  
    	   														resizeFrames(e); //enable frame movement																	
    																if (ddEnabled) dd(e);	//enable dragging
                                    if (rrEnabled) resizeWindow(e);	//enable resizing                                  
    	 														};
          },
          setvariables: function(){
            dragx=false;
    			  dragy=false;    			  
    			  if(this.options.leftBlock) y = this.options.leftBlockWidth;
    			  b = 15; //border width       
          },
          mousedownlistener: function(e){
						if(openWindowID) ddInit(e,openWindowID,'movebar'); //Initialize drag and drop
            if(resizeWindowID) resizeInit(e,resizeWindowID,'resizebar'); //Initialize resizing
          },
          onmouseuplistener: function(e){
            ddEnabled=false; //disable dragging
    				mup(e); //disabled move
            rrEnabled=false; //disable resizing
          },
          onmousemovelistener: function(e){
            resizeFrames(e); //enable frame movement																	
      			if (ddEnabled) dd(e);	//enable dragging
            if (rrEnabled) resizeWindow(e);	//enable resizing  
          }
       //};
   });
	
   
  //Custom Elements Builder
  var prismCustomElementObject = function() {};  
  var prismCustomElement = Class.create();
  prismCustomElement.prototype = Object.extend(new prismCustomElementObject(), { 
    initialize: function(options) {    
      this.setOptions(options);
      if(this.options.action) eval("this." + this.options.action + "();");
    },
    setOptions: function(options) {
      this.options = {}             
      Object.extend(this.options, options || {});
    },
    ieelement: function(element,id,type,targ,pathsrc) {
		  try{
        this.ifr = "<" + element + " name=\"" + id + "\" id=\"" + id + "\"";
        if(type && type == 'uploader') this.ifr += " enctype='multipart/form-data' method='POST'";
        else if(type && type == 'post') this.ifr += " method='POST'"; 
				if(targ) this.ifr += " target='" + targ + "'";
        if(pathsrc) this.ifr += " action='" + pathsrc + "'";
        this.ifr += "><\/" + element + ">"        
        this.elem = prismDOM.create(this.ifr);
      } catch(err){
        this.elem = prismDOM.create(element);
        this.elem.name = id;
        this.elem.id = id;
        if(targ) this.elem.target = targ;
        if(pathsrc) this.elem.action = pathsrc;
        if(type && type == 'uploader') {this.elem.enctype = 'multipart/form-data';this.elem.method = 'POST';} 
				else if(type && type == 'post') this.elem.method = 'POST';
      }
      return this.elem;
    },
    fileuploader: function() {
       this.myform = this.ieelement("form",this.options.elementId,'uploader');
       prismDOM.setstyle(this.myform,'margin','0');
       if(this.options.elementId) this.myform.setAttribute('target',this.options.elementId + 'socket');
       if(this.options.uploadAction) this.myform.action = this.options.uploadAction;

       this.myiframe = this.ieelement("iframe",this.options.elementId + "socket");
       prismDOM.setstyle(this.myiframe,'width','1px');
       prismDOM.setstyle(this.myiframe,'height','1px');
       this.myiframe.frameBorder = 0;
       this.myform.appendChild(this.myiframe);
       
       if(this.options.objToBeAttached) this.myform.appendChild(this.options.objToBeAttached);
       if(this.options.attachTo) this.options.attachTo.appendChild(this.myform);
    return this.myform;
    },
		loginarea: function() {
			this.forms = "<form name=\"" + this.options.elementId + "\" id=\"" + this.options.elementId + "\" action=\"index.cfm\" method=\"post\"><input type=\"hidden\" name=\"ci_uuid\" value=\"089B50E1-10DC-3D95-FB05181AFC2AA295\"><\/form>";
			WriteOutput(this.options.attachTo, this.forms);
			getElement(this.options.elementId).submit();			
		},
    fileuploaderv2: function() {
       this.myiframe = this.ieelement("iframe",this.options.elementId);
       prismDOM.setstyle(this.myiframe,'width','1px');
       prismDOM.setstyle(this.myiframe,'height','1px');
       this.myiframe.frameBorder = 0;
       if(this.options.attachTo) this.options.attachTo.appendChild(this.myiframe);
    return this.myiframe;
    },
    tablecell: function() {
      this.cell = prismDOM.create('td');
      
      if(this.options.inputType == 'htmltext' || this.options.inputType == 'htmllink'){
          this.htmltext = document.createTextNode(this.options.titleText, 0);
          //create link
          if(this.options.inputType == 'htmllink') {
            this.linka = prismDOM.create('a');
            this.linka.href = "javascript:void(0);";
						if(this.options.elementId) {this.linka.name = this.options.elementId;}
            if(this.options.textLink) this.linka.onclick = new Function("e", this.options.textLink);
            this.linka.appendChild(this.htmltext); 
            this.htmltext = this.linka;
          }      
        this.cell.appendChild(this.htmltext);  
        if(this.options.titleClass) this.cell.className = this.options.titleClass;        
      }
			else if(this.options.inputType == 'html'){
				prismDOM.sethtml(this.cell, this.options.titleText);	 
			}
      else if(this.options.inputType == 'spacer') {
        prismDOM.setstyle(this.cell,'width',this.options.spacerWidth) 
        if(this.options.elementId) this.cell.id = this.options.elementId;
        if(this.options.objectDisplay) this.cell.style.display = this.options.objectDisplay;
      }
      else if(this.options.inputType == 'calendar') {
        this.options.attachToTemp = this.options.attachTo;
        this.options.attachTo = this.cell;
        this.calendar();
        this.options.attachTo = this.options.attachToTemp;        
      }
      else if(this.options.inputType == 'ciidfield') this.cell.appendChild(this.ciidfield());
      else this.cell.appendChild(this.formelement());
      
     if(this.options.rowSpan) this.cell.rowSpan = this.options.rowSpan;
     if(this.options.colSpan) this.cell.colSpan = this.options.colSpan;
     if(this.options.noWrap) this.cell.noWrap = true;
     if(this.options.tdWidth) prismDOM.setstyle(this.cell,'width',this.options.tdWidth);
     if(this.options.tdAlign) this.cell.align = this.options.tdAlign;
     if(this.options.tdVAlign) this.cell.vAlign = this.options.tdVAlign;     
     if(this.options.attachTo) this.options.attachTo.appendChild(this.cell); 
    },
    fieldfamily: function() {
       this.mcc = prismDOM.create('span');
       this.mcc.setAttribute('align','left');
       this.mcc.style.padding = '10px';
       if(this.options.titleText) this.mcc.appendChild(document.createTextNode(this.options.titleText, 0));  
       if(this.options.titleClass) this.mcc.className = this.options.titleClass;
       if(this.options.inputType){
         if(this.options.inputType == 'ciidfield') this.mcc.appendChild(this.ciidfield());
         else this.mcc.appendChild(this.formelement());        
       }
       if(this.options.titleText2) this.mcc.appendChild(document.createTextNode(this.options.titleText2, 0));  
       if(this.options.titleClass) this.mcc.className = this.options.titleClass;
        
       if(this.options.attachTo) this.options.attachTo.appendChild(this.mcc);
       if(this.options.assignTo) getElement(this.options.assignTo).appendChild(this.mcc);
    },
    formlinepart: function() { 
       this.mcc = prismDOM.create('td');       
       if(this.options.titleText) this.mcc.appendChild(document.createTextNode(this.options.titleText, 0));  
       if(this.options.titleClass) this.mcc.className = this.options.titleClass;       
       if(this.options.attachTo) this.options.attachTo.appendChild(this.mcc);       
       this.mcc = prismDOM.create('td');
       if(this.options.inputType) this.mcc.appendChild(this.formelement());
       if(this.options.attachTo) this.options.attachTo.appendChild(this.mcc);
    }, 
    formline: function() { 
       this.mcr = prismDOM.create('tr');
       if(this.options.rowDisplay) this.mcr.style.display = this.options.rowDisplay;
       this.mcc = prismDOM.create('td');
       if(this.options.titleTdWidth) prismDOM.setstyle(this.mcc, 'width', this.options.titleTdWidth);
       if(this.options.colSpanValue) this.mcc.colSpan =  this.options.colSpanValue;    
       if(this.options.titleText) this.mcc.appendChild(document.createTextNode(this.options.titleText, 0));  
       if(this.options.titleClass) this.mcc.className = this.options.titleClass;
       this.mcr.appendChild(this.mcc);
       this.mcc = prismDOM.create('td');
       if(this.options.colSpanValue2) this.mcc.colSpan =  this.options.colSpanValue2; 
       if(this.options.inputType == 'calendar') {
          this.options.attachToTemp = this.options.attachTo;
          this.options.attachTo = this.mcc;
          this.calendar();
          this.options.attachTo = this.options.attachToTemp;
       }
       else if(this.options.inputType == 'ciidfield') {
          this.options.attachToTemp = this.options.attachTo;
          this.options.attachTo = this.mcc;
          this.ciidfield();
          this.options.attachTo = this.options.attachToTemp;
       }
       else if(this.options.inputType == 'memberid') {
          this.options.attachToTemp = this.options.attachTo;
          this.options.attachTo = this.mcc;
          this.memberid();
          this.options.attachTo = this.options.attachToTemp;
       }
       else if(this.options.inputType == 'htmltext' || this.options.inputType == 'htmllink') {
          if(this.options.elementId) this.mcc.id = this.options.elementId; 
          prismDOM.setstyle(this.mcc, 'height', '25px');
          this.htmltext = document.createTextNode(this.options.elementValue, 0);
          //create link
          if(this.options.inputType == 'htmllink') {
            this.linka = prismDOM.create('a');
            this.linka.href = "javascript:void(0);";
            if(this.options.textLink) this.linka.onclick = new Function("e", this.options.textLink);
            this.linka.appendChild(this.htmltext); 
            this.htmltext = this.linka;
          }
          this.mcc.appendChild(this.htmltext);          
          if(this.options.titleClass) this.mcc.className = this.options.titleClass;
          this.mcr.appendChild(this.mcc);          
       }
       else if(this.options.inputType){
          this.mcc.appendChild(this.formelement());                     
       }
       this.mcr.appendChild(this.mcc); 
       if(this.options.attachTo) this.options.attachTo.appendChild(this.mcr);
       //working with enhanced properties
       if(this.options.enhancedFieldData) this.enhancedFields(this.options); 
    },    
    insertfields: function() {  
      this.enhancedFields(this.options);
    },
    enhancedFields: function(options) {      
      this.options = options; this.dataArray = this.options.enhancedFieldData; 
      try{this.data = createArrayFromList(this.dataArray['FieldsContent']);}catch(err){return false;}
      for(var d = 0; d < this.data.length; d++){
        this.fieldData = createArrayFromList(this.dataArray['Data' + this.data[d]],'^');
        if(this.fieldData[2]=='radio'){//create radio buttons special exceptions for IE
          this.mcrd = prismDOM.create('tr');this.mccd = prismDOM.create('td');
          this.mccd.className = (this.fieldData[6])?'labelBold':'label';this.htmls = this.fieldData[0];
          prismDOM.sethtml(this.mcrd.appendChild(this.mccd), this.htmls);               
          this.mccd = prismDOM.create('td');
          if(this.options.colSpanValue2) this.mccd.colSpan = this.options.colSpanValue2;
          this.slv = createArrayFromList(this.fieldData[5],'|');
          this.htmls = ""; 
          for(var sl = 0; sl < this.slv.length; sl++){
            this.htmls += "<input type=\"radio\" name=\"" + this.fieldData[1] + "\" id=\"" + this.fieldData[1] + "\" value=\"" + this.slv[sl] + "\"";
            if(this.options.buttonEnable) this.htmls += "onclick=\"buttonDisabled(buttonname,false);\"";
            if(this.slv[sl] == EnhancedFieldsArray[this.fieldData[1]]) this.htmls += " checked";
            this.htmls += "><label>&nbsp;" + this.slv[sl] + "<\/label><br \/>";
          } 
               prismDOM.sethtml(this.mcrd.appendChild(this.mccd), this.htmls); 
          if(this.options.attachTo) this.options.attachTo.appendChild(this.mcrd);
          
               
        } else { //create all other elements
        new prismCustomElement({
            attachTo: (this.options.attachTo)?this.options.attachTo:null, 
            action: 'formline',
            titleText: this.fieldData[0],
            titleClass: (this.fieldData[6])?'labelBold':'label',
            inputType: (this.fieldData[2]=='currency' || this.fieldData[2]=='phone' || this.fieldData[2]=='url')?'text':(this.fieldData[2]=='selectMultiple' || this.fieldData[2]=='location' || this.fieldData[2]=='membershipPlan')?'select':this.fieldData[2],
            inputClass: (this.options.inputClass)?this.options.inputClass:'inputField',
            colSpanValue2: (this.options.colSpanValue2)?this.options.colSpanValue2:null,
            elementDisabled: (this.fieldData[4]==1)?true:null,
            selectOptions: (this.fieldData[2]=='location')?locationObjArray:(this.fieldData[2]=='membershipPlan')?membershipplanObjArray:createArrayFromList(this.fieldData[5],'|'),
            selectValues: (this.fieldData[2]=='location')?locationObjArrayId:(this.fieldData[2]=='membershipPlan')?membershipplanObjArrayId:createArrayFromList(this.fieldData[5],'|'),
            elementHeight: (this.fieldData[2]=='selectMultiple' || this.fieldData[2]=='textarea' || this.fieldData[2]=='membershipPlan')?'5':null,               
            elementId: this.fieldData[1],
            elementWidth: (this.fieldData[2]=='checkbox')?null:(checkArray('EnhancedFieldsArray') && EnhancedFieldsArray['defaultWidth'])?EnhancedFieldsArray['defaultWidth']:'300px',
            elementValue: EnhancedFieldsArray[this.fieldData[1]],
            maxLength: (this.fieldData[3])?this.fieldData[3]:(this.fieldData[2]!='textarea')?'255':null,
            buttonEnable: (this.options.buttonEnable)?this.options.buttonEnable:null,
            saveByEnter: (this.options.saveByEnter)?this.options.saveByEnter:null,
            applyFilter: (this.fieldData[2]=='url')?'url':null,
            onBlurEvent: (this.fieldData[2]=='currency')?"setFieldFilter(this,this,'$')":(this.fieldData[2]=='phone')?"setFieldFilter(this,this,'USTel')":null                
            }); 
         }
      }
    },
    formelement: function() {
      this.type = this.options.inputType;
			//Media browser
			if(this.options.inputType == 'media') this.type = 'text';    

      if(this.type == 'select')
        this.e = prismDOM.create(this.type);
      else if(this.type == 'checkbox'){       
        try{          
          this.ch = "<input type=\"checkbox\"";
          if(this.options.elementValue && this.options.elementValue == 1 && !this.options.doNotCheck) this.ch += " checked";
          this.ch += ">";
          this.e = document.createElement(this.ch);
        } catch(err){            
            this.e = prismDOM.create('input');
            this.e.type = this.type;
            if(this.options.elementValue && this.options.elementValue == 1 && !this.options.doNotCheck) this.e.checked = true;//check checkbox
        }
      }  
      else if(this.type == 'text' || this.type == 'textarea'){
        this.e = prismDOM.create('span');
        this.fcontent = "";this.fstyle = "";
        if(this.options.elementValue && this.type != 'textarea') this.fcontent += " value=\"" + unescape(this.options.elementValue) + "\"";
        else if(this.options.elementValue) this.areavalue = unescape(this.options.elementValue); else this.areavalue = "";  
        if(this.options.elementId) this.fcontent += " id=\"" + this.options.elementId + "\" name=\"" + this.options.elementId + "\"";
        if(this.options.inputClass) this.fcontent += " class=\"" + this.options.inputClass + "\"";
        if(this.options.elementHeight && this.type == 'textarea') this.fcontent += " rows=\"" + this.options.elementHeight + "\"";        
        if(this.options.maxLength) this.fcontent += " maxlength=\"" + this.options.maxLength + "\"";
        else if(!this.options.maxLength && this.type == 'text') this.fcontent += " maxlength=\"255\"";
        
        if(this.options.elementWidth) this.fstyle += "width:" + this.options.elementWidth + ";";
        if(this.options.objectDisplay) this.fstyle += "display:" + this.options.objectDisplay + ";";
        if(this.options.objectVisibility) this.fstyle += "visibility:" + this.options.objectVisibility + ";";
        
        if(this.options.applyFilter) {          
          this.fcontent += " onkeyup=\"setFieldFilter(this,this,'" + this.options.applyFilter + "'";
          if(this.options.applyMoreFilter) this.fcontent += ",'" + this.options.applyMoreFilter + "'";
          this.fcontent += ")\"";
        }
        if(this.options.onBlurEvent) this.fcontent += " onblur=\"" + this.options.onBlurEvent + "\" ";
				
				if(this.options.elementDisabled) this.fcontent += " disabled readonly";
         
        if(this.type == 'textarea') this.ee = "<" + this.type + " " + this.fcontent + " style=\"" + this.fstyle + "\" >" + this.areavalue + "<\/" + this.type + ">";
        else this.ee = "<input type=\"" + this.type + "\"" + this.fcontent + " style=\"" + this.fstyle + "\" />";        
        prismDOM.sethtml(this.e, this.ee);
			}
      else {        
          this.e = prismDOM.create('input');
          this.e.type = this.type;          
      }      
      
      if(this.type == 'select') {  //Create select box options
        if(!this.options.elementValue) this.options.elementValue = "";
        if(this.options.selectOptions && this.options.selectValues)
           this.createoptions(this.e, this.options.selectOptions, this.options.selectValues, this.options.elementValue);                         
      }
      else if(this.type == 'radio') {
        this.e.style.align = 'top';
      }
        if(this.type != 'text' && this.type != 'textarea'){
          if(this.options.elementId) this.e.id = this.options.elementId;
          if(this.options.elementId) this.e.name = this.options.elementId;
          if(this.options.elementValue) this.e.value = unescape(this.options.elementValue);          
          if(this.options.inputClass) this.e.className = this.options.inputClass;  
          if(this.options.elementWidth) prismDOM.setstyle(this.e,'width',this.options.elementWidth);
          if(this.options.elementHeight && this.type == 'select') {this.e.setAttribute('size',this.options.elementHeight);this.e.setAttribute('multiple',true);}
          if(this.options.maxLength) this.e.maxLength = this.options.maxLength;
          else if(!this.options.maxLength && this.type == 'text') this.e.maxLength = 255;        
          if(this.options.objectDisplay) this.e.style.display = this.options.objectDisplay;
          if(this.options.objectVisibility) this.e.style.visibility = this.options.objectVisibility;  
        }
        
        if(this.options.elementDisabled) {this.e.disabled = true;this.e.readonly = true;}
        
        //Attach events
        this.keyupdata = '';
        this.onclickdata = '';
        if(this.type == 'select') {
          this.oc = "";
          if(this.options.buttonEnable) this.oc += "buttonDisabled('" + this.options.buttonEnable + "',false);";
          if(this.options.onChangeAction) this.oc += this.options.onChangeAction + ";";
          this.e.onchange = new Function("e", this.oc);
					if(this.options.saveByEnter) this.e.onkeypress = new Function("e", "handleSavebyEnter((e)?e:event, '" + this.options.saveByEnter + "');");
        } else if(this.type == 'file' || this.type == 'checkbox' ) {
           if(this.options.buttonEnable) this.onclickdata += "buttonDisabled('" + this.options.buttonEnable + "',false);";
           if(this.options.onClickEvent) this.onclickdata += this.options.onClickEvent + ";";
           if(this.onclickdata != '') this.e.onclick = new Function("e", this.onclickdata);      
        } else { 
          //Media browser
					if(this.options.inputType == 'media'&&!this.options.elementDisabled) {
						if(this.options.browserMediaType&&this.options.browserMediaType==1) {
							this.options.attachHtml = "<input type=\"button\" name=\"browsebutton\" value=\"Browse\" onclick=\"openDigitalAssetBrowser('"+this.options.elementId+"');\"  class=\"newButtonStyle\" style=\"background-image:url('"+prismimage[7]+"');\">";
						} else {	
							this.onclickdata = "StartBrowser(getElement('"+this.options.elementId+"'),'"+this.options.browserMediaURL+"', 'mediabrowser')";
							this.options.attachHtml = "<input type=\"button\" name=\"browsebutton\" value=\"Browse\" onclick=\""+this.onclickdata+"\"  class=\"newButtonStyle\" style=\"background-image:url('"+prismimage[7]+"');\">";
						}
					}
					
					if(this.options.buttonEnable) this.e.onkeypress = new Function("e", "buttonDisabled('" + this.options.buttonEnable + "',false);");          
          if(this.options.onKeyUpEvent) this.keyupdata += this.options.onKeyUpEvent + ';';
          if(this.options.applyFilter) this.keyupdata += "setFieldFilter(this,this,'" + this.options.applyFilter + "');";
          if(this.options.saveByEnter) this.keyupdata += "handleSavebyEnter((e)?e:event, '" + this.options.saveByEnter + "');";
          if(this.options.onBlurEvent) this.e.onblur = new Function("e", this.options.onBlurEvent);
					if(this.options.onClickEvent) this.onclickdata += this.options.onClickEvent + ";";
          if(this.keyupdata != '') this.e.onkeyup = new Function("e", this.keyupdata);
					if(this.onclickdata != '') this.e.onclick = new Function("e", this.onclickdata); 
        }
             
        if(this.options.attachText || this.options.attachHtml){
             this.attable = prismDOM.create('table');
             this.attable.setAttribute('cellSpacing','0px');
             this.attable.setAttribute('cellPadding','2px');
             this.attablebody = prismDOM.create('tbody');
             this.atmcr = prismDOM.create('tr');             
             this.atmcc = prismDOM.create('td');
             this.atmcc.appendChild(this.e);             
             this.atmcr.appendChild(this.atmcc);
             this.atmcc = prismDOM.create('td');
             if(this.options.attachTextClass) this.atmcc.className = this.options.attachTextClass;             
             if(this.options.attachText) {
              this.textattach = document.createTextNode(this.options.attachText, 0);
              this.atmcc.appendChild(this.textattach);
             }
             else if(this.options.attachHtml) prismDOM.sethtml(this.atmcc, this.options.attachHtml);                          
             this.atmcr.appendChild(this.atmcc);
             this.attablebody.appendChild(this.atmcr);  
             this.attable.appendChild(this.attablebody);
             this.e = this.attable;
        }
       
			  if(this.options.attachElementTo) this.options.attachElementTo.appendChild(this.e);
        if(this.options.attachTo) this.options.attachTo.appendChild(this.e);
      return this.e;
    },
    pageslegend: function() { 
      if(!this.options.elementId || this.options.currentPage != 1) return false;
      else var id = this.options.elementId;
      eval(id + "_pagesArray = new Array();");
      eval(id + "_currentPage = 1");
      this.e = "<table cellpadding=0 cellspacing=0><tr>";
      if(this.options.boxTitle) this.e += "<td class=\"labelBold\" nowrap>" + this.options.boxTitle + "<\/td>";
      if(this.options.foundRecords) this.e += "<td><IMG SRC=\""+prismimage[12]+"\" WIDTH=20 HEIGHT=1 BORDER=0><\/td><td class=\"label\" nowrap>found " + this.options.foundRecords + " record(s)<\/td>";
      if(this.options.pagesNumber && this.options.pagesNumber > 1){        
        if(this.options.pagesNumber > this.options.pagesInLine) var showpages = this.options.pagesInLine;
        else var showpages = this.options.pagesNumber;        
        this.e += "<td><IMG SRC=\""+prismimage[12]+"\" WIDTH=20 HEIGHT=1 BORDER=0><\/td>";
        if(this.options.pagesNumber > this.options.pagesInLine) this.e += "<td onclick=\"prismCustomElement.prototype.pageslegendScroll(0,'" + id + "'," + this.options.pagesInLine + ",'" + this.options.onChangeAction + "');\" style=\"cursor:pointer;\" align=center class=\"pagenum\"><div style=\"width:30px;\"><img src=\"" + prismimage[32] + "\" width=11 height=11 border=0 align=baseline /><\/div><\/td>";
        
        for(var p=1; p <= showpages; p++) this.e += "<td id=\"" + id + "_page_" + p + "\" align=center class=\"pagenum\" style=\"cursor:pointer;\"><\/td>";
        for(var p=1; p <= this.options.pagesNumber; p++) eval(id + "_pagesArray.push(p)");

        if(this.options.pagesNumber > this.options.pagesInLine) this.e += "<td onclick=\"prismCustomElement.prototype.pageslegendScroll(1,'" + id + "'," + this.options.pagesInLine + ",'" + this.options.onChangeAction + "');\" style=\"cursor:pointer;\" align=center class=\"pagenum\"><div style=\"width:30px;\"><img src=\"" + prismimage[31] + "\" width=11 height=11 border=0 align=baseline /><\/div><\/td>";
      }
      this.e += "<\/tr><\/table>";
      if(this.options.insertInTo) WriteOutput(this.options.insertInTo,this.e);
      this.pageslegendBody(id, this.options.pagesInLine, this.options.onChangeAction);
    },
    pageslegendScroll: function(scrollto, id, inline, onaction) {
       if(scrollto != 1) {eval("var fa = " + id + "_pagesArray.pop();");eval(id + "_pagesArray.unshift(fa);");}
       else {eval("var fa = " + id + "_pagesArray.shift();");eval(id + "_pagesArray.push(fa);");}  
       this.pageslegendBody(id, inline, onaction);
    },
    pageslegendBody: function(id, inline, onaction) {     
      for(var count = 1; count <= inline; count++ ) {
        if(getElement(id + '_page_' + count)){
          eval("var cpage = " + id + "_pagesArray[count-1]");
          WriteOutput(id + '_page_' + count, "<div style=\"width:25px;\">" + cpage + "<\/div>");  
          getElement(id + '_page_' + count).onclick = new Function("e", id + "_currentPage=" + cpage + ";prismCustomElement.prototype.pageslegendBody('" + id + "'," + inline + ",'" + onaction + "');" + onaction + "(" + cpage + ");");
          if(eval(id + "_currentPage == cpage")) getElement(id + '_page_' + count).style.backgroundColor = "#c6e7ff"; 
          else getElement(id + '_page_' + count).style.backgroundColor = "#FFFFFF"; 
        }
       }      
    },
    pagesbox: function() {
      this.upid = "_" + this.options.elementId;
      if(getElement("cpageik" + this.upid)) this.pageSelected = getElement("cpageik" + this.upid).innerHTML; 
      else this.pageSelected = 1;
      this.e = "<span id=\"spanPage" + this.upid + "\" class=\"paginator\" onmouseover=\"this.style.borderColor='#000000';\"	onmouseout=\"this.style.borderColor='#cccccc';\" onclick=\"popUpPages(" + this.options.pagesNumber + ",'" + this.options.onChangeAction + "','" + this.upid + "')\">&nbsp;<span id=\"cpageik" + this.upid + "\">" + this.pageSelected	+ "<\/span>&nbsp;&nbsp;<IMG SRC='"+prismimage[14]+"' WIDTH='7' HEIGHT='4' BORDER=0>&nbsp;</span><div id='selectPage" + this.upid + "' style='z-index:+999;position:absolute;visibility:hidden;display:block;'></div>";
        if(!getElement(this.options.elementId) && this.options.pagesNumber > 1){
          this.div = document.createElement("div");
          this.div.id = this.options.elementId;
          this.div.style.visibility = 'hidden';
          this.div.style.position = "absolute";
          this.div.style.width = "190px";
          this.div.style.height = "100px";
          document.getElementsByTagName("body")[0].appendChild(this.div);	
          changeWindowIndex(this.options.elementId);  		
      		if(this.options.elementLeft) this.x = this.options.elementLeft; else this.x = 50;
          if(this.options.elementTop) this.y = this.options.elementTop; else this.y = 50; 
        }	
        this.partbody = "<div id='boxContainer'><div id='boxContent'><table width='95%' cellpadding=3 cellspacing=2  bgcolor=\"#FFFFFF\"><tr><td class=\"labelBold\" style=\"padding-left:5px;\">" + cutLine(this.options.boxTitle,25) + "<\/td><td rowspan=3 width=\"20\" valign=\"top\" id=\"movebar\" onmousedown=\"changeWindowIndex('" + this.options.elementId + "')\"><table cellpadding=0 cellspacing=0 width=\"100%\" border=0><tr><td width=\"25\" height=\"20\" align=\"right\"><a href=\"javascript:void(0)\" onclick=\"hidePopupWindow('" + this.options.elementId + "')\"><img src=\"" + prismimage[9] + "\" width=20 height=20 border=0><\/a><\/td></tr><tr><td style=\"cursor:move;background-image:url('" + prismimage[8] + "');\" height=\"30\"><layer width=\"100%\" onmouseover=\"isHot=true;\" onmouseout=\"isHot=false;\" height=\"25\">&nbsp;<\/layer><\/td><\/tr><\/table><\/td></tr><tr><td class=\"label\" style=\"padding-left:5px;\">Found " + this.options.foundRecords + " record(s)<\/td></tr><tr><td class=\"label\" style=\"padding-left:5px;\">Page&nbsp;&nbsp;" + this.e + "&nbsp;&nbsp;of&nbsp;&nbsp;" + this.options.pagesNumber +  "<\/td></tr></table><\/div><\/div>";      
         
        WriteOutput(this.options.elementId,this.partbody);			
  		  getElement(this.options.elementId).style.visibility = 'visible';
  		  getElement(this.options.elementId).style.top = this.y + "px";	
  		  getElement(this.options.elementId).style.left = this.x + "px"; 
    }, 
    savedsearches: function() { 
      if(this.options.onOpenCriteriaEvent) this.onopen = this.options.onOpenCriteriaEvent; else this.onopen = '';
      this.e = "<img src=\"" + prismimage[24] + "\" style=\"cursor:pointer;\" onclick=\"StartBrowser(this,'" + this.onopen + "','savedsearches','" + this.options.uniqueElementId + "');\" alt=\"Open Saved Search Criteria\">";
      if(this.options.attachTo) prismDOM.sethtml(this.options.attachTo,this.e);
      return this.e;  
    },
    memberid: function() { 
      this.e = prismDOM.create('input');
      this.e.type = 'text';
      prismDOM.setstyle(this.e,'width','100px');
      if(this.options.inputClass) this.e.className = this.options.inputClass;
      if(this.options.elementId) this.e.id = this.options.elementId;
      if(this.options.elementId) this.e.name = this.options.elementId;
      if(this.options.elementValue) this.e.value = this.options.elementValue; 
      if(this.options.elementDisabled) {this.e.disabled = true;this.e.readonly = true;}
      //this.e.onkeyup = new Function("e", "StartBrowser(this,'','ciidbrowser')");
      this.clicker = "StartBrowser(this,'','ciidbrowser');";
      if(this.options.buttonEnable) this.clicker += "buttonDisabled('" + this.options.buttonEnable + "',false);";      
      this.e.onclick = new Function("e", this.clicker);
      if(this.options.objectVisibility) this.e.style.visibility = this.options.objectVisibility; 
      if(this.options.attachTo) this.options.attachTo.appendChild(this.e);  
      return this.e;  
    },   
    ciidfield: function() { 
      this.e = prismDOM.create('input');
      this.e.type = 'text';
      prismDOM.setstyle(this.e,'width','100px');
      if(this.options.inputClass) this.e.className = this.options.inputClass;
      if(this.options.elementId) this.e.id = this.options.elementId;
      if(this.options.elementId) this.e.name = this.options.elementId;
      if(this.options.elementDisabled) {this.e.disabled = true;this.e.readonly = true;}
      if(this.options.elementValue) this.e.value = this.options.elementValue;       
      this.e.onkeyup = new Function("e", "StartBrowser(this,'','ciidbrowser')");
      this.clicker = "StartBrowser(this,'','ciidbrowser');";
      if(this.options.buttonEnable) this.clicker += "buttonDisabled('" + this.options.buttonEnable + "',false);";      
      this.e.onclick = new Function("e", this.clicker);
      if(this.options.objectVisibility) this.e.style.visibility = this.options.objectVisibility; 
      if(this.options.attachTo) this.options.attachTo.appendChild(this.e);  
      return this.e;  
    },
    calendar: function() { 
      if(!this.options.dateFormat) this.options.dateFormat = 'mm/dd/yyyy';
			if(this.options.elementDisabled) this.eddd = "disabled readonly"; else this.eddd = "";
      if(this.options.populateFields) this.pf = "'" + this.options.populateFields + "'"; else this.pf = null;
      if(this.options.dateFormat) this.df = this.options.dateFormat; else this.df = 'mm/dd/yyyy';
      this.eb = "";
      if(this.options.buttonEnable) this.eb += "buttonDisabled('" + this.options.buttonEnable + "',false);";
      if(this.options.onClickEvent) this.eb += this.options.onClickEvent + ";";
      if(this.options.onBlurEvent) this.eblur = this.options.onBlurEvent + ";";
      this.keup = "";
      this.keup += "DateTimeFilter('date',this,event,'" + this.options.dateFormat + "');";
      if(this.options.onKeyUpEvent) this.keup += this.options.onKeyUpEvent + ";";    
      this.tabimg = "<table cellpadding=0 cellspacing=0><Tr><td><input type=\"text\" size=10 value=\"";
      if(this.options.elementValue) this.tabimg += this.options.elementValue;
       this.tabimg += "\" id=\"" + this.options.elementId + "\" onblur=\"" + this.eblur + "\" " + this.eddd + " onclick=\"" + this.eb + "openCalendar(getElement('" + this.options.elementId + "'),'" + this.df + "', " + this.pf + ");\" name=\"" + this.options.elementId + "\" class=\"" + this.options.inputClass + "\" maxlength=\"10\" onkeyup=\"" + this.keup + "\"><\/td>";
      if(this.eddd == "") this.tabimg += "<td><a href=\"javascript:void(0);\" onclick=\"openCalendar(getElement('" + this.options.elementId + "'),'" + this.df + "', " + this.pf + ");\"><img src=\"" + prismimage[13] + "\" border=0 alt=\"Change Date\" width=\"19\" height=\"19\" align=\"baseline\" onclick=\"" + this.eb + "\"><\/a><\/td><\/TR><\/table>";
      if(this.options.attachTo)  prismDOM.sethtml(this.options.attachTo, this.tabimg);
    },
    createoptions: function(obj, opt, opts, selectedV) {       
      var opengroup = null;          
      for (var i = 0; i < opt.length; i++){
        if(Trim(opts[i]) == 'optgroup') {
          if(opengroup != opt[i] && optGroup) obj.appendChild(optGroup);
          opengroup = opt[i];         
          var optGroup = document.createElement('optgroup');
              optGroup.label = opt[i];              
          } 
        else {
          var objOption=document.createElement("option");
              objOption.innerHTML = opt[i];
              objOption.value = opts[i];
              if(opengroup && optGroup) optGroup.appendChild(objOption);
              else obj.appendChild(objOption);
          }
        if(i == opt.length-1 && optGroup) obj.appendChild(optGroup);         
      }      
    },
    multipleBoxesSet: function() {
       if(this.options.boxHeight) this.hhh = this.options.boxHeight; else this.hhh = 140;
       if(this.options.boxWidth) this.www = this.options.boxWidth/2-30; else this.www = null;
       //first filter the data
       this.availabledata = new Array();
       this.assigneddata = new Array();
       for(var v = 0; v < this.options.allValues.length; v++){
        if(this.options.dataValues['T' + this.options.allValues[v]] && this.options.dataValues['T' + this.options.allValues[v]] == 1)
          this.assigneddata.push(this.options.allValues[v]);
        else if(this.options.dataValues['T' + this.options.allValues[v]] || this.options.dataValues['T' + this.options.allValues[v]] == 0)  
          this.availabledata.push(this.options.allValues[v]);
       }

       this.box = prismDOM.create('table');
       this.box.setAttribute('cellSpacing','2px');
       this.box.setAttribute('cellPadding','2px');
       this.box.setAttribute('width','100%');
       this.mytablebody = prismDOM.create('tbody');  
       this.mcrd = prismDOM.create('tr');       
       //create first box
       this.mccd = prismDOM.create('td');       
       this.box1 = this.multiplebox(this.options.titleText, this.options.elementId, this.availabledata, this.www, this.hhh, 1);
       this.mccd.appendChild(this.box1);
       this.mcrd.appendChild(this.mccd);
       //create buttons
       this.mccd = prismDOM.create('td');
       this.mccd.setAttribute('width','25px');
       this.buttonskeleton = "<input type=\"button\" style=\"width:25px;font-size:12px;\" class=\"newButtonStyle\" value=\"";
       
       this.butaction = this.options.refreshAction + ";";
       if(this.options.buttonEnable) this.butaction += "buttonDisabled('" + this.options.buttonEnable + "',false);"; 
       this.buttondom1 = this.buttonskeleton + "&rarr;\" onclick=\"SelectAllCheckboxes('"+this.options.elementId+"','"+this.options.dataArray+"',1);"+this.butaction+"\">";          
       this.buttondom2 = this.buttonskeleton + "&larr;\" onclick=\"SelectAllCheckboxes('"+this.options.elementId2+"','"+this.options.dataArray+"',0);"+this.butaction+"\">"
       prismDOM.sethtml(this.mccd,this.buttondom1);
       prismDOM.sethtml(this.mccd,this.buttondom2);
       this.mcrd.appendChild(this.mccd);
       //create second box
       this.mccd = prismDOM.create('td');       
       this.options.elementId = this.options.elementId2;
       this.box2 = this.multiplebox(this.options.titleText2, this.options.elementId2, this.assigneddata, this.www, this.hhh, 0);
       this.mccd.appendChild(this.box2);
       this.mcrd.appendChild(this.mccd);
       this.mytablebody.appendChild(this.mcrd);
       this.box.appendChild(this.mytablebody);
       
       if(this.options.attachTo) this.options.attachTo.appendChild(this.box);  
       else return this.box;              
    },
    multiplebox: function(title,id,options,www,hhh,typebox) {
       this.multipleb = new prismDOM.fieldset(null,title, '0 10 10 10',null, id, function(){SelectAllCheckboxes(this)});   
       this.boxik = new prismDOM.create('div',id);             
       prismDOM.setstyle(this.boxik,'overflow','auto');  
       prismDOM.setstyle(this.boxik,'overflowX','hidden');
       if(www) prismDOM.setstyle(this.boxik,'width',www);
       if(hhh) prismDOM.setstyle(this.boxik,'height',hhh);       
       
       this.selection = prismDOM.create('table');
       this.selection.setAttribute('cellSpacing','1px');
       this.selection.setAttribute('cellPadding','3px');
       this.selection.setAttribute('width','100%');
       this.selectionB = prismDOM.create('tbody');  
       for(var s=0; s < options.length; s++){       
        if(s%2) this.classe = 'tableMouseOutCell';
        else this.classe = 'tableMouseOutCell2';

        this.sel = prismDOM.create('tr');
        this.sel.className = this.classe;
        
        this.selTD = prismDOM.create('td');
        this.selTD.setAttribute('width','25px');
        prismDOM.setstyle(this.selTD,'paddingLeft','7px');
        this.options.inputType = 'checkbox';
        
        this.options.elementValue = options[s];
        this.options.doNotCheck = true;
        this.selcheck = this.formelement();
        this.selTD.appendChild(this.selcheck);
        this.sel.appendChild(this.selTD);        
        //Create default feature
        if(typebox==0 && this.options.defaultElement) {
          this.theword = "languagedefimage";
          this.selTD = prismDOM.create('td');
          this.selTD.setAttribute('width','30px');
          this.clickaction = "replacePrismDefaultImage('" + this.theword + "_"+s+"',"+this.theword.length+",29,28);"+this.options.defaultElement+"="+options[s]+";";
          if(this.options.buttonEnable) this.clickaction += "buttonDisabled('" + this.options.buttonEnable + "',false);";
          
          if(this.options.elementValue == eval(this.options.defaultElement) ) {
            prismDOM.createimage(this.theword+"_"+s, prismimage[29], this.selTD, this.clickaction, "Default");
          }
          else {
            prismDOM.createimage(this.theword+"_"+s, prismimage[28], this.selTD,  this.clickaction, "Default");
         }
          this.sel.appendChild(this.selTD);
        } else if(typebox==0 && this.options.statusSelectBox) {
					eval("var cst="+this.options.statusSelectBox+"['T"+options[s]+"']");
					var htmls = "<select style='width:85px;' onchange=\"buttonDisabled('" + this.options.buttonEnable + "',false);"+this.options.statusSelectBox+"['T"+options[s]+"']=this.options[this.selectedIndex].value\"><option value=0";
					if(!checkNum(cst)||cst==0) htmls += " selected";htmls += ">Not Approved<option value=1";
					if(cst==1) htmls += " selected";htmls += ">Active<option value=2";
					if(cst==2) htmls += " selected";htmls += ">Suspended</select>";
					this.selTD = prismDOM.create('td');this.selTD.setAttribute('width','90px');
					prismDOM.sethtml(this.selTD, htmls);
					this.sel.appendChild(this.selTD);
				} else if(typebox==0 && this.options.statusBox) {
					if(checkIt('msie')) var vtops = 0; else var vtops = -10;
					eval("var ccst = " + this.options.statusBox + "['T"+options[s]+"']");
					if(ccst==0)ttops=0; else if(ccst==1)ttops=-22; else ttops=-44;
					var htmls = "<span style='position:relative;height:22;width:35;top:"+vtops+"px;'><span style='position:absolute;margin:0px;padding:0;height:22;top:0;left:0;width:35;clip:rect(0 35 22 0);overflow:hidden'><img border=0 src='" + imgDir + "status.gif' style='position:absolute;top:"+ttops+";left:0' width=35 height=66 onclick=\"buttonDisabled('" + this.options.buttonEnable + "',false);cst="+this.options.statusBox+"['T"+options[s]+"'];if(cst==0)tops=0;else if(cst==1)tops=-22;else tops=-44;if(cst>1){cst=-1;tops=22;};cst++;tops-=22;"+this.options.statusBox+"['T"+options[s]+"']=cst;this.style.top=tops;\"></span></span>";
					this.selTD = prismDOM.create('td');this.selTD.setAttribute('width','35px');
					prismDOM.sethtml(this.selTD, htmls);
					this.sel.appendChild(this.selTD);
				}
        //end create default feature
        //Create text field feature
        if(typebox==0 && this.options.textFieldElementId) {
          this.selTD2 = prismDOM.create('td');
          if(this.options.textFieldWidth)  this.tw = this.options.textFieldWidth;
          else this.tw = "60px";
          this.eid = this.options.textFieldElementId + options[s];          
          this.selTD2.setAttribute('width', this.tw);          
          this.keyupaction = "";
          if(this.options.buttonEnable) this.keyupaction += "buttonDisabled('" + this.options.buttonEnable + "',false);";
          if(this.options.keyUpEvent) this.keyupaction += this.options.keyUpEvent;         
          try{eval("this.tv = " + this.options.textFieldDataArray + "['" + this.eid + "']");}catch(err){this.tv = "";}          
          this.texthtml = "<input type=\"text\" class=\"inputField\" style=\"width:" + this.tw + "\" id=\"" + this.eid + "\" name=\"" + this.eid + "\" value=\"" + this.tv + "\" onkeyup=\"" + this.keyupaction + "\">";
          prismDOM.sethtml(this.sel.appendChild(this.selTD2), this.texthtml);
        }
        //End Create text field feature
        this.selTD = prismDOM.create('td');
        this.clickaction = "";
        if(this.options.refreshAction)
          this.clickaction += this.options.dataArray+"['T"+options[s]+"']="+typebox+";"+this.options.refreshAction + ";";
        if(this.options.buttonEnable) this.clickaction += "buttonDisabled('" + this.options.buttonEnable + "',false);";
          this.selTD.ondblclick = new Function("e", this.clickaction);
          
        value = searchPrismArray(this.options.allValues,options[s])
        if(value!=-1) prismDOM.setbutvalue(this.selTD, this.options.allOptions[value]); 
        this.sel.appendChild(this.selTD);        
        this.selectionB.appendChild(this.sel);
       }       
       this.selection.appendChild(this.selectionB);
       this.boxik.appendChild(this.selection); 
       
       this.multipleb.appendChild(this.boxik);           
       return this.multipleb;      
       
    },
    clearScrollArrays: function() {
      delete tempDataScroll;   //remove temp array for language scroller
      delete tempDataScrollV; //remove temp array for language scroller
    },
    scrolltabs: function() {
				this.lcid = 'dataScrollMainConteiner';
        this.mybody=document.getElementById(this.options.attachTo);
        if(document.getElementById(this.lcid)) this.mybody.removeChild(document.getElementById(this.lcid));//remove previous block        
        if(!getArray('tempDataScroll')) tempDataScroll=this.options.dataValues;
        if(!getArray('tempDataScrollV')) tempDataScrollV=this.options.dataIds;

        //set defautl incase array is empty
        if(tempDataScrollV.length <=0) {
          if(this.options.defaultTabTitle && this.options.defaultTabId){
            tempDataScroll.push(this.options.defaultTabTitle);
            tempDataScrollV.push(this.options.defaultTabId);
          } else {
          tempDataScroll.push('None');
          tempDataScrollV.push(0);
         }
        }
       
        this.tabMenu = prismDOM.create('table',this.lcid);
        this.tabMenu.setAttribute('cellSpacing','0px');
        this.tabMenu.setAttribute('cellPadding','0px');
        this.tabMenu.setAttribute('width','97%');
        prismDOM.setstyle(this.tabMenu,'margin','10');
        this.tabMenutb = prismDOM.create('tbody');
        this.tabMenumcr = prismDOM.create('tr');    
        this.tabMenumcd = prismDOM.create('td');
             prismDOM.setstyle(this.tabMenumcd,'backgroundImage','url(\'' + prismimage[16] + '\')');
             prismDOM.setstyle(this.tabMenumcd,'backgroundRepeat', 'repeat-x'); 
             prismDOM.setstyle(this.tabMenumcd,'backgroundPosition', 'bottom left');        
              
        this.langConteiner = new prismDOM.create('div',this.options.elementId);             
             prismDOM.setstyle(this.langConteiner,'overflow','auto');  
             prismDOM.setstyle(this.langConteiner,'overflowX','hidden');
             prismDOM.setstyle(this.langConteiner,'width', '100%');
             if(this.options.elementHeight) prismDOM.setstyle(this.langConteiner,'height',this.options.elementHeight);
             prismDOM.setstyle(this.langConteiner,'padding','7px');
      
        this.t = prismDOM.create('table','datasuperscroller');
        this.tb = prismDOM.create('tbody', null);
        this.mcr = prismDOM.create('tr', null);        
        if(tempDataScrollV.length < 5) var finalstep = tempDataScrollV.length-1;
        else var finalstep = 5;
        for(var t=0; t <= finalstep; t++){  
          if((t==0 || t==5) && tempDataScrollV.length > 5){           
           this.mcd = prismDOM.create('td');
           prismDOM.setstyle(this.mcd,'cursor','pointer');
           prismDOM.setstyle(this.mcd,'width','15px');

           this.mcd.setAttribute('align','center');
					 if(t==0) {
            this.langaction = "tempDataScroll.unshift(tempDataScroll[tempDataScroll.length-1]);tempDataScroll.pop();";
            this.langaction += "tempDataScrollV.unshift(tempDataScrollV[tempDataScrollV.length-1]);tempDataScrollV.pop();";
           } else {
            this.langaction = "tempDataScroll.push(tempDataScroll[0]);tempDataScroll.shift();";
            this.langaction += "tempDataScrollV.push(tempDataScrollV[0]);tempDataScrollV.shift();";
           }
           this.langaction += this.options.actionOnScroll + "()";
           this.mcd.onclick = new Function("", this.langaction);   
           prismDOM.createimage(null, (t==0)?prismimage[26]:prismimage[27], this.mcd, null, 'More');
           this.mcr.appendChild(this.mcd);
           
          }
          if(t==5) break;
          this.tabaction = this.options.actionOnClick + "('" + tempDataScrollV[t] + "')";
          if(tempDataScrollV[t] == this.options.selectedScrollTab) this.ss = 1; else this.ss = 0;
          this.mcr.appendChild(prismDOM.menutab(null, null, this.ss, 1));       
          this.mcr.appendChild(prismDOM.menutab(tempDataScroll[t], this.tabaction, this.ss, 0));
          this.mcr.appendChild(prismDOM.menutab(null, null, this.ss, 2)); 
        }
        
        this.tb.appendChild(this.mcr);
        this.t.appendChild(this.tb);
        this.t.setAttribute('border','0px');
        this.t.setAttribute('cellSpacing','0px');
        this.t.setAttribute('cellPadding','0px');

        this.tsize = finalstep*14 + 20;
        prismDOM.setstyle(this.t,'width', this.tsize + '%');

        this.tabMenumcd.appendChild(this.t);
        this.tabMenumcr.appendChild(this.tabMenumcd);
        this.tabMenutb.appendChild(this.tabMenumcr);
        this.tabMenu.appendChild(this.tabMenutb);
        this.tabMenu.appendChild(this.langConteiner);        
        
        this.tabMenumcr = prismDOM.create('tr');    
        this.tabMenumcd = prismDOM.create('td'); 
        this.tabMenumcd.style.border = 'solid 1px #CCCCCC';
        this.tabMenumcd.style.borderTop = '0px';

        if(this.options.innerObj) this.langConteiner.appendChild(this.options.innerObj); 
        
        this.tabMenumcd.appendChild(this.langConteiner);
        this.tabMenumcr.appendChild(this.tabMenumcd);
        this.tabMenutb.appendChild(this.tabMenumcr);        
        
        if(this.mybody) this.mybody.appendChild(this.tabMenu);
        else return this.tabMenu;
    
    },    
    create: function(type, id, className, event, action, mouseover) {
      if(event && action && checkIt('msie')){
        this.el = "<" + type + " " + event + "=\"" + action + "\"";
        if(mouseover) this.el += " onmouseover=\"this.className=\'newtableMouseOver\'\"  onmouseout=\"this.className=\'"+className+"\'\"";         
        this.el += "><\/tr>";
        this.e = document.createElement(this.el);

        }
      else {
         this.e = document.createElement(type);
         if(mouseover){
          this.e.setAttribute('onmouseover','this.className=\'newtableMouseOver\'');
          this.e.setAttribute('onmouseout','this.className=\''+className+'\'');
         }
      }      
      if(event && action) this.e.setAttribute(event,action);
      if(id) {this.e.id = id;this.e.name = id;}			
      if(className) this.e.className = className;    
      return this.e;
      }
  });
  
  //MAIN DOM Builder
  var prismDOM = Class.create();
  prismDOM = {
    initialize: function(){},
    assignobject: function(where,what){
       if(getElement(where)) document.getElementById(where).appendChild(what);
       else where.appendChild(what);
    },      
    create: function(type, id, className, event, action, mouseover) {
      if(event && action && checkIt('msie')){
        this.el = "<" + type + " " + event + "=\"" + action + "\"";
        if(mouseover) this.el += " onmouseover=\"this.className=\'newtableMouseOver\'\"  onmouseout=\"this.className=\'"+className+"\'\"";         
        this.el += "><\/tr>";
        this.e = document.createElement(this.el);

        }
      else {
         this.e = document.createElement(type);
         if(mouseover){
          this.e.setAttribute('onmouseover','this.className=\'newtableMouseOver\'');
          this.e.setAttribute('onmouseout','this.className=\''+className+'\'');
         }
      }
      
      if(event && action) this.e.setAttribute(event,action);
      if(id) this.e.id = id;
      if(id) this.e.name = id;
      if(className) this.e.className = className;    
      return this.e;
      },
    removeobj: function(id, where) { 
      if(where) this.whereremove = document.getElementById(where); 
      else this.whereremove = document.getElementsByTagName("body").item(0);      
      if(this.whereremove && document.getElementById(id))
        try{this.whereremove.removeChild(document.getElementById(id))}catch(err){}; 
      return;      
      },
    setstyle: function(obj, st, va) { 
      eval("obj.style." + st + " = va");
      return;      
      },
    createinput: function(type, id, buttValue, className, nName, action) { 
       if(!className) className = 'newButtonStyle';        
       this.e = document.createElement(type);
       if(id) this.e.id = id;
       if(action) this.e.onclick = action;  
       if(nName) this.e.name = nName;
       if(className) this.e.className = className; 
       if(buttValue) prismDOM.setbutvalue(this.e, buttValue);      
       return this.e;      
      },
      sethtml: function(obj, txt) {
        this.typesB = new prismDOM.create('div');
        this.typesB.innerHTML = txt;
        obj.appendChild(this.typesB);
      },
      setbutvalue: function(obj, txt) {
        this.buttext = document.createTextNode(txt);    	 
        obj.appendChild(this.buttext);
        return;
      },      
      menutab: function(title, action, status, tt) { //tt: 0 - center part, 1 - left part, 2 - right part       
       this.mcc = prismDOM.create('td', null);       //status 1- active tab, 0 - disabled
       this.mcc.noWrap = true;
       if(tt == 1) {
            this.mcc.setAttribute('width','2px');
            if(status == 0) this.tabimg = prismimage[3]; else this.tabimg = prismimage[0]; 
            this.img = prismDOM.createimage(null,this.tabimg,this.mcc,null,title,2,20);
            this.img.width = 2; this.img.height = 20;            
            this.mcc.appendChild(this.img);
       } else if(tt == 2){
            this.mcc.setAttribute('width','2px');
            if(status == 0) this.tabimg = prismimage[4]; else this.tabimg = prismimage[1]; 
            this.img = prismDOM.createimage(null,this.tabimg,this.mcc,null,title,2,20);
            prismDOM.setstyle(this.mcc,'paddingRight','2px');       
       }  else {         
            this.mcc.setAttribute('align','center');
            if(status == 0) this.tabimg = prismimage[5]; else this.tabimg = prismimage[2]; 
            this.a = prismDOM.create('a', null, 'main');
            this.ct = document.createTextNode(cutLine(title,25), 0); 
            this.a.appendChild(this.ct); 
            this.a.setAttribute('href','javascript:'+action);                         
            this.mcc.appendChild(this.a);
            this.mcc.style.backgroundImage = 'url(' + this.tabimg + ')';       
            this.mcc.className = 'menuMouseOn';
            this.mcc.style.backgroundRepeat = 'repeat-x'; 
       }
       return this.mcc;       
      },              
      createtabs: function(where, id, st) {
        this.mybody = document.getElementById(where);
        try{this.mybody.removeChild(getElement(id));} catch(err){WriteOutput(id, '');}
        this.counttab = 0;
        this.selectedTab = st;
        
        this.t = prismDOM.create('table', id);
        this.tb = prismDOM.create('tbody', null);
        this.mcr = prismDOM.create('tr', null);
        for(var t=3; t < arguments.length; t = t + 2){         
         if(arguments[t] == 'null' || arguments[t] == null) this.counttab++;
         else{
          if(this.counttab == this.selectedTab) this.ss = 1; else this.ss = 0;
          this.mcr.appendChild(prismDOM.menutab(null, null, this.ss, 1));       
          this.mcr.appendChild(prismDOM.menutab(arguments[t], arguments[t + 1], this.ss, 0));
          this.mcr.appendChild(prismDOM.menutab(null, null, this.ss, 2));          
          this.counttab++;
          }
        } 
    
        this.tb.appendChild(this.mcr);
        this.t.appendChild(this.tb);
        this.t.setAttribute('border','0px');
        this.t.setAttribute('cellSpacing','0px');
        this.t.setAttribute('cellPadding','0px');
        this.t.setAttribute('border','0px');      
        if(document.getElementById(where)) this.mybody.appendChild(this.t); 
        else return this.t;
      },
      createimage: function(id, imag, obj, imghref, imgalt, imgwidth, imgheight) {         
         this.image = document.createElement('img');
         if(id) this.image.id = id;
	       this.image.src = imag;
         this.image.align = 'absmiddle';
         this.image.border = 0;
         if(imgwidth) this.image.width = imgwidth;
         if(imgheight) this.image.height = imgheight;
         if(imgalt) this.image.setAttribute('title',imgalt);
         if(imghref){
          prismDOM.setstyle(this.image,'cursor','pointer');          
          this.hr = prismDOM.create('a');
          this.hr.onclick = new Function("",imghref);          
          this.hr.appendChild(this.image);
          this.image = this.hr;
                    
         }         
         if(obj) obj.appendChild(this.image);        
         return this.image;
      },
      divscroll: function(id, height) {
        this.div = new prismDOM.create('div');
        if(id) this.div.id = id;
        prismDOM.setstyle(this.div,'height', height + 'px');
        prismDOM.setstyle(this.div,'overflow','auto');  
        prismDOM.setstyle(this.div,'overflowX','hidden');
        return this.div;  
      },
      loadiframe: function(id, width, height, content, attachTo) {
        this.ifr = new prismDOM.create('iframe');
        this.ifr.frameBorder = 0;
        if(id) this.ifr.id = id;                
        if(width) prismDOM.setstyle(this.ifr,'width', width + 'px');
        if(height) prismDOM.setstyle(this.ifr,'height', height + 'px');
        if(content) this.ifr.src = content;
        if(attachTo) attachTo.appendChild(this.ifr);
        else return this.ifr;
      },
      fieldset: function(id, value, margin, padding, checkbox, clickevent, cchecked) {
        this.e = new prismDOM.create('fieldset', id);  
        if(margin) prismDOM.setstyle(this.e,'margin',margin);        
        if(padding) prismDOM.setstyle(this.e,'padding',padding);      
        this.legend = new prismDOM.create('legend'); 
        this.legend.id = id + '_legend';       
        //add checkbox to the legend title
        if(checkbox){
          try{
            field = "<input type=\"checkbox\" value=\"1\" name=\"" + checkbox + "\" id=\"" + checkbox + "\"";
            if(cchecked && cchecked == 1) field += " checked";
            field += ">";
            this.check = document.createElement(field); 
          } catch (err){
            this.check = new prismDOM.create('input');
            this.check.type = 'checkbox';
            this.check.id = checkbox;
            this.check.name = checkbox;
            this.check.value = 1;
            if(cchecked && cchecked == 1) this.check.setAttribute('checked','true');
          }  
   
          if(clickevent) this.check.onclick = clickevent; 
          this.legend.appendChild(this.check);	
        }
        
        prismDOM.setbutvalue(this.legend, value);                  
        this.e.appendChild(this.legend);	
        return this.e;
      }
     
      
  }  
  //END DOM BUILDER
  
  //methods searches in array and returns the id if true or -1 if false
  function searchPrismArray(ar,vl){
    for(var a = 0; a < ar.length; a++) {
      if(ar[a] == vl) return a; 
    }
    return -1;    
  }
  function searchPrismList(list,tofind,delimiter){
    if(!delimiter) var delimiter = ","; 
    var temparray = createArrayFromList(list,delimiter);
    for(var a = 0; a < temparray.length; a++) {
      if(temparray[a] == tofind) return a; 
    }
    return -1;    
  }
  //Calculate div height
  function calculateDivH(val){
     return pageHeight()-val;
  }
  function calculateDivW(val){     
     return pageWidth()-val;
  }

  function createArrayFromList(list,delimiter){
     var startv = koma = 0;
     if(!delimiter) var delimiter = ",";
     var listArray = new Array();
         try{koma = list.indexOf(delimiter, koma);}catch(err){koma=-1;}       
     while(koma != -1){      
      var whereval = Trim(list.substring(startv,koma));
      listArray.push(whereval); 
      startv = koma + 1;
      koma = list.indexOf(delimiter, startv);           
     }               
     try{whereval = list.substring(startv,list.length);}catch(err){whereval=list;}
     if(whereval != '') listArray.push(whereval);   
     return listArray;    
  }
  function createListFromArray(array,delimiter){
     var newlist = "";
		 if(array.length==0) return newlist;
     if(!delimiter) var delimiter = ",";
     for(a = 0; a < array.length; a++){
       if(array[a]) {        
        if(newlist != '') newlist += delimiter; 
        newlist += array[a];        
       }
     }    
     return newlist;    
  }
  //Create popup windows
  function CreateQuickMessage(id, message, ww, hh, bgcolor, wleft, wtop, textClass, walign){  
      if(!bgcolor) bgcolor = 'c61000';
      var e = document.createElement("div");
      e.id = id;
      e.style.visibility = "hidden";
      e.style.position = "absolute";
      e.style.width = ww + "px";
      e.style.height = hh + "px";
      e.style.zIndex = "-1";
      document.getElementsByTagName("body")[0].appendChild(e);	
      changeWindowIndex(id);  		
      if(wleft) var x = wleft; else var x = Math.ceil(pageWidth() - ww - 25); 
  		if(wtop) var y = wtop; else var y = 0;
			if(!walign) var walign = 'center';
			if(!textClass) textClass = 'labelBoldWhite';
  		var partbody = "";	 
          partbody += "<div id='boxContainer'><div id='boxContent'><table width='100%' cellpadding=3 cellspacing=1><tr><td height='100%' class=\"" + textClass + "\" align='"+walign+"' valign='middle' bgcolor=\"#" + bgcolor + "\">" + message + "</td></tr></table><\/div><\/div>";          
          WriteOutput(id,partbody);			
    		  document.getElementById(id).style.visibility = 'visible';
    		  document.getElementById(id).style.top = y + "px";	
    		  document.getElementById(id).style.left = x + "px";
      return true;
    }
  //Create popup windows
  function CreateDOMPopup(id, ww, hh, toBeAttached, xx, yy){  
    CreatePopupWindow(id, ww, hh, '', null, toBeAttached, xx, yy);
  }
  function CreatePopupWindow(id, ww, hh, message, bgcolor, toBeAttached, xx, yy){  
      if(document.getElementById(id)) return false;
      if(!bgcolor) bgcolor = 'FFFFFF';
      var e = document.createElement("div");
      e.id = id;
      e.style.visibility = "hidden";
      e.style.position = "absolute";
      //e.style.overflow = "auto";
      e.style.overflowY = "hidden";
      divww = ww + 10; divhh = hh + 10;
      e.style.width = divww + "px";
      e.style.height = divhh + "px";
      e.style.zIndex = "-1";
      document.getElementsByTagName("body")[0].appendChild(e);	
      changeWindowIndex(id);
  		if(xx) var x = xx; else var x = Math.ceil(pageWidth()/4); 
  		if(yy) var y = yy; else var y = 50; 		
  		var partbody = "";	  
    			if(checkIt('msie')) partbody += "<iframe frameborder=\"0\" src=\"javascript:false;\" style=\"align:float;margin:9 0 0 9;height: " + hh + "px;position: absolute; width: " + ww + "px\"><\/iframe>"; 
          partbody += "<table width='98%'><tr><td height='98%' align='center' valign='middle'><div id='boxContainer'><div id='boxContent'><table cellpadding=0 cellspacing=10 width=\"100%\" border=0 align=center bgcolor=\"#" + bgcolor + "\"><tr><td id=\"movebar\" onmousedown=\"changeWindowIndex('" + id + "')\"><table cellpadding=0 cellspacing=0 width=\"100%\" border=0><tr><td style=\"cursor:move;background-image:url('" + prismimage[8] + "');\"><ilayer width=\"100%\" onSelectStart=\"return false\"><layer width=\"100%\" onMouseover=\"isHot=true;if (isN4) ddN4("+id+")\" onMouseout=\"isHot=false\" height=\"25\">&nbsp;<\/layer><\/ilayer><\/td><td width=\"25\" align=\"right\"><a href=\"javascript:\" onclick=\"deletePopupWindow('" + id + "')\"><img src=\"" + prismimage[9] + "\" width=20 height=20 border=0><\/a><\/td><\/tr><\/table><\/td><\/tr>";					
    			if(toBeAttached) partbody += "<tr><td id=\"popcontent_" + id + "\"><\/td><\/tr>"; 
          else partbody += message;          
    			partbody += "<\/table><\/div><\/div></td></tr></table>";
          WriteOutput(id,partbody);          
          if(toBeAttached) getElement('popcontent_' + id).appendChild(toBeAttached);          	
    		  document.getElementById(id).style.visibility = 'visible';
    		  document.getElementById(id).style.top = y + "px";	
    		  document.getElementById(id).style.left = x + "px";
      return true;
    }
    function hidePopupWindow(what){
			if(getElement(what)) getElement(what).style.left = (checkIt('msie'))?-165:-145 + "px";
	  }
    function deletePopupWindow(what){
      showElement( 'SELECT' );
      openWindowID = null;
			var d = document.getElementsByTagName("body")[0];
      var olddiv = document.getElementById(what);
      if(document.getElementById(what)) d.removeChild(olddiv);		
	  }
	
	document.write("<div style=\"position:absolute;top:0px;left:0px;width:400px;height:150px;visibility:hidden;z-index:-1;\" id=\"ErrorMessageID\"><\/div>");		

	function createErrorMessage(message){
		erorfield = 'ErrorMessageID';
    changeWindowIndex(erorfield);
		var x = Math.ceil(pageWidth()/4); 
		var y = 50; 		
		var partbody = "";	  
			partbody += "<iframe frameborder=\"0\" src=\"javascript:false;\" style=\"margin:9 0 0 9;height:100%;display:block;position: absolute; width: 100%\"><\/iframe><table width='100%'><tr><td height='100%' align='center' valign='middle'><div id='boxContainer'><div  id='boxContent'>";			
			partbody += "<table cellpadding=0 cellspacing=10 width=\"100%\" border=0 align=center>";		
			partbody += "<tr><td id=\"movebar\" onmousedown=\"changeWindowIndex('" + erorfield + "')\"><table cellpadding=0 cellspacing=0 width=\"100%\" border=0><tr><td style=\"cursor:move;background-image:url('" + prismimage[8] + "');\"><ilayer width=\"100%\" onSelectStart=\"return false\"><layer width=\"100%\" onMouseover=\"isHot=true;if (isN4) ddN4("+erorfield+")\" onMouseout=\"isHot=false\" height=\"25\">&nbsp;<\/layer><\/ilayer><\/td><td width=\"25\" align=\"right\"><a href=\"javascript:\" onclick=\"closeWindow('" + erorfield + "')\"><img src=\"" + prismimage[9] + "\" width=20 height=20 border=0><\/a><\/td><\/tr><\/table><\/td><\/tr>";					
			partbody += "<tr><td valign=top><fieldset><legend><img src=\"" + prismimage[11] + "\" width=17 height=17 hspace=10><\/legend><table cellpadding=2 cellspacing=5 border=0 width=\"100%\"><tr><td align=center height=\"50\"><label><strong>" + message + "<\/strong><\/label><\/td><\/tr><\/table>";	
			partbody += "<\/td></tr><\/fieldset><\/td><\/tr><tr><td align=\"center\"><button name=\"okbut\" onClick=\"closeWindow('" + erorfield + "')\" class=\"newButtonStyle\" style=\"background-image:url('" + prismimage[7] + "');\">Ok<\/button><\/td></tr><\/table><\/td><\/tr><\/table>";
			partbody += "<\/div><\/div></td></tr></table>";
			WriteOutput(erorfield,partbody);			
			document.getElementById(erorfield).style.visibility = 'visible';
		  document.getElementById(erorfield).style.top = y + "px";	
		  document.getElementById(erorfield).style.left = x + "px";	
	}
	function closeWindow(where){
	   	showElement( 'SELECT' );
      openWindowID = null;
			WriteOutput(where,'');			
			document.getElementById(where).style.visibility = 'hidden';
		  document.getElementById(where).style.top = 0 + "px";	
		  document.getElementById(where).style.left = 0 + "px";	
			document.getElementById(where).style.zIndex = "-1";
	}
	var openWindowID;
	function changeWindowIndex(id){
		if(openWindowID) document.getElementById(openWindowID).style.zIndex = "99";
		document.getElementById(id).style.zIndex = "100";
		openWindowID = id;
	}
	 
  function get_random(){
      var ranNum= Math.round(Math.random()*999999);
      return ranNum;
  } 
   
	//FIXING MOZZILLA 'ENTER' BUTTON BUG
	function handleEnter (field, event) {
	try{	
      var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;
			if (keyCode == 13) {
				//return false;
				var i;
				for (i = 0; i < field.form.elements.length; i++)
					if (field == field.form.elements[i]){
						break;
						}
				i = (i + 1) % field.form.elements.length;
				//field.form.elements[i].focus();
				return false;
			} 
			else return true;		
     } catch(err){}	
    }   
	//automatically save
	function handleSavebyEnter (event, action) {
	var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;
	if (keyCode == 13) if(action) eval(action);
	}
		
	function buttonDisabled(but,status){try{document.getElementById(but).disabled = status;}catch(err){but.disabled = status;}}	
	
	//DETECT SCREEN AVAILABLE RESOLUTION
	function pageWidth() {return window.innerWidth != null? window.innerWidth: document.documentElement && document.documentElement.clientWidth ? document.documentElement.clientWidth:document.body != null? document.body.clientWidth:null;}
	function pageHeight() {return window.innerHeight != null? window.innerHeight: document.documentElement && document.documentElement.clientHeight ? document.documentElement.clientHeight:document.body != null? document.body.clientHeight:null;}
	function posLeft() {return typeof window.pageXOffset != 'undefined' ? window.pageXOffset:document.documentElement && document.documentElement.scrollLeft? document.documentElement.scrollLeft:document.body.scrollLeft? document.body.scrollLeft:0;}
	function posTop() {return typeof window.pageYOffset != 'undefined' ? window.pageYOffset:document.documentElement && document.documentElement.scrollTop? document.documentElement.scrollTop: document.body.scrollTop?document.body.scrollTop:0;}
	function posRight() {return posLeft()+pageWidth();}
	function posBottom() {return posTop()+pageHeight();}
	
	//ADD AJAX EVENT LISTENERS
	function addAjaxEvent( 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 removeAjaxEvent( obj, type, fn ) { 
	  if ( obj.detachEvent ) { 
	    obj.detachEvent( 'on'+type, obj[type+fn] ); 
	    obj[type+fn] = null; 
	  } else 
	    obj.removeEventListener( type, fn, false ); 
	} 

	//DELETE METHOD
	function CheckCheckboxes(obj){if(!obj) return;
		selected = false; id = new Array(0);
		if(obj.length>1){
			for(h = 0; h < obj.length; h++ ){
				if(obj[h].checked) {selected = true;id[h]=obj[h].value;}	
			else id[h]=0;
			}
		} else { if(obj.checked) {id[0]=obj.value;selected = true;}}	
		return selected;
	}
	//Check Element
  function getElement(id){
  if(document.getElementById(id)) return document.getElementById(id);
  else return false;
  }
  //Check Array
  function getArray(array){
  try{return eval(array + '.length')}
  catch(err){return false;}
  }
  function checkArray(array){
  try{var ch=eval(array);return true;}
  catch(err){return false;}
  }
  function getFunction(func){
  try{return eval(func)}
  catch(err){return false;}
  }
  function getXML(xml){
  try{return xml.responseXML;}
  catch(err){return false;}
  }
	//Pinting
	function WriteOutput(where,what){if(getElement(where)) getElement(where).innerHTML = what;}
	
	//Select all checkboxes
	function SelectAll(forma,fild,obj){if(obj) {for(h = 0; h < obj.length; h++ ){if(fild.checked)obj[h].checked = true;else obj[h].checked = false;}}}
  
  function SelectAllCheckboxes(fild,updatedArrayName,tovalue){    
    if(!fild.name) fild = getElement(fild);		
    var obj = document.getElementsByTagName('input');
    for(t=0; t < obj.length; t++){
			var idshka = document.getElementsByTagName('input')[t];
      if(idshka.id == fild.name){        
        if(updatedArrayName){//update an array for multiple custom box
         if(idshka.checked) eval(updatedArrayName + "['T" + idshka.value + "'] = " + tovalue); 
        }
        else {
         if(fild.checked) idshka.checked = true; else idshka.checked = false;
        }
      }
    }
  }
  function MarkOneCheckbox(fild,boxid){    
    if(!fild.name) fild = getElement(fild);
    var obj = document.getElementsByTagName('input');
    for(t=0; t < obj.length; t++){
      var idshka = document.getElementsByTagName('input')[t];
      if(idshka.id == fild.name && idshka.value == boxid){        
        if(idshka.checked) idshka.checked = false; else idshka.checked = true;
      }
    }
  }
  function CheckCheckboxes2(tocheck){	
    if(!tocheck) var tocheck = 'delall'
    var selected = new Array();
		var obj = document.getElementsByTagName('input');
    for(t=0; t < obj.length; t++){ 
      if(obj[t].id == tocheck) if(obj[t].checked) selected.push(obj[t].value);      
    }
    return selected;
	}
	
	//DOMAIN CHECKING METHODS
function checkEmailField(email){
var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
if (filter.test(email)) return true;
else return false;
}
	function checkNum(data) {  
    try{
		if(data=='') return 0;   
		var valid = "0123456789"; 
		var ok = 1; var checktemp;
		for (var i=0; i<data.length; i++) {
			checktemp = "" + data.substring(i, i+1);
			if (valid.indexOf(checktemp) == "-1") return 0; }
		return 1;
		}catch(err){return 0;}
	}
	function checkString(data){
		data = data.toLowerCase();
		if(data=='') return 0;   
		var valid = "0123456789qwertyuioplkjhgfdsazxcvbnm.-/:_"; 
	var ok = 1; var checktemp;
	for (var i=0; i<data.length; i++) {
	checktemp = "" + data.substring(i, i+1);
	if (valid.indexOf(checktemp) == "-1") return 0; }
	return 1;
	}
	
	function checkDomain(nname){
	if(!checkString(nname)) {
		createErrorMessage("Please do not use unwanted characters");
		return false;
		}
	if (nname.indexOf('.') == "-1") {
		createErrorMessage("Domain name is not correct");
		return false;
		}
	return true;
	}
  
	//AJAX METHODS TO SET TABLES
	CURRENTRECORDLINE=0;
	function activateRow(row){document.getElementById(row).style.backgroundColor='#a5dcff';}
	function disactivRow(row){document.getElementById(row).style.backgroundColor='';}
	function prismTableStyles(tname){
	identify_tables(tname, 1, 0, '#f7f9f9', '#FFFFFF', '#f3f5f5', '#a5dcff');
	}
	function prismTableStyles2(tname){
	identify_tables(tname, 0, 0, '#f7f9f9', '#FFFFFF', '#f3f5f5', '#a5dcff');
	}
	function prism_set_color(str_color) {this.style.backgroundColor = str_color;}
	function prismInitialize(obj_table, col_config) {
	var col_lconfig = [],col_trs = obj_table.rows;
	if (!col_trs) return;
	for (var i = col_config.header_offset; i < col_trs.length - col_config.footer_offset; i++) {
		col_trs[i].config = col_config;col_trs[i].lconfig = col_lconfig;
		col_trs[i].set_color = prism_set_color;
		col_trs[i].onmouseover = prism_mover;
		col_trs[i].onmouseout = prism_mout;
		col_trs[i].onmousedown = prism_onclick;
		col_trs[i].order = (i - col_config.header_offset) % 2;
		col_trs[i].onmouseout();
	}
	}
	function prism_mover(){
	if(CURRENTRECORDLINE!=this.id) {
		if (this.lconfig.clicked != this)
			  this.set_color(this.config.mover_color);
		}
	}
	function prism_mout() {
	if(CURRENTRECORDLINE!=this.id) {
		if (this.lconfig.clicked != this)
			this.set_color(this.order ? this.config.odd_color : this.config.even_color);
		}
	}
	function prism_onclick () {
		CURRENTRECORDLINE=null;
		if(listingTable) prismTableStyles(listingTable);
		saveditem=this;
		last_clicked = this.lconfig.clicked;
		this.lconfig.clicked = this;
		if (last_clicked) last_clicked.onmouseout();
		this.set_color(this.config.onclick_color);
	}
	function prism_onsave (last_clicked) {
	saveditem.lconfig.clicked = saveditem;
	if (last_clicked) last_clicked.onmouseout();
	saveditem.set_color(saveditem.config.onclick_color);
	}
	function identify_tables (
	str_tableid, // table id (req.)
	num_header_offset, // how many rows to skip before applying effects at the begining (opt.)
	num_footer_offset, // how many rows to skip at the bottom of the table (opt.)
	str_odd_color, // background color for odd rows (opt.)
	str_even_color, // background color for even rows (opt.)
	str_mover_color, // background color for rows with mouse over (opt.)
	str_onclick_color // background color for marked rows (opt.)
	) {
	if (!str_tableid) return alert ("No table(s) ID specified in parameters");
	var obj_tables = (document.all ? document.all[str_tableid] : document.getElementById(str_tableid));
	if (!obj_tables) return alert ("Can't find table(s) with specified ID (" + str_tableid + ")");
	// set defaults for optional parameters
	var col_config = [];
	col_config.header_offset = (num_header_offset ? num_header_offset : 0);
	col_config.footer_offset = (num_footer_offset ? num_footer_offset : 0);
	col_config.odd_color = (str_odd_color ? str_odd_color : '#f7f7f7');
	col_config.even_color = (str_even_color ? str_even_color : '#dbeaf5');
	col_config.mover_color = (str_mover_color ? str_mover_color : '#e0e0e0');
	col_config.onclick_color = (str_onclick_color ? str_onclick_color : '#c41200');
	if (obj_tables.length)for (var i = 0; i < obj_tables.length; i++)
		prismInitialize(obj_tables[i], col_config);
	else prismInitialize(obj_tables, col_config);
	}
	//END AJAX METHODS TO SET TABLES
	
	//AJAX SORT LISTING METHODS
	function RemoveLineSelection(lineidpart){
		if(lineidpart!=0){
      tbls = document.getElementsByTagName("td");      
      for(k = 0; k < tbls.length; k++){
				if(tbls[k].id.substring(0,lineidpart.length)==lineidpart)
					try{tbls[k].className=tbls[k].lang;}
					catch(e){}
			}
		}    
	}
	var SORT_COLUMN_INDEX;
	function prismTablesInit() {
	    // Find all tables with class sortable and make them sortable
	    if (!document.getElementsByTagName) return;
	    tbls = document.getElementsByTagName("table");
	    for (ti=0;ti<tbls.length;ti++) {
	        thisTbl = tbls[ti];
	        if (((' '+thisTbl.className+' ').indexOf("sortable") != -1) && (thisTbl.id)) {
	            makeSortable(thisTbl);
	        }
	    }
	}
	function makeSortable(table) {
	    if (table.rows && table.rows.length > 0) {
	        var firstRow = table.rows[0];
	    }
	    if (!firstRow) return;
	    
	    // We have a first row: assume it's the header, and make its contents clickable links
	    for (var i=0;i<firstRow.cells.length;i++) {
	        var cell = firstRow.cells[i];          
	        var txt = getInnerText(cell);
  
          if(cell.innerHTML.substring(0,4).toLowerCase() == '<img') {//work with image
            txt = cell.innerHTML;
          }          

	        if(txt != '') {
			cell.innerHTML = '<a href="#" class="sortheader" onclick="resortTable(this);return false;">'+txt+'<span class="sortarrow">&nbsp;&nbsp;&nbsp;</span></a>';          
          }
	    }
	}
	function getInnerText(el) {		
    if (typeof el == "string") return el;
		if (typeof el == "undefined") { return el };
		if (el.innerText) return el.innerText;	//Not needed but it is faster
		var str = "";
		
		var cs = el.childNodes;
		var l = cs.length;
		for (var i = 0; i < l; i++) { 
			switch (cs[i].nodeType) {      			
        case 1: //ELEMENT_NODE					
          str += getInnerText(cs[i]);
					break;
				case 3:	//TEXT_NODE
					str += cs[i].nodeValue;
					break;
			}
		}    
		return str;
	}
	
	function resortTable(lnk) {
	    try{
		// get the span
	    var span;
	    for (var ci=0;ci<lnk.childNodes.length;ci++) {
	        if (lnk.childNodes[ci].tagName && lnk.childNodes[ci].tagName.toLowerCase() == 'span') span = lnk.childNodes[ci];
	    }
	    var spantext = getInnerText(span);
	    var td = lnk.parentNode;
	    var column = td.cellIndex;
	    var table = getParent(td,'TABLE');
	 
	    // Work out a type for the column
	    if (table.rows.length <= 1) return;
	    var itm = getInnerText(table.rows[1].cells[column]);

	    sortfn = sort_caseinsensitive;
	    if (itm.match(/^\d\d[\/-]\d\d[\/-]\d\d\d\d$/)) sortfn = sort_date;
	    if (itm.match(/^\d\d[\/-]\d\d[\/-]\d\d$/)) sortfn = sort_date;
	    if (itm.match(/^[?$]/)) sortfn = sort_currency;
	    if (itm.match(/^[\d\.]+$/)) sortfn = sort_numeric;
	    SORT_COLUMN_INDEX = column;
	    var firstRow = new Array();
	    var newRows = new Array();
	    for (i=0;i<table.rows[0].length;i++) { firstRow[i] = table.rows[0][i];}
	    for (j=1;j<table.rows.length;j++) { newRows[j-1] = table.rows[j];}
   
	    newRows.sort(sortfn);
	
	    if (span.getAttribute("sortdir") == 'down') {
	        ARROW = '&nbsp;&nbsp;&uarr;';
	        newRows.reverse();
	        span.setAttribute('sortdir','up');
	    } else {
	        ARROW = '&nbsp;&nbsp;&darr;';
	        span.setAttribute('sortdir','down');
	    }
	    
	    // We appendChild rows that already exist to the tbody, so it moves them rather than creating new ones
	    // don't do sortbottom rows
	    for (i=0;i<newRows.length;i++) { if (!newRows[i].className || (newRows[i].className && (newRows[i].className.indexOf('sortbottom') == -1))) table.tBodies[0].appendChild(newRows[i]);}
	    // do sortbottom rows only
	    for (i=0;i<newRows.length;i++) { if (newRows[i].className && (newRows[i].className.indexOf('sortbottom') != -1)) table.tBodies[0].appendChild(newRows[i]);}
	    
	    // Delete any other arrows there may be showing
	    var allspans = document.getElementsByTagName("span");
	    for (var ci=0;ci<allspans.length;ci++) {
	        if (allspans[ci].className == 'sortarrow') {
	            if (getParent(allspans[ci],"table") == getParent(lnk,"table")) { // in the same table as us?
	                allspans[ci].innerHTML = '&nbsp;&nbsp;&nbsp;';
	            }
	        }
	    }
	        
	    span.innerHTML = ARROW;
		}catch(e){}
	}

	function getParent(el, pTagName) {
	if (el == null) return null;
	else if (el.nodeType == 1 && el.tagName.toLowerCase() == pTagName.toLowerCase())	
	return el; else	return getParent(el.parentNode, pTagName);}
	function sort_date(a,b) {
		aa = getInnerText(a.cells[SORT_COLUMN_INDEX]);
		bb = getInnerText(b.cells[SORT_COLUMN_INDEX]);
		if (aa.length == 10) {
			dt1 = aa.substr(6,4)+aa.substr(3,2)+aa.substr(0,2);
		}
		else {
			yr = aa.substr(6,2);
			if (parseInt(yr) < 50) {
				yr = '20'+yr;
			}
			else {
				yr = '19'+yr;
			}
	dt1 = yr+aa.substr(3,2)+aa.substr(0,2);
	}
	if (bb.length == 10) {
		dt2 = bb.substr(6,4)+bb.substr(3,2)+bb.substr(0,2);
	}
	else {
		yr = bb.substr(6,2);
		if (parseInt(yr) < 50) {
			yr = '20'+yr;
		}
		else {
			yr = '19'+yr;
		}
		dt2 = yr+bb.substr(3,2)+bb.substr(0,2);
	}
	if (dt1==dt2) return 0;
	if (dt1<dt2) return -1;return 1;
	}
	function sort_currency(a,b){
		aa = getInnerText(a.cells[SORT_COLUMN_INDEX]).replace(/[^0-9.]/g,'');
		bb = getInnerText(b.cells[SORT_COLUMN_INDEX]).replace(/[^0-9.]/g,'');
		return parseFloat(aa) - parseFloat(bb);
	}
	function sort_numeric(a,b) {
    aa = parseFloat(getInnerText(a.cells[SORT_COLUMN_INDEX]));
		if (isNaN(aa)) aa = 0;
		bb = parseFloat(getInnerText(b.cells[SORT_COLUMN_INDEX]));
		if (isNaN(bb)) bb = 0;return aa-bb;
	}
	function sort_caseinsensitive(a,b) {
		aa = getInnerText(a.cells[SORT_COLUMN_INDEX]).toLowerCase();
		bb = getInnerText(b.cells[SORT_COLUMN_INDEX]).toLowerCase();
		if (aa==bb) return 0;
		if (aa<bb) return -1;
		return 1;
	}
	function addEvent(elm, evType, fn, useCapture){
		if (elm.addEventListener){
			elm.addEventListener(evType, fn, useCapture);
			return true;
		}
		else if (elm.attachEvent){
			var r = elm.attachEvent("on"+evType, fn);
			return r;
		} else {alert("Handler could not be removed");}
	}
	function sort_default(a,b) {
		aa = getInnerText(a.cells[SORT_COLUMN_INDEX]);
		bb = getInnerText(b.cells[SORT_COLUMN_INDEX]);
		if (aa==bb) return 0;
		if (aa<bb) return -1;return 1;
	}
	//END AJAX SORT LISTING METHODS



	//Fucntion to open calendar - change the date format if needed
	alreadyopenned = false;
	function openCalendar(field,dateformat,populateFields){
	if(populateFields) populateFieldsArray = createArrayFromList(populateFields); else populateFieldsArray = new Array();
  if(!dateformat) dateformat = 'mm/dd/yyyy';
  try{
		if(!alreadyopenned){
			alreadyopenned = true;
			initcalendar();
		}
		popUpCalendar(field, field, dateformat);
	} catch (err){}
	}
	
//SCRIPT FOR CALENDAR
	var	fixedX = -1			// x position (-1 if to appear below control)
	var	fixedY = -1			// y position (-1 if to appear below control)
	var startAt = 0			// 0 - sunday ; 1 - monday
	var showWeekNumber = 1	// 0 - don't show; 1 - show
	var showToday = 1		// 0 - don't show; 1 - show
	var gotoString = "Go To Current Month"
	var todayString = "Today is"
	var weekString = "Wk"
	var selectDateMessage = "Select [date] as date." // do not replace [date], it will be replaced by date.

	var	crossobj, crossMonthObj, crossYearObj, monthSelected, yearSelected, dateSelected, omonthSelected, oyearSelected, odateSelected, monthConstructed, yearConstructed, intervalID1, intervalID2, timeoutID1, timeoutID2, ctlToPlaceValue, ctlNow, dateFormat, nStartingYear

	var	bPageLoaded=false
	var	ie=document.all
	var	ns4=document.layers
	var	today =	new	Date()
	var	dateNow	 = today.getDate()
	var	monthNow = today.getMonth()
	var	yearNow	 = today.getYear()

	var bShow = false;

    /* hides <select> and <applet> objects (for IE only) */
    var noneHideElements = new Array();
    function hideElement( elmID, overDiv )
    {
      if( ie )
      {
        for( i = 0; i < document.all.tags( elmID ).length; i++ )
        {
          obj = document.all.tags( elmID )[i];
          if( !obj || !obj.offsetParent )
          {
            continue;
          }
      
          // Find the element's offsetTop and offsetLeft relative to the BODY tag.
          objLeft   = obj.offsetLeft;
          objTop    = obj.offsetTop;
          objParent = obj.offsetParent;
          
          while( objParent.tagName.toUpperCase() != "BODY" )
          {
            objLeft  += objParent.offsetLeft;
            objTop   += objParent.offsetTop;
            objParent = objParent.offsetParent;
          }
      
          objHeight = obj.offsetHeight;
          objWidth = obj.offsetWidth;
      
          if(( overDiv.offsetLeft + overDiv.offsetWidth ) <= objLeft );
          else if(( overDiv.offsetTop + overDiv.offsetHeight ) <= objTop );
          else if( overDiv.offsetTop >= ( objTop + objHeight ));
          else if( overDiv.offsetLeft >= ( objLeft + objWidth ));
          else
          {
            if(searchPrismArray(noneHideElements,obj.id) == -1)            
              obj.style.visibility = "hidden";
          }
        }
      }
    }
     
    /*
    * unhides <select> and <applet> objects (for IE only)
    */
    function showElement( elmID )
    {
      if( ie )
      {
        for( i = 0; i < document.all.tags( elmID ).length; i++ )
        {
          obj = document.all.tags( elmID )[i];
           if( !obj || !obj.offsetParent )
          {
            continue;
          }
        
          obj.style.visibility = "";
        }
      }
    }

	function HolidayRec (d, m, yy, desc)
	{
		this.d = d
		this.m = m
		this.yy = yy
		this.desc = desc
	}

	var HolidaysCounter = 0
	var Holidays = new Array()

	function addHoliday (d, m, yy, desc)
	{
		Holidays[HolidaysCounter++] = new HolidayRec ( d, m, yy, desc )
	}

		document.write ("<div onclick='bShow=true' id='calendar'	style='z-index:+999;position:absolute;visibility:hidden;'><table	width="+((showWeekNumber==1)?250:220)+" style='font-family:arial;font-size:11px;border-width:1px;border-style:solid;border-color:#a0a0a0;font-family:arial; font-size:11px;' bgcolor='#ffffff'><tr class='calenderColor'><td><table width='"+((showWeekNumber==1)?248:218)+"'><tr><td style='padding:2px;font-family:arial; font-size:11px;'><font color='#ffffff'><B><span id='caption'></span></B></font></td><td align=right><a href='javascript:hideCalendar()'><IMG SRC='"+prismimage[17]+"' WIDTH='12' HEIGHT='12' BORDER='0' ALT='Close the Calendar'></a></td></tr></table></td></tr><tr><td style='padding:5px' bgcolor=#ffffff><span id='content'></span></td></tr>")
			
		if (showToday==1)
		{
			document.write ("<tr bgcolor=#e8f5fe><td style='padding:5px' align=center><span id='lblToday'></span></td></tr>")
		}
			
		document.write ("</table></div><div id='selectMonth' style='z-index:+999;position:absolute;visibility:hidden;'></div><div id='selectYear' style='z-index:+999;position:absolute;visibility:hidden;'></div>");


	var	monthName =	new	Array("January","February","March","April","May","June","July","August","September","October","November","December")
	if (startAt==0)
	{
		dayName = new Array	("Sun","Mon","Tue","Wed","Thu","Fri","Sat")
	}
	else
	{
		dayName = new Array	("Mon","Tue","Wed","Thu","Fri","Sat","Sun")
	}
	var	styleAnchor="text-decoration:none;color:black;";
	var	styleLightBorder="border-style:solid;border-width:1px;border-color:#a0a0a0;";	

	function initcalendar()	{
		if (!ns4)
		{
			if (!ie) { yearNow += 1900	}

			crossobj=document.getElementById("calendar").style;
			hideCalendar();
			crossMonthObj=document.getElementById("selectMonth").style;
			crossYearObj=document.getElementById("selectYear").style;
			monthConstructed=false;
			yearConstructed=false;

			if (showToday==1)
			{
				document.getElementById("lblToday").innerHTML = "<font color=000000>" + todayString + "</font> <a onmousemove='window.status=\""+gotoString+"\"' onmouseout='window.status=\"\"' title='"+gotoString+"' style='"+styleAnchor+"' href='javascript:monthSelected=monthNow;yearSelected=yearNow;constructCalendar();'>"+dayName[(today.getDay()-startAt==-1)?6:(today.getDay()-startAt)]+", " + dateNow + " " + monthName[monthNow].substring(0,3)	+ "	" +	yearNow	+ "</a>"
			}

			sHTML1="<span id='spanLeft' style='border-style:solid;border-width:1px;border-color:#FFFFFF;cursor:pointer' onmouseover='this.style.borderColor=\"#dcdcdc\";' onclick='javascript:decMonth()' onmouseout='clearInterval(intervalID1);this.style.borderColor=\"#FFFFFF\";window.status=\"\"' onmousedown='clearTimeout(timeoutID1);timeoutID1=setTimeout(\"StartDecMonth()\",500)'	onmouseup='clearTimeout(timeoutID1);clearInterval(intervalID1)'>&nbsp<IMG SRC='"+prismimage[18]+"' width=10 height=11 BORDER=0>&nbsp</span>&nbsp;"
			sHTML1+="<span id='spanRight' style='border-style:solid;border-width:1px;border-color:#FFFFFF;cursor:pointer'	onmouseover='this.style.borderColor=\"#dcdcdc\";' onmouseout='clearInterval(intervalID1);this.style.borderColor=\"#FFFFFF\";window.status=\"\"' onclick='incMonth()' onmousedown='clearTimeout(timeoutID1);timeoutID1=setTimeout(\"StartIncMonth()\",500)'	onmouseup='clearTimeout(timeoutID1);clearInterval(intervalID1)'>&nbsp<IMG SRC='"+prismimage[19]+"'	width=10 height=11 BORDER=0>&nbsp</span>&nbsp"
			sHTML1+="<span id='spanMonth' style='border-style:solid;border-width:1px;border-color:#FFFFFF;cursor:pointer'	onmouseover='this.style.borderColor=\"#dcdcdc\";' onmouseout='this.style.borderColor=\"#FFFFFF\";' onclick='popUpMonth()'></span>&nbsp;"
			sHTML1+="<span id='spanYear' style='border-style:solid;border-width:1px;border-color:#FFFFFF;cursor:pointer' onmouseover='this.style.borderColor=\"#dcdcdc\";'	onmouseout='this.style.borderColor=\"#FFFFFF\";'	onclick='popUpYear()'></span>&nbsp;"
			
			document.getElementById("caption").innerHTML  =	sHTML1

			bPageLoaded=true
		}
	}

	function hideCalendar()	{
		crossobj.visibility="hidden"
		if (crossMonthObj != null){crossMonthObj.visibility="hidden"}
		if (crossYearObj !=	null){crossYearObj.visibility="hidden"}

	    showElement( 'SELECT' );
		  showElement( 'APPLET' );
	}

	function padZero(num) {
		return (num	< 10)? '0' + num : num ;
	}

	function constructDate(d,m,yy)
	{
		sTmp = dateFormat
		sTmp = sTmp.replace	("dd","<e>")
		sTmp = sTmp.replace	("d","<d>")
		sTmp = sTmp.replace	("<e>",padZero(d))
		sTmp = sTmp.replace	("<d>",d)
		sTmp = sTmp.replace	("mmm","<o>")
		sTmp = sTmp.replace	("mm","<n>")
		sTmp = sTmp.replace	("m","<m>")
		sTmp = sTmp.replace	("<m>",m+1)
		sTmp = sTmp.replace	("<n>",padZero(m+1))
		sTmp = sTmp.replace	("<o>",monthName[m])
		return sTmp.replace ("yyyy",yy)
	}

	function closeCalendar() {
		var	sTmp;hideCalendar();
		ctlToPlaceValue.value =	constructDate(dateSelected,monthSelected,yearSelected);
    if(getArray('populateFieldsArray')) for(var a = 0; a <  populateFieldsArray.length; a++) if(getElement(populateFieldsArray[a])) getElement(populateFieldsArray[a]).value = ctlToPlaceValue.value;    
	  }

	/*** Month Pulldown	***/

	function StartDecMonth()
	{
		intervalID1=setInterval("decMonth()",80)
	}

	function StartIncMonth()
	{
		intervalID1=setInterval("incMonth()",80)
	}

	function incMonth () {
		monthSelected++
		if (monthSelected>11) {
			monthSelected=0
			yearSelected++
		}
		constructCalendar()
	}

	function decMonth () {
		monthSelected--
		if (monthSelected<0) {
			monthSelected=11
			yearSelected--
		}
		constructCalendar()
	}

	function constructMonth() {
		popDownYear()
		if (!monthConstructed) {
			sHTML =	""
			for	(i=0; i<12;	i++) {
				sName =	monthName[i];
				if (i==monthSelected){
					sName =	"<B>" +	sName +	"</B>"
				}
				sHTML += "<tr><td id='m" + i + "' onmouseover='this.style.backgroundColor=\"#faa59d\"' onmouseout='this.style.backgroundColor=\"\"' style='cursor:pointer' onclick='monthConstructed=false;monthSelected=" + i + ";constructCalendar();popDownMonth();event.cancelBubble=true'>&nbsp;" + sName + "&nbsp;</td></tr>"
			}

			document.getElementById("selectMonth").innerHTML = "<table width=70	style='font-family:arial; color:#000000; font-size:11px; border-width:1; border-style:solid; border-color:#c41200;' bgcolor='#ffe1de' cellspacing=0 onmouseover='clearTimeout(timeoutID1)'	onmouseout='clearTimeout(timeoutID1);timeoutID1=setTimeout(\"popDownMonth()\",100);event.cancelBubble=true'>" +	sHTML +	"</table>"

			monthConstructed=true
		}
	}

	function popUpMonth() {
		constructMonth()
		crossMonthObj.display = "block";
		crossMonthObj.visibility = "visible";
		crossMonthObj.left = parseInt(crossobj.left) + 50;
		crossMonthObj.top =	parseInt(crossobj.top) + 26;
    
    hideElement( 'SELECT', document.getElementById("selectMonth") );
		hideElement( 'APPLET', document.getElementById("selectMonth") );	
	}

	function popDownMonth()	{
		crossMonthObj.visibility= "hidden"
	}

	/*** Year Pulldown ***/

	function incYear() {
		for	(i=0; i<7; i++){
			newYear	= (i+nStartingYear)+1
			if (newYear==yearSelected)
			{ txtYear =	"&nbsp;<B>"	+ newYear +	"</B>&nbsp;" }
			else
			{ txtYear =	"&nbsp;" + newYear + "&nbsp;" }
			document.getElementById("y"+i).innerHTML = txtYear
		}
		nStartingYear ++;
		bShow=true
	}

	function decYear() {
		for	(i=0; i<7; i++){
			newYear	= (i+nStartingYear)-1
			if (newYear==yearSelected)
			{ txtYear =	"&nbsp;<B>"	+ newYear +	"</B>&nbsp;" }
			else
			{ txtYear =	"&nbsp;" + newYear + "&nbsp;" }
			document.getElementById("y"+i).innerHTML = txtYear
		}
		nStartingYear --;
		bShow=true
	}

	function selectYear(nYear) {
		yearSelected=parseInt(nYear+nStartingYear);
		yearConstructed=false;
		constructCalendar();
		popDownYear();
	}

	function constructYear() {
		popDownMonth()
		sHTML =	""
		if (!yearConstructed) {

			sHTML =	"<tr><td align='center'	onmouseover='this.style.backgroundColor=\"#faa59d\"' onmouseout='clearInterval(intervalID1);this.style.backgroundColor=\"\"' style='cursor:pointer'	onmousedown='clearInterval(intervalID1);intervalID1=setInterval(\"decYear()\",30)' onmouseup='clearInterval(intervalID1)'>-</td></tr>"

			j =	0
			nStartingYear =	yearSelected-3
			for	(i=(yearSelected-3); i<=(yearSelected+3); i++) {
				sName =	i;
				if (i==yearSelected){
					sName =	"<B>" +	sName +	"</B>"
				}

				sHTML += "<tr><td id='y" + j + "' onmouseover='this.style.backgroundColor=\"#faa59d\"' onmouseout='this.style.backgroundColor=\"\"' style='cursor:pointer' onclick='selectYear("+j+");event.cancelBubble=true'>&nbsp;" + sName + "&nbsp;</td></tr>"
				j ++;
			}

			sHTML += "<tr><td align='center' onmouseover='this.style.backgroundColor=\"#faa59d\"' onmouseout='clearInterval(intervalID2);this.style.backgroundColor=\"\"' style='cursor:pointer' onmousedown='clearInterval(intervalID2);intervalID2=setInterval(\"incYear()\",30)'	onmouseup='clearInterval(intervalID2)'>+</td></tr>"

			document.getElementById("selectYear").innerHTML	= "<table width=44 style='font-family:arial; font-size:11px; color:#000000; border-width:1px; border-style:solid; border-color:#c41200;'	bgcolor='#ffe1de' onmouseover='clearTimeout(timeoutID2)' onmouseout='clearTimeout(timeoutID2);timeoutID2=setTimeout(\"popDownYear()\",100)' cellspacing=0>"	+ sHTML	+ "</table>"

			yearConstructed	= true
		}
	}

	function popDownYear() {
		clearInterval(intervalID1)
		clearTimeout(timeoutID1)
		clearInterval(intervalID2)
		clearTimeout(timeoutID2)
		crossYearObj.visibility= "hidden"
	}

	function popUpYear() {
		var	leftOffset

		constructYear()
		crossYearObj.display = "block";
		crossYearObj.visibility	= "visible";
		leftOffset = parseInt(crossobj.left) + document.getElementById("spanYear").offsetLeft
		if (ie)
		{
			leftOffset += 6
		}
		crossYearObj.left =	leftOffset
		crossYearObj.top = parseInt(crossobj.top) +	26
	}

	/*** calendar ***/
   function WeekNbr(n) {
      year = n.getFullYear();
      month = n.getMonth() + 1;
      if (startAt == 0) {
         day = n.getDate() + 1;
      }
      else {
         day = n.getDate();
      }
 
      a = Math.floor((14-month) / 12);
      yy = year + 4800 - a;
      m = month + 12 * a - 3;
      bb = Math.floor(yy/4) - Math.floor(yy/100) + Math.floor(yy/400);
      J = day + Math.floor((153 * m + 2) / 5) + 365 * yy + bb - 32045;
      d4 = (((J + 31741 - (J % 7)) % 146097) % 36524) % 1461;
      L = Math.floor(d4 / 1460);
      d1 = ((d4 - L) % 365) + L;
      week = Math.floor(d1/7) + 1;
 
      return week;
   }

	function constructCalendar () {
		var aNumDays = Array (31,0,31,30,31,30,31,31,30,31,30,31);

		var dateMessage;
		var	startDate =	new	Date (yearSelected,monthSelected,1);
		var endDate;

		if (monthSelected==1)
		{
			endDate	= new Date (yearSelected,monthSelected+1,1);
			endDate	= new Date (endDate	- (24*60*60*1000));
			numDaysInMonth = endDate.getDate();
		}
		else
		{
			numDaysInMonth = aNumDays[monthSelected];
		}

		datePointer	= 0;
		dayPointer = startDate.getDay() - startAt;
		
		if (dayPointer<0)
		{
			dayPointer = 6;
		}

		sHTML =	"<table	 border=0 style='font-family:verdana;font-size:10px;'><tr>";

		if (showWeekNumber==1)
		{
			sHTML += "<td width=27><font color=000000><b>" + weekString + "</b></font></td><td width=1 rowspan=7 bgcolor='#d0d0d0' style='padding:0px'><img src='"+prismimage[12]+"' width=1></td>";
		}

		for	(i=0; i<7; i++)	{
			sHTML += "<td width='27' align='right'><font color=000000><B>"+ dayName[i]+"</B></font></td>";
		}
		sHTML +="</tr><tr>";
		
		if (showWeekNumber==1)
		{
			sHTML += "<td align=right><font color=000000>" + WeekNbr(startDate) + "&nbsp;</font></td>";
		}

		for	( var i=1; i<=dayPointer;i++ )
		{
			sHTML += "<td>&nbsp;</td>";
		}
	
		for	( datePointer=1; datePointer<=numDaysInMonth; datePointer++ )
		{
			dayPointer++;
			sHTML += "<td align=right>";
			sStyle=styleAnchor;
			if ((datePointer==odateSelected) &&	(monthSelected==omonthSelected)	&& (yearSelected==oyearSelected))
			{ sStyle+=styleLightBorder; }

			sHint = "";
			for (k=0;k<HolidaysCounter;k++)
			{
				if ((parseInt(Holidays[k].d)==datePointer)&&(parseInt(Holidays[k].m)==(monthSelected+1)))
				{
					if ((parseInt(Holidays[k].yy)==0)||((parseInt(Holidays[k].yy)==yearSelected)&&(parseInt(Holidays[k].yy)!=0)))
					{
						sStyle+="background-color:#FFDDDD;";
						sHint+=sHint==""?Holidays[k].desc:"\n"+Holidays[k].desc;
					}
				}
			}

			var regexp= /\"/g;
			sHint=sHint.replace(regexp,"&quot;");

			dateMessage = "onmousemove='window.status=\""+selectDateMessage.replace("[date]",constructDate(datePointer,monthSelected,yearSelected))+"\"' onmouseout='window.status=\"\"' ";

			if ((datePointer==dateNow)&&(monthSelected==monthNow)&&(yearSelected==yearNow))
			{ sHTML += "<b><a "+dateMessage+" title=\"" + sHint + "\" style='"+sStyle+"' href='javascript:dateSelected="+datePointer+";closeCalendar();'><font color=#ff0000>&nbsp;" + datePointer + "</font>&nbsp;</a></b>";}
			else if	(dayPointer % 7 == (startAt * -1)+1 || dayPointer % 7 == (startAt * -1)+7)
			{ sHTML += "<a "+dateMessage+" title=\"" + sHint + "\" style='"+sStyle+"' href='javascript:dateSelected="+datePointer + ";closeCalendar();'>&nbsp;<font color=#909090>" + datePointer + "</font>&nbsp;</a>"; }
			else
			{ sHTML += "<a "+dateMessage+" title=\"" + sHint + "\" style='"+sStyle+"' href='javascript:dateSelected="+datePointer + ";closeCalendar();'>&nbsp;" + datePointer + "&nbsp;</a>"; }

			sHTML += "";
			if ((dayPointer+startAt) % 7 == startAt) { 
				sHTML += "</tr><tr>"; 
				if ((showWeekNumber==1)&&(datePointer<numDaysInMonth))
				{
					sHTML += "<td align=right><font color=000000>" + (WeekNbr(new Date(yearSelected,monthSelected,datePointer+1))) + "&nbsp;</font></td>";
				}
			}
		}

		document.getElementById("content").innerHTML   = sHTML;
		document.getElementById("spanMonth").innerHTML = "&nbsp;" +	monthName[monthSelected] + "&nbsp;&nbsp;<IMG id='changeMonth' SRC='"+prismimage[20]+"' WIDTH='12' HEIGHT='10' BORDER=0>&nbsp;";
		document.getElementById("spanYear").innerHTML =	"&nbsp;" + yearSelected	+ "&nbsp;&nbsp;<IMG id='changeYear' SRC='"+prismimage[20]+"' WIDTH='12' HEIGHT='10' BORDER=0>&nbsp;";
	}

	function popUpCalendar(ctl,	ctl2, format) {
		crossobj.display = "block";
		var	leftpos=0
		var	toppos=0

		if (bPageLoaded)
		{
			if ( crossobj.visibility ==	"hidden" ) {
				ctlToPlaceValue	= ctl2
				dateFormat=format;

				formatChar = " "
				aFormat	= dateFormat.split(formatChar)
				if (aFormat.length<3)
				{
					formatChar = "/"
					aFormat	= dateFormat.split(formatChar)
					if (aFormat.length<3)
					{
						formatChar = "."
						aFormat	= dateFormat.split(formatChar)
						if (aFormat.length<3)
						{
							formatChar = "-"
							aFormat	= dateFormat.split(formatChar)
							if (aFormat.length<3)
							{
								// invalid date	format
								formatChar=""
							}
						}
					}
				}

				tokensChanged =	0
				if ( formatChar	!= "" )
				{
					// use user's date
					aData =	ctl2.value.split(formatChar)

					for	(i=0;i<3;i++)
					{
						if ((aFormat[i]=="d") || (aFormat[i]=="dd"))
						{
							dateSelected = parseInt(aData[i], 10)
							tokensChanged ++
						}
						else if	((aFormat[i]=="m") || (aFormat[i]=="mm"))
						{
							monthSelected =	parseInt(aData[i], 10) - 1
							tokensChanged ++
						}
						else if	(aFormat[i]=="yyyy")
						{
							yearSelected = parseInt(aData[i], 10)
							tokensChanged ++
						}
						else if	(aFormat[i]=="mmm")
						{
							for	(j=0; j<12;	j++)
							{
								if (aData[i]==monthName[j])
								{
									monthSelected=j
									tokensChanged ++
								}
							}
						}
					}
				}

				if ((tokensChanged!=3)||isNaN(dateSelected)||isNaN(monthSelected)||isNaN(yearSelected))
				{
					dateSelected = dateNow
					monthSelected =	monthNow
					yearSelected = yearNow
				}

				odateSelected=dateSelected
				omonthSelected=monthSelected
				oyearSelected=yearSelected

				aTag = ctl
				do {
					aTag = aTag.offsetParent;
					leftpos	+= aTag.offsetLeft;
					toppos += aTag.offsetTop;
				} while(aTag.tagName!="BODY");

				crossobj.left =	fixedX==-1 ? ctl.offsetLeft	+ leftpos :	fixedX
				crossobj.top = fixedY==-1 ?	ctl.offsetTop +	toppos + ctl.offsetHeight +	2 :	fixedY
				constructCalendar (1, monthSelected, yearSelected);
				crossobj.visibility="visible";
       
        hideElement( 'SELECT', document.getElementById("calendar") );
		    hideElement( 'APPLET', document.getElementById("calendar") );	

				bShow = true;
			}
			else
			{
				hideCalendar()
				if (ctlNow!=ctl) {popUpCalendar(ctl, ctl2, format)}
			}
			ctlNow = ctl
		}
	}
	
	//****************************************
	//DRUG AND DROP METHODS POSTED BY DIMA S
	//****************************************
	ddEnabled = false; //Varialble used to identify drag and drop method
	isIE=document.all;
	isNN=!document.all&&document.getElementById;
	isN4=document.layers;
	isHot=false;
	
	function ddInit(e,divid,movebarid){
	  topDog=isIE ? "BODY" : "HTML";
	  whichDogW=document.getElementById(divid);  
	  hotDog=isIE ? event.srcElement : e.target;  
	  while (hotDog.id!=movebarid&&hotDog.tagName!=topDog){
	    hotDog=isIE ? hotDog.parentElement : hotDog.parentNode;
	  }  
	  if (hotDog.id==movebarid){
	    offsetx=isIE ? event.clientX : e.clientX;
	    offsety=isIE ? event.clientY : e.clientY;
	    nowX=parseInt(whichDogW.style.left);
	    nowY=parseInt(whichDogW.style.top);
	    ddEnabled=true;
	    //document.onmousemove=dd;			
	  }
	}
	
	function dd(e){
	  if (!ddEnabled) return;
	  var cx = isIE ? nowX+event.clientX-offsetx : nowX+e.clientX-offsetx;
		if(cx<0) cx = 0;
		var cy = isIE ? nowY+event.clientY-offsety : nowY+e.clientY-offsety;
		if(cy<0) cy = 0;
		whichDogW.style.left=cx; 
	  whichDogW.style.top=cy;
	  return false;  
	}
	
	function ddN4(whatDog){
	  if (!isN4) return;
	  N4=eval(whatDog);
	  N4.captureEvents(Event.MOUSEDOWN|Event.MOUSEUP);
	  N4.onmousedown=function(e){
	    N4.captureEvents(Event.MOUSEMOVE);
	    N4x=e.x;
	    N4y=e.y;
	  }
	  N4.onmousemove=function(e){
	    if (isHot){
	      N4.moveBy(e.x-N4x,e.y-N4y);
	      return false;
	    }
	  }
	  N4.onmouseup=function(){
	    N4.releaseEvents(Event.MOUSEMOVE);
	  }
	}
   
	function hideMe(){
	  if (isIE||isNN) whichDogW.style.visibility="hidden";
	  else if (isN4) document.theLayer.visibility="hide";
	}
	
	function showMe(){
	  if (isIE||isNN) whichDogW.style.visibility="visible";
	  else if (isN4) document.theLayer.visibility="show";
	}
  
  
  //NEW MEDIA BROWSER POSTED BY DIMA S.
  var	browserobj;  
  var folderobj = 0;  
  var	fixedX = -1			// x position (-1 if to appear below control)
	var	fixedY = -1			// y position (-1 if to appear below control)  
	var	ie=document.all
	var	ns4=document.layers	
  var browserFolders = new Array(); 
	var browserShow = false;  
  var multimediaField, multimediapath;	
  var browserTitleValue = "Explore";
  
  function StartBrowser(field,path,id,uid){
  multimediaField = field;
  multimediapath = path;      
  try{    
    initbrowser(id);
    popUpBrowser(field,id,uid,path);
	} catch (err){}
	}
  
  function popUpBrowser(ctl,id,uid,path) {
    
    browserobj.display = "block";
    toppos=0;    
    if(id == 'savedsearches') leftpos=0;
    else leftpos=-140;

      if ( browserobj.visibility ==	"hidden" ) {

				aTag = ctl;
				do {
					aTag = aTag.offsetParent;
					leftpos	+= aTag.offsetLeft;
					toppos += aTag.offsetTop;
				} while(aTag.tagName!="BODY");

				browserobj.left =	fixedX==-1 ? ctl.offsetLeft	+ leftpos :	fixedX
				browserobj.top = fixedY==-1 ?	ctl.offsetTop +	toppos + ctl.offsetHeight +	2 :	fixedY

        if(ctl.name == 'ParentOrganization') {
          var poststr = "&LoadParents=" + ctl.value;					          
          new makeAjaxRequest(ajaxMainVars, 'post', {parameters: poststr}, function(xml){outputDirectoryData(xml,'LoadParents',true)});
        }	 
        else if(id == 'ciidbrowser') { 
           var poststr = "&LoadCIID=" + ctl.value;
           new makeAjaxRequest(ajaxMainVars, 'post', {parameters: poststr}, function(xml){outputCIIDlist(xml,id,ctl)});
        }
        else if(id == 'savedsearches') { 
           var poststr = "&LoadSavedSearches=1";
           new makeAjaxRequest(ajaxMainVars, 'post', {parameters: poststr}, function(xml){outputSavedSearchListlist(xml,id,uid,path)});
        }
        else if(id == 'contactsbrowser') {
          var poststr = "&LoadContacts=" + ctl.value;
          new makeAjaxRequest(ajaxMainVars, 'post', {parameters: poststr}, function(xml){outputDirectoryData(xml,'LoadContacts',true)});         
        }
        else {
					var poststr = "&LoadOrganizations=" + ctl.value;
					new makeAjaxRequest(ajaxMainVars, 'post', {parameters: poststr}, function(xml){outputDirectoryData(xml,'LoadOrganizations',true)});         
        }
  
        browserobj.visibility = "visible"; 
        
        if(!document.getElementById(id + "content").style.width)
          document.getElementById(id + "content").style.width = '300px';
        if(!document.getElementById(id + "content").style.height) 
          document.getElementById(id + "content").style.height = '150px';
          
          hideElement( 'SELECT', document.getElementById(id) );
				  hideElement( 'APPLET', document.getElementById(id) );

				browserShow = true;
			}
			else
			{
				hideBrowser();
				if (ctlNow!=ctl) {popUpBrowser(ctl)}
			}
			ctlNow = ctl
   }
  
  function initbrowser(id)	{
		if (!ns4)
		{      
      if(!document.getElementById(id)){
        var mybody=document.getElementsByTagName("body").item(0);        
        prismDOM.sethtml(mybody,browserHTMLBody(id));        
      }      
      browserobj=document.getElementById(id).style;
      hideBrowser();		
		}
	}  
  function hideBrowser()	{
		browserobj.visibility="hidden";
    showElement( 'SELECT' );
		showElement( 'APPLET' );
	}
  
  function browserHTMLBody(id){  
		if(id == 'ciidbrowser') browserTitleValue = 'Select CIID';  
    else if(id == 'savedsearches') browserTitleValue = 'Saved Search Criteria';    
    var browserBody = "";
        browserBody += "<div onclick='browserShow=true;' id='" + id +"'	style='z-index:+999;position:absolute;visibility:hidden;'><table id=\"bConteiner\" style='font-family:arial;font-size:11px;border-width:1px;border-style:solid;border-color:#a0a0a0;font-family:arial; font-size:11px' bgcolor='#ffffff'><tr class='calenderColor'><td><table width=\"100%\"><tr><td style='padding:2px;font-family:arial; font-size:11px;'><font color='#ffffff'><B><span id=\"pathtitle\">" + browserTitleValue + "<\/span></B></font></td><td align=right><a href='javascript:hideBrowser()'><IMG SRC='"+prismimage[17]+"' WIDTH='12' HEIGHT='12' BORDER='0' ALT='Close Explorer'></a></td></tr></table></td></tr><tr><td style='padding:5px' bgcolor=#ffffff><div id='" + id + "content' style=\"overflow:auto;\"><table width=\"100%\" style=\"height:100%\"><tr><td align=\"center\"><label>please wait ... loading<\/label></td></tr><\/table><\/div></td></tr>";				
		    browserBody += "<tr><td align=\"right\" style=\"cursor:move\" id=\"resizebar\" onmousedown=\"activateResizedWin('" + id +"content');\"><ilayer width=\"100%\" onSelectStart=\"return false\"><layer width=\"100%\" onMouseover=\"isresizeHot=true;if (isN4) ddN4("+id+"content)\" onMouseout=\"isresizeHot=false\" height=\"20\"><table cellpadding=0 cellspacing=0 width=\"100%\"><tr><td height=16 style=\"background-repeat:no-repeat;background-position:bottom right\" background=\"" + prismimage[15] + "\">&nbsp;</td></tr></table><\/layer><\/ilayer><\/td><\/tr><\/table><\/div>";
    return browserBody;
	}	
 
  //END MEDIA BROWSER 
  //Aditional function for saved search list
  function outputSavedSearchListlist(xml,bid,uid,onopenevent){    
    var partbody = "";
    var x = xml.responseXML.getElementsByTagName('myRoot');
    partbody += "<table cellpadding=2 cellspacing=1 border=0 width=\"100%\">";
    if(x[0].childNodes.length == 0)
    partbody += "<tr><tD height=50 align=center><label>no saved criteria found<\/label><\/td><\/tr>";
    for (j = 0; j < x[0].childNodes.length; j++) {
			if (x[0].childNodes[j].nodeType != 1) continue;							
			thename = x[0].childNodes[j].nodeName;		
  		if(x[0].childNodes[j].firstChild) {								
          KEY = x[0].childNodes[j].attributes.getNamedItem('KEY').value; 
          SEARCHNAME = x[0].childNodes[j].attributes.getNamedItem('SEARCHNAME').value;         
          eval(thename + " = new Array()");
          eval(thename + "['CRITERIANAME'] = SEARCHNAME");
          eval(thename + "['KEY'] = KEY");
          for (i = 0; i < x[0].childNodes[j].childNodes.length; i++) {      
            if (x[0].childNodes[j].childNodes[i].nodeType != 1) continue;							
			        thenamec = x[0].childNodes[j].childNodes[i].nodeName;	
              eval(thename + ".push(thenamec)");
              eval(thenamec + " = new Array()");      
              eval(thenamec + "['VALUE'] = x[0].childNodes[j].childNodes[i].attributes.getNamedItem('VALUE').value");
              eval(thenamec + "['KEY'] = x[0].childNodes[j].childNodes[i].attributes.getNamedItem('KEY').value");
              eval(thenamec + "['OPERATOR'] = x[0].childNodes[j].childNodes[i].attributes.getNamedItem('OPERATOR').value");
              eval(thenamec + "['FIELD'] = x[0].childNodes[j].childNodes[i].attributes.getNamedItem('FIELD').value");
              eval(thenamec + "['CONDITION'] = x[0].childNodes[j].childNodes[i].attributes.getNamedItem('CONDITION').value");        
           }  
      }
  		else {thevalue = ""};              
      if(j%2) var className = 'newtableMouseOut2';
      else var className = 'newtableMouseOut';              
      var openevent = "openAdvancedSearchCriteria('" + KEY + "','" + uid + "');hideBrowser();";
      if(onopenevent) openevent += onopenevent + ";";
      partbody += "<tr onclick=\"" + openevent + "\" onmouseover=\"this.className='newtableMouseOver'\" onmouseout=\"this.className='"+className+"'\" class='" + className + "'><td>" + eval("SearchResult" + KEY + "['CRITERIANAME']"); + "<\/td><\/tr>";
    }
    partbody += "<\/table>";
    WriteOutput(bid + 'content',partbody); 
  }
  //end Aditional function for saved search list
  //Aditional function for CIID
  function outputCIIDlist(xml,bid,ctl){    
    var partbody = "";
    var x = xml.responseXML.getElementsByTagName('myRoot');
    partbody += "<table cellpadding=2 cellspacing=1 border=0 width=\"100%\">";
    if(x[0].childNodes.length == 0)
    partbody += "<tr><tD height=50 align=center><label>no records found<\/label><\/td><\/tr>";
    for (j = 0; j < x[0].childNodes.length; j++) {
			if (x[0].childNodes[j].nodeType != 1) continue;							
      if(x[0].childNodes[j].firstChild) thevalue = x[0].childNodes[j].firstChild.nodeValue;           			  
  		else thevalue = ""; 
      var CI_ID = x[0].childNodes[j].attributes.getNamedItem('CI_ID').value;              
      if(j%2) var className = 'newtableMouseOut2';
      else var className = 'newtableMouseOut';   
      partbody += "<tr  onclick=\"getElement('" + ctl.id + "').value=" + CI_ID + ";hideBrowser();\" onmouseover=\"this.className='newtableMouseOver'\" onmouseout=\"this.className='"+className+"'\" class='" + className + "'><td>" + thevalue + "<\/td><td>" + CI_ID + "<\/td><\/tr>";
    }
    partbody += "<\/table>";
    WriteOutput(bid + 'content',partbody); 
  }
  //end Aditional function for CIID
    
  //Main window methods to hide layers
  if(ie)
	{
		document.onkeypress = function hidebrowser () { 
			if (event.keyCode==27) 
			{
				try {hideBrowser();hideCalendar()} catch(err){}
			}
		}
	}
	document.onclick = function hidebrowser2 () { 		
		//used to hide browser
    if (!browserShow)
		{
			try {hideBrowser()} catch(err){}
		}    
		browserShow = false;
    //Used to hide calendar
    if (!bShow)
		{
			try {hideCalendar()} catch(err){}
		}
		bShow = false;
        
	}  
  
  //Window resize methods  
  rrEnabled = false; //Varialble used to identify window resize method
  isIE=document.all;
	isNN=!document.all&&document.getElementById;
  isN4=document.layers;
	isresizeHot=false;
  resizeWindowID = null;
	
  function activateResizedWin(id){
    resizeWindowID = id;
  }
  
	function resizeInit(e,divid,resizebar){
    topDog=isIE ? "BODY" : "HTML";
	  whichDog=document.getElementById(divid);  
	  hotDog=isIE ? event.srcElement : e.target;  
	  while (hotDog.id!=resizebar&&hotDog.tagName!=topDog){
	    hotDog=isIE ? hotDog.parentElement : hotDog.parentNode;
	  }  
	  if (hotDog.id==resizebar){      
      offsetxW=isIE ? event.clientX : e.clientX;
	    offsetyW=isIE ? event.clientY : e.clientY;
	    nowXW=parseInt(whichDog.style.width);
	    nowYW=parseInt(whichDog.style.height);
	    rrEnabled=true;
      cposxW = offsetxW;
      cposyW = offsetyW;
	  }
	}

	function resizeWindow(e){
	  if (!rrEnabled) return;
    xxW = isIE ? event.clientX : e.clientX; 
    yyW = isIE ? event.clientY : e.clientY; 

    try{
      if(xxW > cposxW){
        nowXW += xxW - cposxW; //Rastiagivaem
      } else {
        nowXW -= cposxW - xxW; //Sgimaem
      }
      
      if(yyW > cposyW){
        nowYW += yyW - cposyW; //Rastiagivaem
      } else {
        nowYW -= cposyW - yyW; //Sgimaem
      }

      whichDog.style.width = nowXW + "px";
  	  whichDog.style.height = nowYW + "px";    
      
      cposxW = xxW;
      cposyW = yyW;
    }
    catch (err) {rrEnabled = false;}
	  return false;  
	} 
  
  
  //FILTER EFFECTS
  function opacity(id, opacStart, opacEnd, millisec) { 		 	
		var speed = Math.round(millisec / 100); 
    var timer = 0; 
    //determine the direction for the blending, if start and end are the same nothing happens 
    if(opacStart > opacEnd) { 
        for(i = opacStart; i >= opacEnd; i--) {               
						setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed)); 
            timer++; 
        } 
    } else if(opacStart < opacEnd) { 
        for(i = opacStart; i <= opacEnd; i++){ 
            setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed)); 
            timer++; 
        } 
      } 
  } 
  function changeOpac(opacity, id) { 
			if(getElement(id)) var object = document.getElementById(id).style;		
			else var object = document.body.style; 
      object.opacity = (opacity / 100); 
      object.MozOpacity = (opacity / 100); 
      object.KhtmlOpacity = (opacity / 100); 
      object.filter = "alpha(opacity=" + opacity + ")"; 
  } 
  //END FILTER EFFECTS
  
  //Trim Methods
  function Trim(TRIM_VALUE){
  if(!TRIM_VALUE) return "";
  if(TRIM_VALUE.length < 1){
  return"";
  }
  TRIM_VALUE = RTrim(TRIM_VALUE);
  TRIM_VALUE = LTrim(TRIM_VALUE);
  if(TRIM_VALUE==""){
  return "";
  }
  else{
  return TRIM_VALUE;
  }
  }  
  function RTrim(VALUE){
  var w_space = String.fromCharCode(32);
  var v_length = VALUE.length;
  var strTemp = "";
  if(v_length < 0){
  return"";
  }
  var iTemp = v_length -1;
  
  while(iTemp > -1){
  if(VALUE.charAt(iTemp) == w_space){
  }
  else{
  strTemp = VALUE.substring(0,iTemp +1);
  break;
  }
  iTemp = iTemp-1;  
  } 
  return strTemp;  
  }     
  function LTrim(VALUE){
  var w_space = String.fromCharCode(32);
  if(v_length < 1){
  return"";
  }
  var v_length = VALUE.length;
  var strTemp = "";
  
  var iTemp = 0;
  
  while(iTemp < v_length){
  if(VALUE.charAt(iTemp) == w_space){
  }
  else{
  strTemp = VALUE.substring(iTemp,v_length);
  break;
  }
  iTemp = iTemp + 1;
  } 
  return strTemp;
  }
  //End Trim Methods
  
  
  //Paginator Object
  var	paginatorobj, paginatorPageObj, pageConstructed, intervalID1, intervalID2, timeoutID1, timeoutID2, nStartingPage;
  var pageSelected = 1;
	function incPage(np) {
		for	(i=0; i<7; i++){
      newPage	= (i+nStartingPage)+1;
      if(newPage>np) return; 
			txtPage =	"&nbsp;" + newPage + "&nbsp;";
			document.getElementById("y"+i).innerHTML = txtPage;
		}
		nStartingPage ++;
	}
	function decPage(np) {
		for	(i=0; i<7; i++){			
      newPage	= (i+nStartingPage)-1;
      if(newPage<=0) return; 
			txtPage =	"&nbsp;" + newPage + "&nbsp;";
			document.getElementById("y"+i).innerHTML = txtPage;
		}
		nStartingPage --;
	}
	function selectPage(nPage,action,id) {
		pageSelected=parseInt(nPage+nStartingPage);
		pageConstructed=false;
		popDownPage();
    getElement('cpageik'+id).innerHTML = pageSelected;
    eval(action + "("+pageSelected+")");
	}
	function constructPages(np,action,id) {
		var sHTML =	"";
		if(np > 7) sHTML +=	"<tr><td align='center'	onmouseover='this.style.backgroundColor=\"#c0e5fe\"' onmouseout='clearInterval(intervalID1);this.style.backgroundColor=\"\"' style='cursor:pointer'	onmousedown='clearInterval(intervalID1);intervalID1=setInterval(\"decPage("+np+")\",30)' onmouseup='clearInterval(intervalID1)'>-</td></tr>";
			j =	0;
			nStartingPage =	pageSelected-3;
      var nEndingpage = pageSelected+3;

      if(nStartingPage==-2) {nStartingPage=1;nEndingpage=7;}
      else if(nStartingPage==0) {nStartingPage = 0-nStartingPage+1;nEndingpage+=nStartingPage+2}  
      else if(nStartingPage<0) {nStartingPage = 0-nStartingPage;nEndingpage+=nStartingPage+3} 
      if(nEndingpage>np) nEndingpage = np;
			for	(i=nStartingPage; i<=nEndingpage; i++) {
				  sName =	i;
          sHTML += "<tr><td id='y" + j + "' onmouseover='this.style.backgroundColor=\"#c0e5fe\"' onmouseout='this.style.backgroundColor=\"\"' style='cursor:pointer' onclick=\"selectPage("+j+",'" + action + "','" + id + "');\">&nbsp;" + sName + "&nbsp;</td></tr>";
				j ++;
			}			
      if(np > 7) sHTML += "<tr><td align='center' onmouseover='this.style.backgroundColor=\"#c0e5fe\"' onmouseout='clearInterval(intervalID2);this.style.backgroundColor=\"\"' style='cursor:pointer' onmousedown='clearInterval(intervalID2);intervalID2=setInterval(\"incPage("+np+")\",30)'	onmouseup='clearInterval(intervalID2)'>+</td></tr>";
			document.getElementById("selectPage"+id).innerHTML	= "<table width=27 style='font-size:11px; border-width:1px; border-style:solid; border-color:#cccccc;'	bgcolor='#ffffff' onmouseover='clearTimeout(timeoutID2)' onmouseout='clearTimeout(timeoutID2);timeoutID2=setTimeout(\"popDownPage()\",100)' cellspacing=0>"	+ sHTML	+ "</table>";
      //eval("nStartingPage" + id + " = nStartingPage");
	}
	function popDownPage() {
		clearInterval(intervalID1);
		clearTimeout(timeoutID1);
		clearInterval(intervalID2);
		clearTimeout(timeoutID2);
		paginatorPageObj.visibility= "hidden";
	}
	function popUpPages(np,action,id) {    
    paginatorPageObj=document.getElementById("selectPage" + id).style;
    paginatorobj=document.getElementById("spanPage" + id).style;
    paginatorobj.left =	document.getElementById('spanPage' + id).offsetLeft;    
    paginatorobj.top = document.getElementById('spanPage' + id).offsetTop;   
		constructPages(np,action,id);
		paginatorPageObj.display = "block";
		paginatorPageObj.visibility	= "visible";
		paginatorPageObj.left =	parseInt(paginatorobj.left) + 2;    
		paginatorPageObj.top = parseInt(paginatorobj.top) +	58;
	}
  
 
  //New Listing Feature
   var prismListingGlobalObject = function() {};   
   var prismListing = Class.create();
       prismListing.prototype = Object.extend(new prismListingGlobalObject(), { 
         initialize: function(options) {
          this.setOptions(options);
          this.initlisting();
          },
         setOptions: function(options) {
          this.options = {
            ObjToAsign: '',
            ObjToAttach: '',
            ObjCallId: '',
            Headers: '',            
            ListingWidth: null,
            ColumnWidths: '',
            ObjOnClick: false,
            ObjOnDblClick: false,
            ColumnAlign: '',
            ColumnSorting: '',
            ColumnType: null,
            CheckboxId: 'delall' 
          };             
          Object.extend(this.options, options || {});
        },
        initlisting: function(){
          this.listingcon = new prismDOM.create('div', 'listingcontainer', 'Conteiner');          
          eval(this.options.ObjCallId + " = new prismListObject(this.listingcon)");
          this.listingcon.style.align = 'center';
					getElement(this.options.ObjToAsign).appendChild(this.listingcon);
         // else if(this.options.ObjToAttach != '') this.options.ObjToAttach.appendChild(this.listingcon);
                   
          this.calculatesizes();
          if(this.options.ColumnSorting) this.setsortings();
          if(this.options.ColumnType) this.setcoltypes();
          this.buildlisting();
          
        },
        calculatesizes: function(){   
          this.widths = createArrayFromList(this.options.ColumnWidths,',');
          if(this.options.ListingWidth && checkNum(this.options.ListingWidth)) {    
            this.widths = createArrayFromList(this.options.ColumnWidths,',');
            var numberofNULLS = colsSUMM = 0;
                //colsSUMM = -32;
            if(checkIt('msie')) colsSUMM = -32;
            for(s = 0; s < this.widths.length; s++) {
              if(this.widths[s] == 'null') numberofNULLS++;
              else colsSUMM += parseInt(this.widths[s]);
            }
            for(s = 0; s < this.widths.length; s++) {
               if(this.widths[s] == 'null') {
                 if(this.options.ListingWidth > colsSUMM) {
                    var leftSpace = this.options.ListingWidth - colsSUMM;
                        this.widths[s] = parseInt(leftSpace / numberofNULLS);
                 } else this.widths[s] = 25;                 
               }
            }
          }          
          this.widths = createListFromArray(this.widths,',');
        },
        setsortings: function(){   
          this.sorts = createArrayFromList(this.options.ColumnSorting,',');
          for(s = 0; s < this.sorts.length; s++) {
               if(this.sorts[s] == 'string') this.sorts[s] = 'str';
               else if(this.sorts[s] == 'none') this.sorts[s] = 'na';
               else if(this.sorts[s] == 'numeric') this.sorts[s] = 'int';                
          }
          this.sorts = createListFromArray(this.sorts,',');
        },
        setcoltypes: function(){   
          this.coltypes = createArrayFromList(this.options.ColumnType,',');
          for(s = 0; s < this.coltypes.length; s++) {
               if(this.coltypes[s] == 'string') this.coltypes[s] = 'ro';
               else if(this.coltypes[s] == 'checkmark') this.coltypes[s] = 'ch';
          }
          this.coltypes = createListFromArray(this.coltypes,',');
          
        },
        buildlisting: function(){          
          CheckboxId = this.options.CheckboxId;
          eval(this.options.ObjCallId + ".setHeader(this.options.Headers)");
    		  eval(this.options.ObjCallId + ".setInitWidths(this.widths)");
    		  eval(this.options.ObjCallId + ".setColAlign(this.options.ColumnAlign)");
    		  if(this.options.ColumnType) eval(this.options.ObjCallId + ".setColTypes(this.coltypes)");
    		  if(this.options.ColumnSorting) eval(this.options.ObjCallId + ".setColSorting(this.sorts)");
          if(this.options.ObjOnClick) this.setonclick();
          if(this.options.ObjOnDblClick) this.setondblclick();
          eval(this.options.ObjCallId + ".setEditable(false)");
          eval(this.options.ObjCallId + ".setMultiselect(false)");
    		  eval(this.options.ObjCallId + ".init()");
       },
       setonclick: function(){
        eval("this.idski = " + this.options.ObjCallId + ".getSelectedId()");
        eval(this.options.ObjCallId + ".setOnRowSelectHandler(" + this.options.ObjOnClick + ")");       
       },
       setondblclick: function(){
        eval("this.ondblclickevent = " + this.options.ObjCallId + ".getSelectedId()");
        eval(this.options.ObjCallId + ".setOnRowDblHandler(" + this.options.ObjOnDblClick + ")");       
       }
       
  });

    var _isFF=false;var _isIE=false;var _isOpera=false;var _isKHTML=false;
    
    if((navigator.userAgent.indexOf('Safari')!= -1)||(navigator.userAgent.indexOf('Konqueror')!= -1))
     _isKHTML=true;
    else if(navigator.userAgent.indexOf('Opera')!= -1)
     _isOpera=true;
    else if(navigator.appName.indexOf("Microsoft")!=-1)
     _isIE=true;
    else _isFF=true;  
     
    function isIE(){
     if(navigator.appName.indexOf("Microsoft")!=-1)
     if(navigator.userAgent.indexOf('Opera')== -1)
     return true;
     return false;
    }
    
    var globalActivePRISMListObject;
    String.prototype.trim = function(){
     return this.replace(/&nbsp;/g," ").replace(/(^[ \t]*)|([ \t]*$)/g,"");
    }
    Array.prototype.find = function(pattern){
     for(var i=0;i<this.length;i++){
      if(pattern==this[i])
     return i;
    }
     return -1;
    }
    Array.prototype.delAt = function(ind){
     if(Number(ind)<0 || this.length==0)
     return false;
     for(var i=ind;i<this.length;i++){
      this[i]=this[i+1];
    }
     this.length--;
    }
    Array.prototype.insertAt = function(ind,value){
     this[this.length] = null;
     for(var i=this.length-1;i>=ind;i--){
      this[i] = this[i-1];
    }
     this[ind] = value;
    }
    Array.prototype.removeAt = function(ind){
     for(var i=ind;i<this.length;i++){
      this[i] = this[i+1];
    }
     this.length--;
    }
     
    Array.prototype.swapItems = function(ind1,ind2){
     var tmp = this[ind1];
     this[ind1] = this[ind2];
     this[ind2] = tmp;
    }   
     
    function prismListObject(id){
     if(id){
      if(typeof(id)=='object'){
         this.entBox = id;
         this.entBox.id = "clist2_"+(new Date()).getTime();
      }else
        this.entBox = document.getElementById(id);
    }else{
     this.entBox = document.createElement("DIV");
     this.entBox.id = "clist2_"+(new Date()).getTime();
    }
     var self = this;
     this.nm = this.entBox.nm || "list";
     this.cell = null;
     this.row = null;
     this.editor=null;
     this.combos=new Array(0);
     this.defVal=new Array(0);
     this.rowsAr = new Array(0);
     this.rowsCol = new Array(0);
     this.selectedRows = new Array(0);
     this.rowsBuffer = new Array(new Array(0),new Array(0));
     this.loadedKidsHash = null;
     this.UserData = new Array(0);   
     
     this.styleSheet = document.styleSheets;
     this.entBox.className = "listbox";
     this.entBox.style.width = this.entBox.getAttribute("width")|| "100%";
     this.entBox.style.height = this.entBox.getAttribute("height")|| "100%";
     
     this.entBox.style.cursor = 'default';
     this.entBox.onselectstart = function(){return false};
     this.obj = document.createElement("TABLE");
     this.obj.cellSpacing = 0;
     this.obj.cellPadding = 0;
     this.obj.style.width = "100%";
     this.obj.style.tableLayout = "fixed";
     this.obj.className = "obj";
     this.hdr = document.createElement("TABLE");
     this.hdr.cellSpacing = 0;
     this.hdr.cellPadding = 0;
     if(!_isOpera)
     this.hdr.style.tableLayout = "fixed";
     this.hdr.className = "hdr";
     this.hdr.width = "100%";
     this.xHdr = document.createElement("TABLE");
     this.xHdr.cellPadding = 0;
     this.xHdr.cellSpacing = 0;
     var r = this.xHdr.insertRow(0);
     var c = r.insertCell(0);
     c.appendChild(this.hdr);
     this.objBuf = document.createElement("DIV");
     this.objBuf.appendChild(this.obj);
     this.entCnt = document.createElement("TABLE");
     this.entCnt.insertRow(0).insertCell(0);
     this.entCnt.insertRow(1).insertCell(0);
     this.entCnt.cellPadding = 0;
     this.entCnt.cellSpacing = 0;
     this.entCnt.width = "100%";
     this.entCnt.height = "100%";
     this.entCnt.style.tableLayout = "fixed";
     this.objBox = document.createElement("DIV");
     this.objBox.style.width = "100%";
     this.objBox.style.height = this.entBox.style.height;
     this.objBox.style.overflow = "auto";
     this.objBox.style.position = "relative";
     this.objBox.appendChild(this.objBuf);
     this.objBox.className = "objbox";
    
     this.hdrBox = document.createElement("DIV");
     this.hdrBox.style.width = "100%";
     if(_isOpera)this.hdrSizeA=25;else this.hdrSizeA=50;
    
     this.hdrBox.style.height=this.hdrSizeA+"px";
     this.hdrBox.style.overflow = "hidden";
     this.hdrBox.style.position = "relative";
     this.hdrBox.appendChild(this.xHdr);
     this.sortImg = document.createElement("IMG");
     this.hdrBox.insertBefore(this.sortImg,this.xHdr);
     this.entCnt.rows[0].cells[0].appendChild(this.hdrBox);
     this.entCnt.rows[1].cells[0].appendChild(this.objBox);
     
     this.entBox.appendChild(this.entCnt);
     
     this.entBox.list = this;
     this.objBox.list = this;
     this.hdrBox.list = this;
     this.obj.list = this;
     this.hdr.list = this;
     
     this.cellWidthPX = new Array(0);
     this.cellWidthPC = new Array(0);
     this.cellWidthType = this.entBox.cellwidthtype || "px";
     
     this.delim = this.entBox.delimiter || ",";
     this.hdrLabels =(this.entBox.hdrlabels || "").split(",");
     this.columnIds =(this.entBox.columnids || "").split(",");
     this.columnColor =(this.entBox.columncolor || "").split(",");
     this.cellType =(this.entBox.cellstype || "").split(",");
     this.cellAlign =(this.entBox.cellsalign || "").split(",");
     this.initCellWidth =(this.entBox.cellswidth || "").split(",");
     this.fldSort =(this.entBox.fieldstosort || "").split(",");
     this.imgURL = imgDir;
     this.isActive = false;
     this.isEditable = true;
     this.raNoState = this.entBox.ranostate || "N";
     this.chNoState = this.entBox.chnostate || "N";
     this.selBasedOn =(this.entBox.selbasedon || "cell").toLowerCase();
     this.selMultiRows = this.entBox.selmultirows || false;
     this.multiLine = this.entBox.multiline || false;
     this.noHeader = this.entBox.noheader || false;
     this.prmScroll = this.entBox.prmscroll || false;
     this.prmScrollPageSize = 0;
     this.prmScrollPos = 0;
     this.recordsNoMore = this.entBox.infinitloading || true;  
     
     this.rowsBufferOutSize = 0;
     
     this.onCheckbox = this.entBox.oncheckbox || "void";
     this.onEditCell = this.entBox.oneditcell || "void";
     this.onRowSelect = this.entBox.onrowselect || "void";
     this.onEnter = this.entBox.onenter || "void";   
     
     
     this.doOnScroll = function(){
       this.hdrBox.scrollLeft = this.objBox.scrollLeft;
       this.setSortImgPos();  
    }
     
     this.attachToObject = function(obj){
       obj.appendChild(this.entBox);   
    }
     
     this.init = function(fl){
     
      this.editStop();
     
       this.lastClicked = null;
       this.resized = null;
       this.fldSorted = null;
       this.listWidth = 0;
       this.listHeight = 0;
       
       this.cellWidthPX = new Array(0);
       this.cellWidthPC = new Array(0);
       if(this.hdr.rows.length>0){
        this.clearAll();
        this.hdr.rows[0].removeNode(true);
      }
       
     var hdrRow = this.hdr.insertRow(0);
     for(var i=0;i<this.hdrLabels.length;i++){
     var c=hdrRow.insertCell(i);
     c.innerHTML = this.hdrLabels[i];
     c._cellIndex=i;
    }
     this.setColumnIds()
     if(this.multiLine==-1)
     this.multiLine = true;
     else
     this.multiLine = false;   
     
     this.sortImg.style.position = "absolute";
     this.sortImg.style.display = "none";
     this.sortImg.src = prismimage[21];
     this.sortImg.defLeft = 0;
     
     
     this.entCnt.rows[0].style.display = ''; 
     
     if(this.noHeader==-1){
     this.noHeader = true;
     this.entCnt.rows[0].style.display = 'none';
    }else{
     this.noHeader = false;
    }
     this.setSizes();
     
     
     if(fl) this.obj.scrollTop = 0;
    };
     
     this.setSizes = function(fl){
     if(fl && this.listWidth==this.entBox.offsetWidth && this.listHeight==this.entBox.offsetHeight){
     return false;
    }else if(fl){
     this.listWidth = this.entBox.offsetWidth;
     this.listHeight = this.entBox.offsetHeight;
    }
     this.entCnt.rows[0].cells[0].height = this.hdrBox.offsetHeight+"px";
     try{}catch(er){}
    
     var listWidth = parseInt(this.entBox.offsetWidth);
     var listHeight = parseInt(this.entBox.offsetHeight);
    
     var len = this.hdr.rows[0].cells.length;
     for(var i=0;i<this.hdr.rows[0].cells.length;i++){
     if(this.cellWidthType=='px' && this.cellWidthPX.length < len){
     this.cellWidthPX[i] = this.initCellWidth[i];
    }else if(this.cellWidthType=='%' && this.cellWidthPC.length < len){
     this.cellWidthPC[i] = this.initCellWidth[i];
    }
     if(this.cellWidthPC.length!=0){      
      this.cellWidthPX[i] = parseInt(listWidth*this.cellWidthPC[i]/100)-(_isFF?2:0);
    }
    }
     this.chngCellWidth(this.rowsCol.find(this.obj.rows[0]))
     var summ = 0;
     for(var i=0;i<this.cellWidthPX.length;i++)
     summ+= parseInt(this.cellWidthPX[i]);
     this.objBuf.style.width = summ+"px";
     this.objBuf.childNodes[0].style.width = summ+"px";
     if(_isOpera)this.hdr.style.width = summ+this.cellWidthPX.length*2+"px";
     
     this.doOnScroll();
    
     
     
     if(!this.noHeader){
     var zheight=this.hdr.offsetHeight;
     this.hdr.style.border="0px solid gray";
     this.entCnt.rows[1].cells[0].childNodes[0].style.top =(zheight-this.hdrSizeA+1)+"px";
     this.entCnt.rows[1].cells[0].childNodes[0].style.height =(listHeight - zheight)+"px";
    }
    };
    
     
     this.chngCellWidth = function(ind){
     if(!ind)
     var ind = 0;
     for(var i=0;i<this.cellWidthPX.length;i++){
     if(ind == 0) {
      this.newcW = this.cellWidthPX[i];
     }
     else
      this.newcW = this.cellWidthPX[i];

     this.hdr.rows[0].cells[i].style.width = this.newcW +"px";
     this.hdr.rows[0].cells[i].style.textAlign  = this.cellAlign[i];
     this.hdr.rows[0].cells[i].style.paddingRight  = "12px";
     this.hdr.rows[0].cells[i].style.paddingLeft  = "5px";
     
     if(this.rowsCol[ind])
     this.rowsCol[ind].cells[i].style.width = this.newcW +"px";
    }
    }
     
     this.setDelimiter = function(delim){
     this.delim = delim;
    }
     
     this.setInitWidthsP = function(wp){
     this.cellWidthType = "%";
     this.initCellWidth = wp.split(this.delim.replace(/px/gi,""));
    }
     
     this.setInitWidths = function(wp){
     this.cellWidthType = "px";
     this.initCellWidth = wp.split(this.delim);
     if(_isFF){
    
     for(var i=0;i<this.initCellWidth.length;i++){
      this.initCellWidth[i]=parseInt(this.initCellWidth[i]);

     }
    }
    }
     
     
     this.enableMultiline = function(state){
     this.multiLine = state;
    }
     
     
     this.enableMultiselect = function(state){
     this.selMultiRows = state;
    }
     
     
     this.setImagePath = function(path){
     this.imgURL = path;
    }
     
     
     this.changeCursorState = function(ev){
     var el = ev.target||ev.srcElement;
     
     if((el.offsetWidth -(ev.offsetX||(parseInt(this.getPosition(el,this.hdrBox))-ev.layerX)*-1))<10){
     el.style.cursor = "E-resize";
    }else
     el.style.cursor = "pointer";
    }
     
     this.startColResize = function(ev){
     this.resized = null;
     var el = ev.target||ev.srcElement;
     var x = ev.layerX||ev.x;
     
     var tabW = this.hdr.offsetWidth;
     var startW = parseInt(el.offsetWidth);
     if(el.tagName=="TD" && el.style.cursor!="default"){
     this.entBox.onmousemove = function(e){this.list.doColResize(e||window.event,el,startW,x,tabW)}
     document.body.onmouseup = new Function("","document.getElementById('"+this.entBox.id+"').list.stopColResize()");
    }
    }
     
     this.stopColResize = function(){
     this.entBox.onmousemove = "";
     document.body.onmouseup = "";
     this.setSizes();
     this.doOnScroll();
    }
     
     this.doColResize = function(ev,el,startW,x,tabW){
     el.style.cursor = "E-resize";
     this.resized = el;
     var fcolW = startW+((ev.layerX||ev.x)-x);
     var wtabW = tabW+((ev.layerX||ev.x)-x);
     if(fcolW>10){
     el.style.width = fcolW+"px";
     if(this.rowsCol.length>0)    
     this.rowsCol[this.rowsCol.find(this.obj.rows[0])].cells[el._cellIndex].style.width = fcolW+"px";
     if(this.cellWidthType=='px'){
     this.cellWidthPX[el._cellIndex]=fcolW;
    }else{
     var pcWidth = parseInt(fcolW/this.entBox.offsetWidth*100);
     this.cellWidthPC[el._cellIndex]=pcWidth;
    }
     this.doOnScroll();
    }
       
     this.objBuf.childNodes[0].style.width = "";
      
    }  
     
     this.setSortImgPos = function(ind){
     if(!ind)
     var el = this.fldSorted;
     else
     var el = this.hdr.cells[ind];
     if(el!=null){
     
     this.setHeaderClass();
    
     var pos = this.getPosition(el,this.hdrBox);
     var wdth = el.offsetWidth;
     this.sortImg.style.left = Number(pos[0]+wdth-13)+"px";
     this.sortImg.defLeft = parseInt(this.sortImg.style.left);
     this.sortImg.style.top = Number(pos[1]+5)+"px";
     this.sortImg.style.top = "12px"; 
     this.sortImg.style.display = "inline";
     this.sortImg.style.left = this.sortImg.defLeft-5;

    }
    } 
    
    this.setHeaderClass = function(fl){
       for(var h = 0; h < this.hdr.rows[0].cells.length; h++){
          this.hdr.rows[0].cells[h].style.borderBottom="solid 2px #c0e5fe";
     }     
     this.fldSorted.style.borderBottom="solid 2px #bf0000";
    };
     
     this.setActive = function(fl){
     if(arguments.length==0)
     var fl = true;
     if(fl==true){
     //document.body.onkeydown = new Function("","document.getElementById('"+this.entBox.id+"').list.doKey()")
     globalActivePRISMListObject = this;
     this.isActive = true;
    }else{
     this.isActive = false;
    }
    };
     
     this._doDblClick = function(ev){    
      var el = this.getFirstParentOfType(_isIE?ev.srcElement:ev.target,"TD");
      var fl = true;
      var selMethod = 0;
      this.setActive(true);
      this.cell = el;
      this.row = el.parentNode;
      var rid = this.row.idd;       
      var func = this.onRowDbl;       
      setTimeout(function(){try{func(rid,false);}catch(err){}},100);
     }
     
     this._doClick = function(ev){
     var selMethod = 0;
     var el = this.getFirstParentOfType(_isIE?ev.srcElement:ev.target,"TD");
    
     var fl = true;
     if(this.selMultiRows!=false){
     if(ev.shiftKey && this.row!=null){
     selMethod = 1;
    }
     if(ev.ctrlKey){
     selMethod = 2;
    }
     if(!ev.shiftKey)
     this.lastClicked = el.parentNode;
    }
     this.doClick(el,fl,selMethod);
    };
     
     this.doClick = function(el,fl,selMethod){
     this.setActive(true);
     if(!selMethod)
     selMethod = 0;
     if(this.cell!=null)
     this.cell.className = "";
     if(el.tagName=="TD" && this.rowsCol.find(this.rowsAr[el.parentNode.idd])!=-1){
     if(selMethod==0){
     this.clearSelection();
    }else if(selMethod==1){
     var elRowIndex = this.rowsCol.find(el.parentElement);
     var lcRowIndex = this.rowsCol.find(this.lastClicked);
     if(elRowIndex>lcRowIndex){
     var strt = lcRowIndex;
     var end = elRowIndex;
    }else{
     var strt = elRowIndex;
     var end = lcRowIndex;
    }
     this.clearSelection();
     for(var i=0;i<this.rowsCol.length;i++){
     if(i>=strt && i<=end){
     this.rowsCol[i].className = "rowselected";
     this.selectedRows[this.selectedRows.length] = this.rowsCol[i];
    }
    }
     
    }else if(selMethod==2){
     if(el.parentNode.className == "rowselected"){
     el.parentNode.className = "";
     this.selectedRows.removeAt(this.selectedRows.find(el.parentNode));
     var skipRowSelection = true;
    }
    }
     this.editStop()
     this.cell = el;
     if(this.row != el.parentNode){
     this.row = el.parentNode;
     if(fl)
     if(typeof(this.onRowSelect)=="string")
     setTimeout(this.onRowSelect+"('"+this.row.idd+"',false);",100);
     else{
     var rid = this.row.idd;
     var func = this.onRowSelect;
     setTimeout(function(){func(rid,false);},100);
    }
    }
     if(!skipRowSelection){
     this.row.className = "rowselected";
     if(this.selectedRows.find(this.row)==-1)
     this.selectedRows[this.selectedRows.length] = this.row;
    }
    }
     this.moveToVisible(this.cell);
    }
     
     this.selectCell = function(r,cInd,fl,preserve){
     if(!fl)
     fl = false;
     if(typeof(r)!="object")
     r = this.rowsCol[r];
     var c = r.childNodes[cInd];
     if(preserve)
     this.doClick(c,fl,2);
     else
     this.doClick(c,fl);
    }
     
     this.moveToVisible = function(cell_obj){
     try{
     var distance = cell_obj.offsetLeft+cell_obj.offsetWidth+20;
     if(distance>(this.objBox.offsetWidth+this.objBox.scrollLeft)){
     var scrollLeft = distance - this.objBox.offsetWidth;
    }else if(cell_obj.offsetLeft<this.objBox.scrollLeft){
     var scrollLeft = cell_obj.offsetLeft-5;
    }
     if(scrollLeft)
     this.objBox.scrollLeft = scrollLeft;
     
     var distance = cell_obj.offsetTop+cell_obj.offsetHeight+20;
     if(distance>(this.objBox.offsetHeight+this.objBox.scrollTop)){
     var scrollTop = distance - this.objBox.offsetHeight;
    }else if(cell_obj.offsetTop<this.objBox.scrollTop){
     var scrollTop = cell_obj.offsetTop-5;
    }
     if(scrollTop)
     this.objBox.scrollTop = scrollTop;
    }catch(er){
     
    }
    }
     
     this.editCell = function(){
     this.editStop();
     if(this.isEditable!=true)
     return false;
     var c = this.cell;
     eval("this.editor = new prismC_"+this.cellType[this.cell._cellIndex]+"(c)");
     
     if(this.editor!=null){
     if(typeof(this.onEditCell)=="string"){
     if(eval(this.onEditCell+"(0,'"+this.row.idd+"',"+this.cell._cellIndex+");")!=false){
     this.editor.edit();
     this._Opera_stop=(new Date).valueOf();
     eval(this.onEditCell+"(1,'"+this.row.idd+"',"+this.cell._cellIndex+");");
    }else{
     this.editor=null;
    }
    }else{
     if(this.onEditCell(0,this.row.idd,this.cell._cellIndex)!=false){
     this.editor.edit();
     this.onEditCell(1,this.row.idd,this.cell._cellIndex);
    }else{
     this.editor=null;
    }
    }
    }
    }
     
     this.editStop = function(){
     if(_isOpera)
     if(this._Opera_stop){
     if((this._Opera_stop*1+250)>(new Date).valueOf())return;
     this._Opera_stop=null;
    }
     if(this.editor && this.editor!=null){
     this.cell.wasChanged = this.editor.detach();
     if(typeof(this.onEditCell)=="string")
     eval(this.onEditCell+"(2,'"+this.row.idd+"',"+this.cell._cellIndex+");");
     else
     this.onEditCell(2,this.row.idd,this.cell._cellIndex);
    }
     this.editor=null;
    }
         
     
     this.getRow = function(cell){
     if(!cell)
     cell = window.event.srcElement;
     if(cell.tagName!='TD')
     cell = cell.parentElement;
     r = cell.parentElement;
     if(this.cellType[cell._cellIndex]=='lk')
     eval(this.onLink+"('"+this.getRowId(r.rowIndex)+"',"+cell._cellIndex+")");
     this.selectCell(r,cell._cellIndex,true);
    }
     
     this.selectRow = function(r,fl,preserve){
     if(typeof(r)!='object')
     r = this.rowsCol[r];
     this.selectCell(r,0,fl,preserve);
    };
     
     this.sortRows = function(col,type,order){
     
   
     if(type=='str'){
     this.rowsCol.sort(function(a,b){
     var cA = a.childNodes[col];
     var cB = b.childNodes[col];
     var type = a.list.cellType[col];
     eval("var edA = new prismC_"+type+"(cA)");
     eval("var edB = new prismC_"+type+"(cB)");
     if(order=="asc")
     return edA.getValue()>edB.getValue()?1:-1;
     else
     return edA.getValue()<edB.getValue()?1:-1;
    });
    }else if(type=='int'){
     this.rowsCol.sort(function(a,b){
     var cA = a.childNodes[col];
     var cB = b.childNodes[col];
     var type = a.list.cellType[col];
     eval("var edA = new prismC_"+type+"(cA)");
     eval("var edB = new prismC_"+type+"(cB)");
     var aVal = parseFloat(edA.getValue())||-99999999999999;
     var bVal = parseFloat(edB.getValue())||-99999999999999;
     if(order=="asc")
     return aVal-bVal;
     else
     return bVal-aVal;
     
    });
    }else if(type=='date'){
     try{
     this.rowsCol.sort(function(a,b){
     var cA = a.childNodes[col];
     var cB = b.childNodes[col];
     var type = a.list.cellType[col];
     eval("var edA = new prismC_"+type+"(cA)");
     eval("var edB = new prismC_"+type+"(cB)");
     var aVal = Date.parse(new Date(edA.getValue())||new Date("01/01/1900"));
     var bVal = Date.parse(new Date(edB.getValue())||new Date("01/01/1900"));
     if(order=="asc")
     return aVal-bVal;
     else
     return bVal-aVal;
    });
     }catch(err){}
    }
     if(this.prmScroll && this.prmScroll!='false'){
     alert("not implemented yet");
    }else{
     var tb = this.obj.firstChild;
     for(var i=0;i<this.rowsCol.length;i++){
     tb.insertBefore(this.rowsCol[i],tb.childNodes[i]);
     
    }
    }
     this.setSizes();
    }   
     
     this.enableBuffering = function(bufferSize){
     this.rowsBufferOutSize = bufferSize||40;
    }  
     
     this.addRowsFromBuffer = function(){
     if(this.rowsBuffer[0].length==0){
     if(!this.recordsNoMore){}else
     return false;
    }
     var cnt = Math.min(this.rowsBufferOutSize,this.rowsBuffer[0].length);
     
     for(var i=0;i<cnt;i++){
     var rowNode = this.rowsBuffer[1][0];
     var rId = rowNode.getAttribute("id");
     var cellsCol = rowNode.childNodes;
     var strAr = new Array(0);
     for(var j=0;j<cellsCol.length;j++){
     if(cellsCol.item(j).nodeName=='cell')
     strAr[strAr.length] = cellsCol.item(j).text||cellsCol.item(j).textContent;
    }
     var r = this.addRow(rId,strAr);
     
     if(rowNode.getAttribute("selected")==true){
     this.setSelectedRow(rId,false,false,rowNode.getAttribute("call")==true);
    }
     
     if(rowNode.getAttribute("expand")=="1"){
     r.expand = "";
    }
     this.rowsBuffer[0].removeAt(0);
     this.rowsBuffer[1].removeAt(0);
    }
     return true;
    }  
     
     this.setMultiselect = function(fl){
     this.selMultiRows = fl;
    }
     
     this.deleteRow = function(row_id,node){
    
     if(!node)node = this.getRowById(row_id);
    
     if(node!=null){
     this.obj.firstChild.removeChild(node);
     this.rowsCol.removeAt(this.rowsCol.find(node));
     node = null;
    }
     this.rowsAr[row_id] = null;
    }
     
     this.deleteSelectedItem = function(){
     var num = this.selectedRows.length ;
     if(num==0)
     return;
     for(var i=num-1;i>=0;i--){
     var node = this.selectedRows[i];
     if(node==this.row){
     var ind = i;
    }
     this.deleteRow(node.idd,node);
     
    }
     this.selectedRows = new Array(0);
     if(ind){
     try{
     if(ind+1>this.rowsCol.length)
     ind--;
     this.selectCell(ind,0,true);
    }catch(er){
     this.row = null;
     this.cell = null;
    }
    }
    }
     
     
     this.getSelectedId = function(){
     var selAr = new Array(0);
     for(var i=0;i<this.selectedRows.length;i++){
     selAr[selAr.length]=this.selectedRows[i].idd;
    }   
     if(selAr.length==0)
     return null;
     else
     return selAr.join(this.delim);
    }
     
     this.getSelectedCellIndex = function(){
     if(this.cell!=null)
     return this.cell._cellIndex;
     else
     return -1;
    }
     
     this.getColWidth = function(ind){
      return parseInt(this.cellWidthPX[ind]);
    }
     
     this.getRowById = function(id){
     var row = this.rowsAr[id];
     if(row)
     return row;
     else
     return null;
    }
     
     this.getRowIndex = function(row_id){
     var ind = this.rowsCol.find(this.getRowById(row_id));
     if(ind!=-1)
     return ind;
     else{
     ind = this.rowsBuffer[0].find(row_id);
     if(ind!=-1)
     return ind+this.rowsCol.length;
     return -1;
    }
    }
     
     this.getRowId = function(ind){
     try{
     return this.rowsCol[parseInt(ind)].idd;
    }catch(er){
     return this.rowsBuffer[0][ind-this.rowsCol.length-1];
     
    }
    }
     
     this.setRowId = function(ind,row_id){
     var r = this.rowsCol[ind];
     r.idd = row_id;
     this.rowsAr[row_id] = r;
    }
     
     this.setColumnIds = function(ids){
     if(ids)
     this.columnIds = ids.split(",");
     if(this.hdr.rows[0].cells.length>=this.columnIds.length){
     for(var i=0;i<this.columnIds.length;i++){
     this.hdr.rows[0].cells[i].column_id = this.columnIds[i];
    }
    }
    }
     
     this.getColIndexById = function(id){
       for(var i=0;i<this.hdr.rows[0].cells.length;i++){
        if(this.hdr.rows[0].cells[i].column_id==id)
        return i;
      }
    }
     
     this.getColumnId = function(cin){
       return this.hdr.rows[0].cells[cin].column_id;
    }
     
     
     this.getHeaderCol = function(cin){
      return this.hdr.rows[0].cells[Number(cin)].innerHTML;
    }
     
     
     this.setRowTextBold = function(row_id){
     this.getRowById(row_id).style.fontWeight = "bold";
    }
     
     this.setRowTextStyle = function(row_id,styleString){
     var r = this.getRowById(row_id);
     for(var i=0;i<r.childNodes.length;i++){
     if(_isIE)
     r.childNodes[i].style.cssText = styleString;
     else
     r.childNodes[i].style.cssText = styleString;
    }
     
    }

     this.isItemExists = function(row_id){
      if(this.getRowById(row_id)!=null)
      return true;
      else
      return false;
    }
     
     this.getAllItemIds = function(separator){
     var ar = new Array(0);
     for(i=0;i<this.rowsCol.length;i++){
     ar[ar.length]=this.rowsCol[i].idd;
    }
     for(i=0;i<this.rowsBuffer[0].length;i++){
     ar[ar.length]=this.rowsBuffer[0][i];
    }
     return ar.join(separator||",");
    }
     
     this.getRowsNum = function(){
     return this.rowsCol.length+this.rowsBuffer[0].length;
    }
     
     this.getColumnCount = function(){
     return this.hdr.rows[0].cells.length;
    }
     
     this.moveRowUp = function(row_id){
     var r = this.getRowById(row_id);
     var rInd = this.rowsCol.find(r);
     this.rowsCol.swapItems(rInd,rInd-1);
     try{
     this.obj.firstChild.insertBefore(r,r.previousSibling);
    }catch(er){alert('Caught error in MoveRowUp method: '+(er.description||er))}
    }
     
     this.moveRowDown = function(row_id){
     var r = this.getRowById(row_id);
     var rInd = this.rowsCol.find(r);
     this.rowsCol.swapItems(rInd,rInd+1);
     try{
     this.obj.firstChild.insertBefore(r,r.nextSibling.nextSibling);
    }catch(er){alert('Caught error in MoveRowDown method: '+er.description)}
    }
     
     this.cells = function(row_id,col){
     if(arguments.length==0){
     var c = this.cell;
     return eval("new prismC_"+this.cellType[this.cell._cellIndex]+"(c)");
    }else{
     try{var c = this.getRowById(row_id).childNodes[col];}catch(err){}
     return eval("new prismC_"+this.cellType[col]+"(c)");
    }
    }
     
     this.cells2 = function(row_index,col){
     var c = this.rowsCol[parseInt(row_index)].cells[parseInt(col)];
     return eval("new prismC_"+this.cellType[c._cellIndex]+"(c)");
    }
     
     this.getCombo = function(col_ind){
       if(this.cellType[col_ind].indexOf('co')==0){
        if(!this.combos[col_ind]){
         this.combos[col_ind] = new prismListComboObject();
       }
       return this.combos[col_ind];
      }else{
       return null;
      }
    }
     
     this.setEditable = function(fl){
     if(fl!='true' && fl!=1 && fl!=true)
     ifl = true;
     else
     ifl = false;
     for(var j=0;j<this.cellType.length;j++){
     if(this.cellType[j].indexOf('ra')==0 || this.cellType[j]=='ch'){
     for(var i=0;i<this.rowsCol.length;i++){
     var z=this.rowsCol[i].cells[j];
     if((z.childNodes.length>0)&&(z.firstChild.nodeType==1)){
     this.rowsCol[i].cells[j].firstChild.disabled = ifl;
    }
    }
    }
    }
     this.isEditable = !ifl;
    }
     
     this.setSelectedRow = function(row_id,multiFL,show,call){
     if(!call)
     call = false;
     this.selectCell(this.getRowById(row_id),0,call);
     if(arguments.length>2 && show==true){
     this.moveToVisible(this.getRowById(row_id).cells[0]);
    }
    }
     
     this.clearSelection = function(){
     this.editStop();
     for(var i=0;i<this.selectedRows.length;i++){
     this.selectedRows[i].className = "";
    }
     
     
     this.selectedRows = new Array(0);
     this.row = null;
     if(this.cell!=null){
     this.cell.className = "";
     this.cell = null;
    }
    }
     
     this.copyRowContent = function(from_row_id,to_row_id){
     var frRow = this.getRowById(from_row_id);
     for(i=0;i<frRow.cells.length;i++){
     this.cells(to_row_id,i).setValue(this.cells(from_row_id,i).getValue());
    }
     
     if(!isIE())
     this.getRowById(from_row_id).cells[0].height = frRow.cells[0].offsetHeight;
    }
     
     this.setHeaderCol = function(col,label){
       this.hdr.rows[0].cells[Number(col)].innerHTML = label;          
    }
     
     this.clearAll = function(){
     
     var len = this.rowsCol.length;
    for(var i=len-1;i>=0;i--){      
      try{this.obj.firstChild.removeChild(this.rowsCol[i]);}catch(err){this.obj.removeChild(this.rowsCol[i]);}
      this.rowsCol.removeAt(i);
     }

     len = this.obj.rows.length
     for(var i=len-1;i>=0;i--){
     try{this.obj.firstChild.removeChild(this.obj.rows[i]);}catch(err){this.obj.removeChild(this.obj.rows[i]);}
    }
     
     this.row = null;
     this.cell = null;
     this.rowsAr = new Array(0);
     this.rowsCol = new Array(0);
     this.rowsAr = new Array(0);
     this.rowsBuffer = new Array(new Array(0),new Array(0));
     this.UserData = new Array(0);
     
    }
     this._sortField = function(ev){
     var el = this.getFirstParentOfType(ev.target||ev.srcElement,"TD");
     this.sortField(el._cellIndex);
    }
     
     this.sortField = function(ind,repeatFl){
     if(this.getRowsNum()==0)
     return false;
     var el = this.hdr.rows[0].cells[ind];
     if(el.tagName == "TD" &&(this.fldSort.length-1)>=el._cellIndex && this.fldSort[el._cellIndex]!='na'){
     if(((this.sortImg.src.indexOf("_asc1.gif")==-1 && !repeatFl)||(this.sortImg.style.filter!="" && repeatFl))&& this.fldSorted==el){
     var sortType = "desc";
     this.sortImg.src = prismimage[21];
    }else{
     var sortType = "asc";
     this.sortImg.src = prismimage[22];
    }
     this.sortRows(el._cellIndex,this.fldSort[el._cellIndex],sortType);
     this.fldSorted = el;
     this.setSortImgPos();
    }
    }
     
     
     this.setHeader = function(hdrStr){
     var arLab = hdrStr.split(this.delim);
     var arWdth = new Array(0);
     var arTyp = new Array(0);
     var arAlg = new Array(0);
     var arSrt = new Array(0);
     for(var i=0;i<arLab.length;i++){
     arWdth[arWdth.length] = Math.round(100/arLab.length);
     arTyp[arTyp.length] = "ed";
     arAlg[arAlg.length] = "left";
     arSrt[arSrt.length] = "na";
    }
     this.hdrLabels = arLab;
     this.cellWidth = arWdth;
     this.cellType = arTyp;
     this.cellAlign = arAlg;     
     this.fldSort = arSrt;
    }
     
     this.setColTypes = function(typeStr){
      this.cellType = typeStr.split(this.delim);
    }
     
     this.setColSorting = function(sortStr){
      this.fldSort = sortStr.split(this.delim);
    }
     
     this.setColAlign = function(alStr){
       this.cellAlign = alStr.split(this.delim);
    }
         
     
     this.setMultiLine = function(fl){
     if(fl==true)
     this.multiLine = -1;
    }
     
     this.setNoHeader = function(fl){
     if(fl==true)
     this.noHeader = -1;
    }
     
     this.showRow = function(rowID){
     this.moveToVisible(this.getRowById(rowID).cells[0]);
    }
     
     
     this.setStyle = function(ss_header,ss_list,ss_selCell,ss_selRow){
     this.ssModifier = new Array(4);
     this.ssModifier[0] = ss_header;
     this.ssModifier[1] = ss_list;
     this.ssModifier[2] = ss_selCell;
     this.ssModifier[3] = ss_selRow;
     this.styleSheet[0].addRule("#"+this.entBox.id+" table.hdr td",this.ssHeader+""+this.ssModifier[0]);
     this.styleSheet[0].addRule("#"+this.entBox.id+" table.obj td",this.ssListCell+""+this.ssModifier[1]);
     this.styleSheet[0].addRule("#"+this.entBox.id+" table.obj tr.rowselected td.cellselected",this.ssSelectedCell+""+this.ssModifier[2]);
     this.styleSheet[0].addRule("#"+this.entBox.id+" table.obj td.cellselected",this.ssSelectedCell+""+this.ssModifier[2]);
     this.styleSheet[0].addRule("#"+this.entBox.id+" table.obj tr.rowselected td",this.ssSelectedRow+""+this.ssModifier[3]);
    }
     
     this.setColumnColor = function(clr){
     this.columnColor = clr.split(this.delim);
    }
     
     
     this.doDynScroll = function(fl){
     if(!this.prmScroll || this.prmScroll=='false')
     return false;
     this.objBox.style.overflowY = "hidden";
     this.setDynScrollPageSize();
     
     var tmpAr = new Array(0)
     if(fl && fl=='up'){
     this.prmScrollPos = Math.max(this.prmScrollPos-this.prmScrollPageSize,0);
    }else if(fl && fl=='dn' && this.prmScrollPos+this.prmScrollPageSize<this.rowsCol.length){
     if(this.prmScrollPos+this.prmScrollPageSize+this.rowsBufferOutSize>this.rowsCol.length){
     this.addRowsFromBuffer();
    }
     this.prmScrollPos+=this.prmScrollPageSize;
    }
     var start = Math.max(this.prmScrollPos-this.prmScrollPageSize,0);
     for(var i = start;i<this.rowsCol.length;i++){
     if(i>=this.prmScrollPos && i<this.prmScrollPos+this.prmScrollPageSize){
     tmpAr[tmpAr.length] = this.rowsCol[i];
    }
     this.rowsCol[i].removeNode(true);
    }
     for(var i=0;i<tmpAr.length;i++){
     this.obj.childNodes[0].appendChild(tmpAr[i]);
     if(this.obj.offsetHeight>this.objBox.offsetHeight)
     this.prmScrollPos-=(this.prmScrollPageSize-i);
    }
     this.setSizes();
    }
     
     this.setDynScrollPageSize = function(){
     if(this.prmScroll && this.prmScroll!='false'){
     var rowsH = 0;
     try{
     var rowH = this.obj.rows[0].scrollHeight;
    }catch(er){
     var rowH = 20;
    }
     for(var i=0;i<1000;i++){
     rowsH = i*rowH;
     if(this.objBox.offsetHeight<rowsH)
     break;
    }
     this.prmScrollPageSize = i+2;
     this.rowsBufferOutSize = this.prmScrollPageSize*4;
    }
    }
         
     this.setOnRowSelectHandler = function(func){
     if(!func)
     this.onRowSelect = "void";
     else
     if(typeof(func)=="function")
     this.onRowSelect=func;
     else 
     this.onRowSelect=eval(func);
    }
    
    this.setOnRowDblHandler = function(func){
     if(!func)
     this.onRowDbl = "void";
     else
     if(typeof(func)=="function")
     this.onRowDbl=func;
     else 
     this.onRowDbl=eval(func);
    }
    
     this.setOnEditCellHandler = function(func){
     if(!func)
     this.onEditCell = "void";
     else
     if(typeof(func)=="function")
     this.onEditCell=func;
     else 
     this.onEditCell=eval(func);
    }
     
     this.setOnCheckHandler = function(func){
     if(!func)
     this.onCheckbox = "void";
     else
     if(typeof(func)=="function")
     this.onCheckbox=func;
     else 
     this.onCheckbox=eval(func);
    }
        
     this.setOnEnterPressedHandler = function(func){
     if(!func)
     this.onEnter = "void";
     else
     if(typeof(func)=="function")
     this.onEnter=func;
     else 
     this.onEnter=eval(func);
    }
     
     this.getPosition = function(oNode,pNode){
     if(!pNode)
     var pNode = document.body;
     var oCurrentNode=oNode;
     var iLeft=0;
     var iTop=0;
     while((oCurrentNode)&&(oCurrentNode!=pNode)){
     iLeft+=oCurrentNode.offsetLeft;
     iTop+=oCurrentNode.offsetTop;
     oCurrentNode=oCurrentNode.offsetParent;
    }
     if(((_isKHTML)||(_isOpera))&&(pNode == document.body)){
     iLeft+=document.body.offsetLeft;
     iTop+=document.body.offsetTop;
    }
    
     return new Array(iLeft,iTop);
    }
     
     this.getFirstParentOfType = function(obj,tag){
     while(obj.tagName!=tag && obj.tagName!="BODY"){
     obj = obj.parentNode;
    }
     return obj;
    }
        
     
     this.setColumnCount = function(cnt){alert('setColumnCount method deprecated');}
     
     this.showContent = function(){alert('showContent method deprecated');}
     
     
     this.objBox.onscroll = new Function("","this.list.doOnScroll()");
     if(!_isOpera)
    {
     this.hdr.onmousemove = new Function("e","this.list.changeCursorState(e||window.event)");
     this.hdr.onmousedown = new Function("e","this.list.startColResize(e||window.event)");
    }
     
    //this.obj.onmousemove = new Function("e","if(!this.list.editor){var c = this.list.getFirstParentOfType(e?e.target:event.srcElement,'TD');var r = c.parentNode;var ced = this.list.cells(r.idd,c._cellIndex);(e?e.target:event.srcElement).title = ced.getTitle?ced.getTitle():ced.getValue()}");
     this.entBox.onclick = new Function("e","this.list._doClick(e||window.event)");
     this.entBox.ondblclick = new Function("e", "this.list._doDblClick(e||window.event)");
     //this.entBox.ondblclick = new Function("e","this.list._doClick(e||window.event)");
     //this.obj.ondblclick = new Function("e","this.list.editCell(e||window.event)");
     this.hdr.onclick = new Function("e","if(this.list.resized==null)this.list._sortField(e||window.event);");
     
     //document.onkeydown = new Function("e","document.getElementById('"+this.entBox.id+"').list.doKey(e||window.event)");
     
     
     this.entBox.onbeforeactivate = new Function("","this.list.setActive()");
     this.entBox.onbeforedeactivate = new Function("","this.list.isActive=-1");
     
     this.doOnRowAdded = function(row){};
     
    }   
     
     prismListObject.prototype.addRow = function(new_id,text,ind){
     
     this.math_off=true;
     this.math_req=false;
    
     if((arguments.length<3)||(ind===window.undefined))
     ind = this.rowsCol.length;
     else{
     if(ind>this.rowsCol.length)
     ind = this.rowsCol.length;
    }
     if(typeof(text)!='object')
     text = text.split(this.delim);
    
    
    
     if((!this.prmScroll || this.prmScroll=='false' || ind<this.obj.rows.length)&&((ind)||(ind==0)))
    {
     if((_isKHTML)&&(ind==this.obj.rows.length)){
     var r=document.createElement("TR");
     this.obj.appendChild(r);
    }
     else
     var r=this.obj.insertRow(ind);
    }
     else
     var r = this.obj.insertRow(this.obj.rows.length);
    
     if(this.multiLine != true)
     r.style.height = "25px";
     r.idd = new_id;
     r.list = this;
     if(this.obj.rows.length == 1) this.countcolor = 1;     
     
     if(this.countcolor == 0) r.className = 'newtableMouseOut2'; 
     else r.className = 'newtableMouseOut'; 
     
     if(this.countcolor == 1) this.countcolor--;
     else this.countcolor++;

     
     for(var i=0;i<this.hdr.rows[0].cells.length;i++){
     var c = r.insertCell(i)     
     c._cellIndex = i;
     c.align = this.cellAlign[i];
     
     c.bgColor = this.columnColor[i] || "";
     
     c.style.paddingLeft = "7px";
     c.style.paddingRight = "10px";

     this.editStop();
     if(i<text.length){
     var val = text[i];
     if((this.defVal[i])&&(val==""))val = this.defVal[i];

     eval("this.editor = new prismC_"+this.cellType[i]+"(c)");
     this.editor.setValue(val);
     this.editor = null;
    }else{
     var val = "&nbsp;";
     c.innerHTML = val;
    }
    
    }
    
     this.rowsAr[new_id] = r;
     this.rowsCol.insertAt(ind,r);
    
     
    
     this.chngCellWidth(ind);
     this.doOnRowAdded(r);
    
     this.math_off=false;
     if((this.math_req)&&(!this._parsing_)){
     for(var i=0;i<this.hdr.rows[0].cells.length;i++)
     this._checkSCL(r.childNodes[i]);
    }
     return r;
    
    }
    //***********************************************************************
    
    
    function prismListCellObject(obj){
     this.cell = obj;
     
     this.getValue = function(){
     return this.cell.innerHTML.trim();
    }
     
     this.getFont = function(){
     arOut = new Array(3);
     if(this.cell.style.fontFamily)
     arOut[0] = this.cell.style.fontFamily;
     if(this.cell.style.fontWeight=='bold' || this.cell.parentNode.style.fontWeight=='bold')
     arOut[1] = 'bold';
     if(this.cell.style.fontStyle=='italic' || this.cell.parentNode.style.fontWeight=='italic')
     arOut[1]+= 'italic';
     if(this.cell.style.fontSize)
     arOut[2] = this.cell.style.fontSize;
     else
     arOut[2] = "";
     return arOut.join("-");
    }
     
     this.getTextColor = function(){
     if(this.cell.style.color)
     return this.cell.style.color;
     else
     return "#000000";
    }
     
     this.getBgColor = function(){
     if(this.cell.bgColor)
     return this.cell.bgColor;
     else
     return "#FFFFFF";
    }
     
     this.getHorAlign = function(){
     if(this.cell.style.textAlign)
     return this.cell.style.textAlign;
     else if(this.cell.align)
     return this.cell.align;
     else
     return "left";
    }
     
     this.getWidth = function(){
     return this.cell.scrollWidth;
    }
     
     this.setFont = function(val){
     fntAr = val.split("-");
     this.cell.style.fontFamily = fntAr[0];
     this.cell.style.fontSize = fntAr[fntAr.length-1];
     if(fntAr.length==3){
     if(/bold/.test(fntAr[1]))
     this.cell.style.fontWeight = "bold";
     if(/italic/.test(fntAr[1]))
     this.cell.style.fontStyle = "italic";
    }
     
    }
         
     this.setTextColor = function(val){
     this.cell.style.color = val;
    }
     
     this.setBgColor = function(val){
     if(val=="")
     val = null;
     this.cell.bgColor = val;
    }
     
     this.setHorAlign = function(val){
     if(val.length==1){
     if(val=='c')
     this.cell.style.textAlign = 'center';
     else if(val=='l')
     this.cell.style.textAlign = 'left';
     else
     this.cell.style.textAlign = 'right';
    }else 
     this.cell.style.textAlign = val;
    }
     
     this.wasChanged = function(){
     if(this.cell.wasChanged)
     return true;
     else
     return false;
    }
     
     this.isCheckbox = function(){
     var ch = this.cell.firstChild;
     if(ch && ch.tagName=='INPUT'){
     type = ch.type;
     if(type=='radio' || type=='checkbox')
     return true;
     else
     return false;
    }else
     return false;
    }
     
     this.isChecked = function(){
     if(this.isCheckbox()){
     return this.cell.firstChild.checked;
    }
    }
     
     this.isDisabled = function(){
     if(this.isCheckbox()){
     return this.cell.firstChild.disabled;
    }
    }
     
     this.setChecked = function(fl){
     if(this.isCheckbox()){
     if(fl!='true' && fl!=1)
     fl = false;
     this.cell.firstChild.checked = fl;
    }
    }
     
     this.setDisabled = function(fl){
     if(this.isCheckbox()){
     if(fl!='true' && fl!=1)
     fl = false;
     this.cell.firstChild.disabled = fl;
    }
    }
    }
       
    prismListCellObject.prototype.setValue = function(val){
     if(!val || val.toString().trim()=="")
     val="&nbsp;";
     this.cell.innerHTML = val;
    }  
     
    function prismC(){
     this.obj = null;
     
     this.val = null;
     
     this.changeState = function(){return false}
     
     this.edit = function(){this.val = this.getValue()}
     
     this.detach = function(){return false}
     
     this.getPosition = function(oNode){
     var oCurrentNode=oNode;
     var iLeft=0;
     var iTop=0;
     while(oCurrentNode.tagName!="BODY"){
     iLeft+=oCurrentNode.offsetLeft;
     iTop+=oCurrentNode.offsetTop;
     oCurrentNode=oCurrentNode.offsetParent;
    }
     return new Array(iLeft,iTop);
    }
    }
    prismC.prototype = new prismListCellObject;
    
     
    function prismC_ed(cell){
     try{
     this.cell = cell;
     this.list = this.cell.parentNode.list;
    }catch(er){}
     this.edit = function(){
     this.val = this.getValue();
     this.obj = document.createElement("TEXTAREA");
     this.obj.style.width = "100%";
     this.obj.style.height =(this.cell.offsetHeight-4)+"px";
     this.obj.style.border = "0px";
     this.obj.style.margin = "0px";
     this.obj.style.padding = "0px";
     this.obj.style.overflow = "hidden";
     this.obj.style.fontSize = "12px";
     this.obj.style.fontFamily = "Arial";
     this.obj.wrap = "soft";
     this.obj.style.textAlign = this.cell.align;
     this.obj.onclick = function(e){(e||event).cancelBubble = true}
     this.obj.value = this.val;
     this.cell.innerHTML = "";
     this.cell.appendChild(this.obj);
     this.obj.onselectstart=function(e){if(!e)e=event;e.cancelBubble=true;return true;};
     this.obj.focus();
     this.obj.focus();
    }
     this.getValue = function(){
     
     return this.cell.innerHTML.toString().trim();
    }
     
     this.detach = function(){
     this.setValue(this.obj.value);
     return this.val!=this.getValue();
    }
    }
    prismC_ed.prototype = new prismC;
    
     
    function prismC_ch(cell){
     try{
     this.cell = cell;
     this.list = this.cell.parentNode.list;
     this.cell.obj = this;
    }catch(er){}
     this.changeState = function(){
     
     if(typeof(this.list.onEditCell)=="string"){
     if(eval(this.list.onEditCell+"(0,'"+this.cell.parentNode.idd+"',"+this.cell._cellIndex+");")!=false){
     this.val = this.getValue();
     if(this.val=="1")
     this.setValue("<checkbox state='false'>");
     else
     this.setValue("<checkbox state='true'>");
     
     eval(this.list.onEditCell+"(1,'"+this.cell.parentNode.idd+"',"+this.cell._cellIndex+");")
     eval(this.list.onCheckbox+"('"+this.cell.parentNode.idd+"',"+(this.val!='1')+","+this.cell._cellIndex+");")
    }else{
     this.list.editor=null;
    }
    }else{
     if(this.list.onEditCell(0,this.cell.parentNode.idd,this.cell._cellIndex)!=false){
     this.val = this.getValue();
     if(this.val=="1")
     this.setValue("<checkbox state='false'>");
     else
     this.setValue("<checkbox state='true'>");
     
     this.list.onEditCell(1,this.cell.parentNode.idd,this.cell._cellIndex);
     this.list.onCheckbox(this.cell.parentNode.idd,this.cell._cellIndex,(this.val!='1'));
    }else{
     this.editor=null;
    }
    }
      
     
    }
     this.getValue = function(){
     try{
     return this.cell.chstate.toString();
    }catch(er){
     return null;
    }
    }
     this.isCheckbox = function(){
     return true;
    }
     this.isChecked = function(){
     if(this.getValue()=="1")
     return true;
     else
     return false;
    }
     this.setChecked = function(fl){
     this.setValue(fl.toString());
    }
     this.detach = function(){
     return this.val!=this.getValue();
    }
    }
    prismC_ch.prototype = new prismC;
    prismC_ch.prototype.setValue = function(val){
     
     val=(val||"").toString();
     if(val.indexOf("1")!=-1 || val.indexOf("true")!=-1){
     val = "1";
     this.cell.chstate = "1";
    }else{
     val = "0";
     this.cell.chstate = "0";
    }
     var obj = this;
     this.cell.innerHTML = "<img src='"+this.list.imgURL+"checkbox"+val+".gif' onclick='this.parentNode.obj.changeState()'>";
    }
    
 function prismC_ra(cell){this.base=prismC_ch;this.base(cell);this.changeState=function(){if(typeof(this.list.onEditCell)=="string"){if(eval(this.list.onEditCell+"(0,'"+this.cell.parentNode.idd+"',"+this.cell._cellIndex+");")!=false){this.val=this.getValue();if(this.val=="1")this.setValue("<checkbox state='false'>");else this.setValue("<checkbox state='true'>");eval(this.list.onEditCell+"(1,'"+this.cell.parentNode.idd+"',"+this.cell._cellIndex+");");eval(this.list.onCheckbox+"('"+this.cell.parentNode.idd+"',"+(this.val!='1')+","+this.cell._cellIndex+");");for(var i=0;i<this.list.getRowsNum();i++){if(this.list.cells2(i,this.cell._cellIndex).isChecked()&&this.list.cells2(i,this.cell._cellIndex).cell!=this.cell)this.list.cells2(i,this.cell._cellIndex).setValue("<checkbox state='false'>");}}else{this.list.editor=null;}}else{if(this.list.onEditCell(0,this.cell.parentNode.idd,this.cell._cellIndex)!=false){this.val=this.getValue();if(this.val=="1")this.setValue("<checkbox state='false'>");else this.setValue("<checkbox state='true'>");this.list.onEditCell(1,this.cell.parentNode.idd,this.cell._cellIndex);this.list.onCheckbox(this.cell.parentNode.idd,this.cell._cellIndex,(this.val!='1'));for(var i=0;i<this.list.getRowsNum();i++){if(this.list.cells2(i,this.cell._cellIndex).isChecked()&&this.list.cells2(i,this.cell._cellIndex).cell!=this.cell)this.list.cells2(i,this.cell._cellIndex).setValue("<checkbox state='false'>");}}else{this.editor=null;}}}};prismC_ra.prototype=new prismC_ch;prismC_ra.prototype.setValue=function(val){if((val||"").indexOf("1")!=-1||(val||"").indexOf("true")!=-1){val="1";this.cell.chstate="1";}else{val="0";this.cell.chstate="0";};var obj=this;this.cell.innerHTML="<img src='"+this.list.imgURL+"radio_chk"+val+".gif' onclick='this.parentNode.obj.changeState()'>";};

function prismC_txt(cell){try{this.cell=cell;this.list=this.cell.parentNode.list;}catch(er){};this.edit=function(){this.val=this.getValue()
this.obj=document.createElement("TEXTAREA");this.obj.style.border="1px solid"
this.obj.style.borderColor="black silver silver black";this.obj.style.position="absolute";this.obj.style.height="100px";this.obj.onclick=function(e){(e||event).cancelBubble=true};var arPos=this.list.getPosition(this.cell);this.obj.value=this.cell.innerHTML;document.body.appendChild(this.obj);this.obj.style.left=arPos[0]-this.list.objBox.scrollLeft;this.obj.style.top=arPos[1]+this.cell.offsetHeight-this.list.objBox.scrollTop;if(this.cell.scrollWidth<200)this.obj.style.width=200;else this.obj.style.width=this.cell.scrollWidth;this.obj.style.display="";this.obj.style.textAlign=this.cell.align;this.obj.focus();this.obj.focus();};this.detach=function(){this.setValue(this.obj.value);document.body.removeChild(this.obj);return this.val!=this.getValue();}};prismC_txt.prototype=new prismC;
    
     
   function prismC_co(cell){try{this.cell=cell;this.list=this.cell.parentNode.list;this.combo=this.list.getCombo(this.cell._cellIndex);this.editable=true;}catch(er){};this.shiftNext=function(){var z=this.i_sel||0;z++;if(this.list.rows[z]){this.list.rows[this.i_sel||0].childNodes[0].style.cssText="";this.list.rows[z].childNodes[0].style.cssText="color:white;background-color:navy";this.i_sel=z;this.obj.value=this.list.rows[z].childNodes[0].innerHTML;this.val=this.list.rows[z].childNodes[0].innerHTML;}};this.shiftPrev=function(){var z=this.i_sel||0;z--;if(this.list.rows[z]){this.list.rows[this.i_sel||0].childNodes[0].style.cssText="";this.list.rows[z].childNodes[0].style.cssText="color:white;background-color:navy";this.i_sel=z;this.obj.value=this.list.rows[z].childNodes[0].innerHTML;this.val=this.list.rows[z].childNodes[0].innerHTML;}};this.edit=function(){this.val=this.getValue();this.text=this.getText();var arPos=this.list.getPosition(this.cell);this.obj=document.createElement("TEXTAREA");var objCssText="width:100%;height:"+(this.cell.offsetHeight-4)+"px;border:0px;padding:0px;margin:0px;font:12px arial;overflow:hidden";(this.obj.runtimeStyle||this.obj.style).cssText=objCssText;this.obj.wrap="soft";this.obj.style.textAlign=this.cell.align;this.obj.onclick=function(e){(e||event).cancelBubble=true};this.obj.value=this.text;this.listBox=document.createElement("DIV");var listCssText="width:"+this.cell.offsetWidth+"px;height:100px;overflow-y:scroll;position:absolute;border:1px solid;border-color:black silver silver black;background-color:white;";this.listBox.style.cssText=listCssText;this.listBox.style.left=arPos[0]-this.list.objBox.scrollLeft+"px";this.listBox.style.top=arPos[1]+this.cell.offsetHeight-this.list.objBox.scrollTop+"px";this.list=document.createElement("TABLE");this.list.editor_obj=this;this.list.cellSpacing="0px";this.list.cellPadding="1px";this.list.style.cssText="font-family:arial;font-size:12px;width:100%;table-layout:fixed;cursor:default;";this.list.onclick=function(e){var ev=e||window.event;var cell=ev.target||ev.srcElement;var tbl=cell.parentNode.parentNode.parentNode;tbl.editor_obj.val=cell.combo_val;tbl.editor_obj.setValue(cell.combo_val);tbl.editor_obj.detach();};var comboKeys=this.combo.getKeys();var fl=false;for(var i=0;i<comboKeys.length;i++){var row=this.list.insertRow(i);var cell=row.insertCell(0);cell.style.borderBottom="1px solid silver";var val=this.combo.get(comboKeys[i]);cell.combo_val=comboKeys[i];cell.innerHTML=val;if(comboKeys[i]==this.val){cell.style.cssText="color:white;background-color:navy";this.i_sel=i;fl=true;}}if(fl==false){var cell=this.list.insertRow(0).insertCell(0);cell.combo_val=this.val;cell.innerHTML=this.text;cell.style.cssText="color:white;background-color:navy";};document.body.appendChild(this.listBox);this.listBox.appendChild(this.list);if(this.editable){this.cell.innerHTML="";this.cell.appendChild(this.obj);this.obj.focus();}};this.getValue=function(){return this.cell.combo_value;};this.getText=function(){return this.cell.innerHTML;};
     this.detach=function(){if(this.obj.parentNode!=null){if(this.editable)if(this.obj.value.trim()!=this.text){this.setValue(this.obj.value);}else{this.setValue(this.val);}}else this.setValue(this.val);if(typeof(this.list.onEditCell)=="string")eval(this.list.onEditCell+"(2,'"+this.cell.parentNode.idd+"',"+this.cell._cellIndex+");");else this.list.onEditCell(2,this.cell.parentNode.idd,this.cell._cellIndex);if(this.listBox.offsetParent!=null)this.listBox.parentNode.removeChild(this.listBox);return this.val!=this.getValue();}};
prismC_co.prototype=new prismC;prismC_co.prototype.setValue=function(val){if((val||"").toString().trim()=="")val=null;var text=this.list.getCombo(this.cell._cellIndex).get(val)||val;this.cell.innerHTML=text;this.cell.combo_value=val;};function prismC_coro(cell){this.base=prismC_co;this.base(cell);this.editable=false;};prismC_coro.prototype=new prismC_co;
    
     
function prismC_cp(cell){try{this.cell=cell;this.list=this.cell.parentNode.list;}catch(er){};this.edit=function(){this.val=this.getValue();this.obj=document.createElement("SPAN");this.obj.style.border="1px solid black";this.obj.style.position="absolute";var arPos=this.list.getPosition(this.cell);this.colorPanel(4,this.obj);document.body.appendChild(this.obj);this.obj.style.left=arPos[0]-this.list.objBox.scrollLeft;this.obj.style.top=arPos[1]+this.cell.offsetHeight-this.list.objBox.scrollTop;};this.toolDNum=function(value){if(value.length==1)value='0'+value;return value;};this.detach=function(){if(typeof(this.list.onEditCell)=="string")eval(this.list.onEditCell+"(2,'"+this.cell.parentNode.idd+"',"+this.cell._cellIndex+");");else{this.list.onEditCell(2,this.cell.parentNode.idd,this.cell._cellIndex);}if(this.obj.offsetParent!=null)document.body.removeChild(this.obj);return this.val!=this.getValue();}};prismC_cp.prototype=new prismC;prismC_cp.prototype.setValue=function(val){this.cell.innerHTML="<div style='width:100%;height:"+(this.cell.offsetHeight-2)+";background-color:"+(val||"")+";border:0px;'>&nbsp;</div>";};
    
function prismC_img(cell){try{this.cell=cell;this.list=this.cell.parentNode.list;}catch(er){}this.getValue=function(){return this.cell.firstChild.src;}};prismC_img.prototype=new prismC;prismC_img.prototype.setValue=function(val){this.cell.innerHTML="<img src='"+(val||"").trim()+"' border='0'>";};
    
     
function prismC_price(cell){this.base=prismC_ed;this.base(cell);this.getValue=function(){if(this.cell.childNodes.length>1)return this.cell.childNodes[1].innerHTML.toString().trim();else return 0;}};prismC_price.prototype=new prismC_ed;prismC_price.prototype.setValue=function(val){if(isNaN(Number(val))){if(!(val||"")||(val||"").trim()!="")val=0;val=this.val||0;}if(val>0){var color="green";this.cell.innerHTML="<span>$</span><span style='padding-right:2px;color:"+color+";'>"+val+"</span>";}else{this.cell.innerHTML="<div align='center' style='color:red;'>&nbsp;</div>";}};
    
     
function prismC_prm(cell){this.base=prismC_ed;this.base(cell);this.getValue=function(){return this.cell.firstChild.childNodes[1].innerHTML.toString().trim();}};function prismC_ro(cell){this.cell=cell;this.list=this.cell.parentNode.list;this.edit=function(){}};prismC_ro.prototype=new prismC;
    
    //SETUP CHECKBOX
function prismC_checkbox(cell){try{this.cell=cell;this.list=this.cell.parentNode.list;}catch(er){}this.getValue=function(){return this.cell.firstChild.src;}};prismC_checkbox.prototype=new prismC;prismC_checkbox.prototype.setValue=function(val){this.cell.innerHTML="<input type='checkbox' name='"+CheckboxId+"' id='"+CheckboxId+"' value='"+val+"'>";};
    
    
function prismListComboObject(){this.keys=new Array();this.values=new Array();this.put=function(key,value){for(var i=0;i<this.keys.length;i++){if(this.keys[i]==key){this.values[i]=value;return true;}};this.values[this.values.length]=value;this.keys[this.keys.length]=key;};this.get=function(key){for(var i=0;i<this.keys.length;i++){if(this.keys[i]==key){return this.values[i];}};return null;};this.clear=function(){this.keys=new Array();this.values=new Array();};this.remove=function(key){for(var i=0;i<this.keys.length;i++){if(this.keys[i]==key){this.keys.removeAt(i);this.values.removeAt(i);return true;}}};this.size=function(){var j=0;for(var i=0;i<this.keys.length;i++){if(this.keys[i]!=null)j++;};return j;};this.getKeys=function(){var keyAr=new Array(0);for(var i=0;i<this.keys.length;i++){if(this.keys[i]!=null)keyAr[keyAr.length]=this.keys[i];};return keyAr;};return this;} 

//End of a new listing feature
ajaxLoaded = true;
