            var websiteCounter = 0;
			var fileCounter = 0;
            var currentAction = NEW;
            var currentList = null;
            var currentEditCounter = -1;
            var NEW = 0;
            var EDIT = 1;
	function setCurrentList(list){
		currentList = list;
	}
	
	function initializeCounter(counter){
		websiteCounter = counter;
	}

	function floatWebsite(action,counter){
		var div = document.getElementById("addWebsiteDiv");
		
		if (action == NEW) {
			currentAction = NEW;
			document.getElementById("url").value = "";
			document.getElementById("name").value = "";
		} else {
			currentAction = EDIT;
			currentEditCounter = counter;
			document.getElementById("url").value = document.getElementById("url_" + counter).value;
			document.getElementById("name").value = document.getElementById("name_" + counter).value;
		}
		div.style.display = "block";
		div.style.visibility = "visible";
	}
	
	function hideWebsite(){
		var div = document.getElementById("addWebsiteDiv");
		div.style.display = "none";
		div.style.visibility = "hidden";
	}
	
	function deleteWebsite(counter){
		var list = document.getElementById("websiteList");
		var div = document.getElementById("websiteDiv_" + counter);
		list.removeChild(div);
		var params = document.getElementById("params");
		params.removeChild(document.getElementById("url_" + counter));
		params.removeChild(document.getElementById("name_" + counter));
	}
	
	function postWebsite(url,name,parameter_url,parameter_name){
		hideWebsite();


		if(currentAction == NEW){
			//alert("currentAction is NEW");
			var div = document.createElement("div");
			div.counter = websiteCounter;
			div.id = "websiteDiv_" + websiteCounter;
			div.style.background = "#99CCFF";
			div.style.border = "1px solid #3399FF";
			div.innerHTML = "<table cellspacing='0' style='width: 100%;' class='xvalue'><tbody><tr><td valign='top'><img style='margin: 4px;' src='/images/edit/url.gif'/></td><td style='width: 99%;'><table cellspacing='0' style='width: 100%;'><tbody><tr><td id='td_url_" + websiteCounter + "' width='99%' style='padding-left: 4px;' class='hlite'><a id='a_url_" + websiteCounter + "' href=" + url + " target='_blank' linkindex='38' set='yes'><font id='font_name_" + websiteCounter + "'>" + name + "</font></a></td></tr></tbody></table></td><td valign='top' nowrap=''><input type='button' onclick='floatWebsite(EDIT," + websiteCounter + ")' value='Edit »' class='xbutton'/><input type='button' onclick='deleteWebsite(" + websiteCounter + ")' value='Delete' class='xbutton'/></td></tr></tbody></table>";
			var websiteList = document.getElementById("websiteList");
			websiteList.appendChild(div);
			var params = document.getElementById("params");
			var hiddenURL = document.createElement("input");
			hiddenURL.type = "hidden";
			hiddenURL.id = "url_" + websiteCounter;
			hiddenURL.name = parameter_url;
			hiddenURL.value = url;
			var hiddenName = document.createElement("input");
			hiddenName.type = "hidden";
			hiddenName.id = "name_" + websiteCounter;
			hiddenName.name = parameter_name;
			hiddenName.value = name;
			params.appendChild(hiddenURL);
			params.appendChild(hiddenName);
			document.getElementById("website_param").value = websiteCounter + 1;
			websiteCounter++;
		}else{
			//alert("currentAction is EDIT");
			//alert("currentEditCounter is " + currentEditCounter);
			var a = document.getElementById("a_url_" + currentEditCounter);
			a.href = url;
			a.innerHTML = name;
			var hiddenURL = document.getElementById("url_" + currentEditCounter);
			hiddenURL.value = url;
			var hiddenName = document.getElementById("name_" + currentEditCounter);
			hiddenName.value = name;
		}
		currentAction = NEW;
		currentEditCounter = -1;
	}
	
	function positionFloat(element) {
		var xcoord = DL_GetElementLeft(element);
		var ycoord = DL_GetElementTop(element);
		document.getElementById("addWebsiteDiv").style.left = xcoord + "px";
		document.getElementById("addWebsiteDiv").style.top = ycoord + "px";
		// xcoord and ycoord contain the mouse position relative to the document
		// Do something with this information
	}

	function positionFloat2(element) {
		var xcoord = DL_GetElementLeft(element);
		var ycoord = DL_GetElementTop(element);
		document.getElementById("theLayer").style.left = xcoord + "px";
		document.getElementById("theLayer").style.top = ycoord + "px";
		// xcoord and ycoord contain the mouse position relative to the document
		// Do something with this information
	}

	function positionFloat3(element, div) {
		var xcoord = DL_GetElementLeft(element);
		var ycoord = DL_GetElementTop(element);
		div.style.left = xcoord + "px";
		div.style.top = ycoord + "px";
		// xcoord and ycoord contain the mouse position relative to the document
		// Do something with this information
	}

	var checkBoxCount = 0;
	function setCheckBoxCount(count){
		checkBoxCount = count;
	}

	function checkAllBoxes(checked){
		var status = true;
		if (!checked) status = false;
		for (var i=0; i<checkBoxCount; ++i) {
			document.getElementById("com_bch-id_" + i).checked = status;
		}
	}

        function generateTextInput( div, input_name, existing_input ){
            var table = document.createElement( "table" );
            table.appendChild( document.createElement( "tbody" ) );
            table.appendChild( document.createElement( "tfoot" ) );

            if( existing_input ){
                for( var i = 0; i < existing_input.length; i++ )
                    appendRowForTextInput( table, input_name, existing_input[i] );
            }   

            var add_link = document.createElement( "a" );
            add_link.href = "javascript:void(0)";
            add_link.innerHTML = "Add Item";
            add_link.onclick = function(){
                appendRowForTextInput( table, input_name, "" );
            }

            table.tFoot.appendChild( add_link );
            div.appendChild( table );
        }

        function appendRowForTextInput( table, input_name, _value ){
            var _length = table.tBodies[0].rows.length;
            table.tBodies[0].insertRow( _length );
            table.tBodies[0].rows[_length].insertCell(0);

            var _input = document.createElement( "INPUT" );
            _input.type = "text";
            _input.name = input_name;
            _input.value = _value;
            //alert("value: " + _value);
            //alert("_input.name: " + _input.name);
            //alert("_input.value: " + _input.value);

            var delete_link = document.createElement( "a" );
            delete_link.style.verticalAlign = "bottom";
            delete_link.href="javascript:void(0)";
            delete_link.innerHTML = "<img src=\"templates/bch/images/del.png\" border=\"0\">";
            delete_link.onclick = function(){
                deleteRow( this.parentNode.parentNode );
            }
            var div_in = document.createElement("div");
            div_in.innerHTML += "&nbsp; ";
            div_in.appendChild( _input );
            //div_in.innerHTML += "&nbsp; &nbsp; &nbsp; ";
            div_in.appendChild( delete_link );
            //div_in.innerHTML += "&nbsp; &nbsp; ";
            div_in.style.padding = "5px;";
            div_in.style.verticalAlign = "middle";
            table.tBodies[0].rows[_length].cells[0].appendChild( div_in );
            //alert("_input.value 1: " + _input.value);
        }

	function generateAddDocInput( div, file_input_name ){
		var table = createNewTable( "add_file_table", 2, 1, true, false );
		table.setTHeadCellData( 0, 0, "Enter file to include" );

		var file_input = document.createElement( "input" );
		file_input.type = "file";
		file_input.name = file_input_name + "_" + (++fileCounter);

		table.setCellData( 0, 0, 0, file_input );
		
		var cancel = document.createElement("input" );
		cancel.type = "button";
		cancel.value = "Cancel";
		cancel.onclick = function(){
			hideMe();
		}

		var cont = document.createElement( "input" );
		cont.type = "button";
		cont.value = "Continue";
		cont.onclick = function(){
			var table = undefined;
			if( table = getChild( div, "file_list" ) ){

			}else{
				var table = document.createElement( "table" );
				table.appendChild( document.createElement( "tbody" ) );
				table.id = "file_list" ;						
				div.insertBefore( table, div.firstChild );
			}

			if( file_input.value == "" ){
				//alert( "required field: file" );
				return;
			}else{

				var delete_button = document.createElement( "a" );
				delete_button.href = "javascript:void(0)";
				delete_button.innerHTML = "Delete";
				delete_button.onclick = function(){
					deleteRow( this.parentNode.parentNode );
				}

				var row_count = div.firstChild.rows.length;
				table.tBodies[0].insertRow(row_count);
				table.tBodies[0].rows[row_count].insertCell(0);
				table.tBodies[0].rows[row_count].insertCell(1);

				table.tBodies[0].rows[row_count].cells[0].appendChild( file_input );
				table.tBodies[0].rows[row_count].cells[1].appendChild( delete_button );
			}
			hideMe();
		}
		var span = document.createElement( "span" );

		span.appendChild( cancel );
		span.appendChild( cont );
		table.setCellData( 0, 1, 0, span );

		var theLayer = document.getElementById( "theLayer" );
		theLayer.style.top = DL_GetElementTop( div )+div.offsetHeight;
		theLayer.style.left = DL_GetElementLeft( div );
		theLayer.style.display="block";
		if( document.getElementById( "cont" ).firstChild )
			document.getElementById( "cont" ).removeChild( document.getElementById( "cont" ).firstChild );

		if( document.getElementById( "cont" ).firstChild )
			document.getElementById( "cont" ).replaceChild( table.instance, document.getElementById( "cont" ).firstChild );
		else
			document.getElementById( "cont" ).appendChild( table.instance );
		positionFloat3( div, theLayer );
		showMe();
	}

	function generateWebsiteDiv( div, website, url, desc, existing_input ){
		var rel_link_div = document.createElement( "div" );
		rel_link_div.id = "related_links";
		var add_link_link = document.createElement( "a" );
		add_link_link.href="javascript:void(0)";
		add_link_link.innerHTML="Add Related Link";

		var table = undefined;
		table = document.createElement( "table" );
		table.id = "website_list" ;
		table.appendChild( document.createElement( "tbody" ) );
		rel_link_div.appendChild( table );

		add_link_link.onclick = function(){
			generateAddWebsiteInput( rel_link_div, website, url, desc );
		}

		if( existing_input ){
			for( var i = 0 ; i < existing_input.length; i++ ){
				//alert("> "+existing_input[i]['url']);
				appendRowForWebsiteList( rel_link_div, website, url, desc, existing_input[i]['url'], existing_input[i]['desc']   );                                        
			}
		}

		rel_link_div.appendChild( add_link_link);
		div.appendChild( rel_link_div );

	}

	function generateDocumentDiv( div, file_input_name ){
		var rel_doc_div = document.createElement( "div" );
		rel_doc_div.id = "related_docs";


		var add_doc_link = document.createElement( "a" );
		add_doc_link.href="javascript:void(0)";
		add_doc_link.innerHTML = "Add Related Doc";
		add_doc_link.onclick = function(){
			generateAddDocInput( rel_doc_div, file_input_name  );
		}
		rel_doc_div.appendChild( add_doc_link );
		div.appendChild( rel_doc_div );
	}

	function appendRowForWebsiteList( div, website, _url, desc, url_value, desc_value, row  ){
                var table = getChild(div, "website_list");
		var hidden_url = document.createElement( "input" );
		hidden_url.type = "hidden";
		hidden_url. name = _url;
		hidden_url.value = url_value;

		var hidden_website = document.createElement( "input" );
		hidden_website.type = "hidden";
		hidden_website.name = website;
		hidden_website.value = "";

		var hidden_desc = document.createElement( "input" );
		hidden_desc.type = "hidden";
		hidden_desc.name = desc;
		hidden_desc.value = desc_value;

		var edit_button = document.createElement( "input" );
		edit_button.type = "button";
		edit_button.value = "Edit";
		edit_button.onclick = function(){
				generateAddWebsiteInput( div, website, _url, desc, url_value, desc_value, this.parentNode.parentNode );
		}

		var delete_button = document.createElement( "input" );
		delete_button.type = "button";
		delete_button.value = "Delete";
		delete_button.onclick = function(){
				deleteRow( this.parentNode.parentNode );
		}

		if( row ){	
			row.removeChild( row.firstChild );
			row.removeChild( row.firstChild );
			row.removeChild( row.firstChild );
			row.insertCell( 0 );
			row.insertCell( 1 );
			row.insertCell( 2 );
			row.insertCell( 3 );

			var url = document.createElement( "a" );
			var ximg = document.createElement( "div" );
			url.innerHTML = desc_value? desc_value: url_value;
			url.href = url_value;
                        ximg.innerHTML = getImgIcon(url.href);

			row.cells[0].appendChild( ximg );
			row.cells[1].appendChild( url	);
			row.cells[1].appendChild( hidden_url );
			row.cells[1].appendChild( hidden_website );
			row.cells[1].appendChild( hidden_desc );
			row.cells[2].appendChild( edit_button );
			row.cells[3].appendChild( delete_button );
		}else{
			var row_count = table.tBodies[0].rows.length;
			table.tBodies[0].insertRow(row_count);
			table.tBodies[0].rows[row_count].insertCell(0);
			table.tBodies[0].rows[row_count].insertCell(1);
			table.tBodies[0].rows[row_count].insertCell(2);
			table.tBodies[0].rows[row_count].insertCell(3);

			var url = document.createElement( "a" );
			var ximg = document.createElement( "div" );
			url.innerHTML = desc_value? desc_value: url_value;
			url.href = url_value;
                        url.target = "_blank";
                        ximg.innerHTML = getImgIcon(url.href);
	
			table.tBodies[0].rows[row_count].cells[0].appendChild( ximg );
			table.tBodies[0].rows[row_count].cells[1].appendChild( url );
			table.tBodies[0].rows[row_count].cells[1].appendChild( hidden_url );
			table.tBodies[0].rows[row_count].cells[1].appendChild( hidden_website );
			table.tBodies[0].rows[row_count].cells[1].appendChild( hidden_desc );
			table.tBodies[0].rows[row_count].cells[2].appendChild( edit_button );
			table.tBodies[0].rows[row_count].cells[3].appendChild( delete_button );

		}
	}

	function generateAddWebsiteInput( div, website, url, desc, url_value, desc_value, row ){
		var table = createNewTable( "add_website_table", 5, 1, true, false )
		table.setTHeadCellData( 0, 0, "Please Fill Both Fields" );

		var url_input = document.createElement( "input" );
		url_input.type = "text";
		url_input.name = url;				
		url_input.defaultValue=url_value==undefined?"":url_value;

		var desc_input = document.createElement( "input" );
		desc_input.type = "text";
		desc_input.name = desc;
		desc_input.defaultValue=desc_value==undefined?"":desc_value;

		var cancel = document.createElement("input" );
		cancel.type = "button";
		cancel.value = "Cancel";
		cancel.onclick = function(){
			hideMe();
		}

		var cont = document.createElement( "input" );
		cont.type = "button";
		cont.value = "Continue";
		cont.onclick = function(){
                        if( url_input.value == "" ){
				//alert( "required field: url" );
				return;
			}else{
                                appendRowForWebsiteList( div, website, url, desc, url_input.value, desc_input.value, row );
			}
			hideMe();
		}

		table.setCellData( 0, 0, 0, "Enter the url of the website" );
		table.setCellData( 0, 1, 0, url_input );
		table.setCellData( 0, 2, 0, "Enter the name of the website" );
		table.setCellData( 0, 3, 0, desc_input );
		var span = document.createElement( "span" );
		span.appendChild( cancel );
		span.appendChild( cont );
		table.setCellData( 0, 4, 0, span );

		var theLayer = document.getElementById( "theLayer" );
		theLayer.style.top = DL_GetElementTop( div )+div.offsetHeight;
		theLayer.style.left = DL_GetElementLeft( div );
		theLayer.style.display="block";
		if( document.getElementById( "cont" ).firstChild )
			document.getElementById( "cont" ).removeChild( document.getElementById( "cont" ).firstChild );

		if( document.getElementById( "cont" ).firstChild )
			document.getElementById( "cont" ).replaceChild( table.instance, document.getElementById( "cont" ).firstChild );
		else
			document.getElementById( "cont" ).appendChild( table.instance );
		positionFloat3( div, theLayer );
		showMe();

	}

	function generateRelevantDocOrLinks( div, website, url, desc, file_input_name, existing_input ){
		var table = createNewTable( "relevant_docs_or_links", 2, 1, true, false );
		//table.setTHeadCellData( 0, 0, "Related Links and Documents" );

		generateDocumentDiv( table.instance.tBodies[0].rows[0].cells[0], file_input_name );
		generateWebsiteDiv( table.instance.tBodies[0].rows[1].cells[0], website, url, desc, existing_input );

		div.appendChild( table.instance );
	}

	function deleteRow( row ){
		row.parentNode.removeChild( row )
	}

	function generateOtherBCHFormContentsForView( div, existing_inputs ){
		var table = document.createElement( "table" );
		table.id="select_input_table";
		table.appendChild( document.createElement( "tbody" ) );
		table.style.width = '100%';
		table.cellPadding = '0';
		table.cellSpacing = '0';
		if( existing_inputs && existing_inputs.length>0 ){
			var table = createNewTable( "", existing_inputs.length, 1, false, false );
			var sp;
			for( var i=0; i<existing_inputs.length>0; i++ ){
				sp = document.createElement("div");
				sp.innerHTML = "<div class=\"inside\">"+existing_inputs[i]['title_en']+"</div>";
				sp.style.borderWidth = 'thin';
				sp.style.borderStyle = 'solid';
				sp.style.borderColor = '#7193ad';
				sp.style.backgroundColor = '#f2f9ff';
				sp.style.width = '100%';
                                table.setCellData( 0, i, 0, sp );
				table.instance.tBodies[0].rows[i].cells[0].style.fontSize = '';
			}
			table.instance.style.width = '100%';
                    div.appendChild( table.instance );
		}   
	}

	function generateOtherBCHFormContents(div, input_name, existing_inputs, isMultiple){
		var table = document.createElement( "table" );
		table.id="select_input_table";
		table.appendChild( document.createElement( "tbody" ) );
		table.style.width = '100%';
		table.cellPadding = '0';
		table.cellSpacing = '0';
		if(existing_inputs) for(var i = 0; i < existing_inputs.length; i++){
			if(isMultiple) addRowForMultipleSelect(div, input_name, existing_inputs[i]['title_en'], existing_inputs[i]['title_en']);
			else addRowForSingleSelect(div, input_name, existing_inputs[i]['title_en'], existing_inputs[i]['title_en']);
		}
		div.appendChild(table);
		var _span = document.createElement("div");
		var _label = document.createElement("label");
		var _input = document.createElement("input");
		var _link = document.createElement("a");
		var add_button = document.createElement("button");
		_input.type = "text";
		_label.innerHTML = "Other: ";
		_label.appendChild(_input);
		_link.href="javascript:void(0)";
		_link.innerHTML = "Other...";
		add_button.innerHTML = "Add";
		add_button.onclick = function(){
			if(isMultiple) addRowForMultipleSelect(div, input_name, _input.value, _input.value);
			else addRowForSingleSelect(div, input_name, _input.value, _input.value);
			document.getElementById( "cont" ).removeChild( _span );
			hideMe();
		}
		_span.innerHTML = "<div class=\"inside\">";
		_span.firstChild.appendChild(_label);
		_span.firstChild.appendChild(document.createElement("br"));
		_span.firstChild.appendChild(add_button);
		_link.onclick = function(){
			_input.value = "";
			var theLayer = document.getElementById( "theLayer" );
			theLayer.style.top = DL_GetElementTop( div )+div.offsetHeight;
			theLayer.style.left = DL_GetElementLeft( div );
			theLayer.style.display="block";
			if( document.getElementById( "cont" ).firstChild ) document.getElementById( "cont" ).removeChild( document.getElementById( "cont" ).firstChild );
			document.getElementById( "cont" ).appendChild( _span );
			positionFloat2( div );
			showMe();
		}
		div.appendChild(_link);
	}

	function generateBCHFormContents( div, input_name, existing_inputs, isMultiple, isGetFromWS, param1, param2, param3 ){
// 			if( !(table = getChild( select_div, "input_select_table" )) ){
// 				var table = document.createElement( "table" );
// 				var tbody = document.createElement("tbody");
// 				table.appendChild( tbody );
// 				table.id = "select_input_table";
// 				select_div.insertBefore( table, select_div.firstChild );
// 			}else{
// 				alert( " select_div:  " + table.innerHTML + " | " + table.length);
// 			}
		var table = document.createElement( "table" );
		table.id="select_input_table";
		table.appendChild( document.createElement( "tbody" ) );
		table.style.width = '100%';
		table.cellPadding = '0';
		table.cellSpacing = '0';
		var id = isGetFromWS?"form_id":"code";
		var jop;

		div.appendChild( table );
		if( existing_inputs ){
			for( var i=0; i<existing_inputs.length; i++ ){
				if(isGetFromWS){
					jop = createSelectElement(existing_inputs[i]);
				} else {
					jop = existing_inputs[i]["title_en"];
				}
				if( isMultiple ){

					addRowForMultipleSelect( div, input_name, existing_inputs[i][id], jop );
				}else{

					addRowForSingleSelect( div, input_name, existing_inputs[i][id], jop );
				}
			}
		}

		var _link = document.createElement( "a" );
		_link.href="javascript:void(0)";
		_link.onclick = function(){

			if( isGetFromWS ){
				generateSelectInput( div, input_name, param1, param2, param3, isMultiple, "" );
			}else{
				generateSelectControlledInput( div, input_name, param1, param2, param3, isMultiple, "" );
			}
		};

		_link.innerHTML = isMultiple?"Add Item":"Select";
		div.appendChild( _link );
		//alert(""+div);
	}

	function generateBCHFormContentsForView( div, existing_inputs, isForm ){
		if( existing_inputs && existing_inputs.length>0 ){
			var table = createNewTable( "", existing_inputs.length, 1, false, false );
			var sp;
			var lik;
			for( var i=0; i<existing_inputs.length>0; i++ ){
                                if(isForm){
					lik = createSelectElement(existing_inputs[i]);
                                } else {
					lik = existing_inputs[i]['title_en'];
				}
				sp = document.createElement("div");
				sp.innerHTML = "<div class=\"inside\">"+lik+"</div>";
				sp.style.borderWidth = 'thin';
				sp.style.borderStyle = 'solid';
				sp.style.borderColor = '#7193ad';
				sp.style.backgroundColor = '#f2f9ff';
				sp.style.width = '100%';
                                table.setCellData( 0, i, 0, sp );
				table.instance.tBodies[0].rows[i].cells[0].style.fontSize = '';
			}
			table.instance.style.width = '100%';
                    div.appendChild( table.instance );
		}
                    
	}

        function generateFormLinksForView( div, existing_inputs ){
		if( existing_inputs && existing_inputs.length>0 ){
			var table = createNewTable( "", existing_inputs.length, 2, false, false );
			for( var i=0; i<existing_inputs.length>0; i++ ){
                                var link = document.createElement( "a" );
                                var ximg = document.createElement( "div" );
                                if(existing_inputs[i]['desc']) link.innerHTML = existing_inputs[i]['desc'];
                                else if(existing_inputs[i]['url']) link.innerHTML = existing_inputs[i]['url'];
                                else link.innerHTML = "<i>empty</i>";
                                link.href = existing_inputs[i]['url'];
				ximg.innerHTML = getImgIcon(link.href);
				table.setCellData( 0, i, 0, ximg );
				table.setCellData( 0, i, 1, link );
			}

                    div.appendChild( table.instance );
		}
        }

	function getImgIcon(elm){
		var typ = "html";
		var sdf = 0;
		var edf = 0;
		var identif1 = ".&file=";
		var identif2 = ".&related_doc=";
                if(elm.indexOf(identif1) > 0){
			//alert(elm);
			sdf = elm.indexOf(identif1)+identif1.length;
			edf = elm.indexOf("&", sdf);
			if(edf == -1) edf  = elm.length;
			//alert(  elm.substring(sdf, edf) );
			typ = getMimeType(elm.substring(sdf, edf));
		} else if(elm.indexOf(identif2) > 0){
			sdf = elm.indexOf(identif2)+identif2.length;
			edf = elm.indexOf("&", sdf);
			if(edf == -1) edf  = elm.length;
			typ = getMimeType(elm.substring(sdf, edf));
		} else typ = getMimeType(elm);
		return "<img src=\"templates/bch/images/"+typ+"16x16.png\"/>";
	}

	function getMimeType(glin){
		var lng = glin.length;
		var images = [".jpg", ".JPG", ".jpeg", ".JPEG", ".jpe", ".JPE", ".gif", ".GIF", ".png", ".PNG", ".tif", ".TIF", ".tiff", ".TIFF", ".psd", ".PSD", ".bmp", ".BMP", ".dib", ".DIB", ".ico", ".ICO", ".pic", ".PIC", ".pgm", ".PGM", ".ppm", ".PPM"];
		var pdfs = [".pdf", ".PDF"];
		var docs = [".doc", ".DOC"];
		var odts = [".odt", ".ODT"];
		var odss = [".ods", ".ODS", ".csv", ".CSV", ".123"];
		var odps = [".odp", ".ODP"];
		var txts = [".txt", ".TXT"];
		var ppts = [".ppt", ".PPT"];
		var xlss = [".xls", ".XLS", ".wks", ".WKS", ".csv", ".CSV"];
		var videos = [".3gp", ".3GP", ".3gp2", ".3GP2", ".3gpp", ".3GPP", ".asf", ".ASF", ".asx", ".ASX", ".avi", ".AVI", ".dat", ".DAT", ".gvi", ".GVI", ".ivf", ".IVF", ".ivs", ".IVS", ".m1v", "M1V", ".m21", ".M21", ".m2v", ".M2V", ".m4e", ".M4E", ".m4u", ".M4U", ".m4v", ".M4V", ".mjp", ".MJP", ".mod", ".MOD", ".moov", ".MOOV", ".mov", ".MOV", ".movie", ".MOVIE", ".mp21", ".MP21", ".mp4", ".MP4", ".mpg", ".MPG", ".mpeg", ".MPEG", ".ogm", ".OGM", ".qt", ".QT", ".rm", ".RM", ".rts", ".RTS", ".swf", ".SWF", ".tivo", ".TIVO", ".wmv", ".WMV", ".vid", ".VID"];
		var audios = [".aa3", ".AA3", ".aac", ".AAC", ".aif", ".AIF", ".aiff", ".AIFF", ".amr", ".AMR", ".aud", ".AUD", ".cda", ".CDA", ".dig", ".DIG", ".dvf", ".DVF", ".flac", ".FLAC", ".ics", ".ICS", ".iff", ".IFF", ".koz", ".KOZ", ".m3u", ".M3U", ".m4a", ".M4A", ".m4b", ".M4B", ".m4p", ".M4P", ".mid", ".MID", ".MIDI", ".midi", ".mp1", ".MP1", ".mp2", ".MP2", ".mp3", ".MP3", ".mpa", ".MPA", ".mpu", ".MPU", ".nrt", ".NRT", ".ogg", ".OGG", ".pls", ".PLS", ".ram", ".RAM", ".rmf", ".RMF", ".rng", ".RNG", ".snd", ".SND", ".swa", ".SWA", ".wav", ".WAV", ".wave", ".WAVE", ".wma", ".WMA"];
		var archives = [".ar", ".AR", ".tar", ".TAR", ".bz2", ".BZ2", ".gz", ".GZ", ".gzip", ".GZIP", ".lzma", ".LZMA", ".lzo", ".LZO", ".7z", ".7Z", ".s7z", ".S7Z", ".arc", ".ARC", ".alz", ".ALZ", ".arj", ".ARJ", ".cab", ".CAB", ".rar", ".RAR", ".tar.gz", ".TAR.GZ", ".tgz", ".TGZ", ".tar.bz2", ".TAR.BZ2", ".tbz2", ".TBZ2", ".tar.lzma", ".TAR.LZMA", ".tlz", ".TLZ", ".xar", ".XAR", ".zip", ".ZIP"];
		var cbhd = 0;
		for(cbdh = 0; cbdh < images.length; cbdh++) if(glin.lastIndexOf(images[cbdh])+images[cbdh].length==lng) return "image";
		for(cbdh = 0; cbdh < pdfs.length; cbdh++) if(glin.lastIndexOf(pdfs[cbdh])+pdfs[cbdh].length==lng) return "pdf";
		for(cbdh = 0; cbdh < docs.length; cbdh++) if(glin.lastIndexOf(docs[cbdh])+docs[cbdh].length==lng) return "word";
		for(cbdh = 0; cbdh < odts.length; cbdh++) if(glin.lastIndexOf(odts[cbdh])+odts[cbdh].length==lng) return "odt";
		for(cbdh = 0; cbdh < odss.length; cbdh++) if(glin.lastIndexOf(odps[cbdh])+odss[cbdh].length==lng) return "ods";
		for(cbdh = 0; cbdh < odps.length; cbdh++) if(glin.lastIndexOf(odps[cbdh])+odps[cbdh].length==lng) return "odp";
		for(cbdh = 0; cbdh < txts.length; cbdh++) if(glin.lastIndexOf(txts[cbdh])+txts[cbdh].length==lng) return "txts";
		for(cbdh = 0; cbdh < ppts.length; cbdh++) if(glin.lastIndexOf(ppts[cbdh])+ppts[cbdh].length==lng) return "ppt";
		for(cbdh = 0; cbdh < xlss.length; cbdh++) if(glin.lastIndexOf(ppts[cbdh])+xlss[cbdh].length==lng) return "excel";
		for(cbdh = 0; cbdh < videos.length; cbdh++) if(glin.lastIndexOf(videos[cbdh])+videos[cbdh].length==lng) return "video";
		for(cbdh = 0; cbdh < audios.length; cbdh++) if(glin.lastIndexOf(audios[cbdh])+audios[cbdh].length==lng) return "audio";
		for(cbdh = 0; cbdh < archives.length; cbdh++) if(glin.lastIndexOf(archives[cbdh])+archives[cbdh].length==lng) return "package";
		return "html";
	}

	function addRowForSingleSelect( select_div, input_name, input_value, input_label ){
// 		alert( "addRowForSingleSelect( select_div, input_name )" );
		var table = getChild( select_div, "select_input_table" );
		var hiddenInput = document.createElement( "input" );
		hiddenInput.type = "hidden";
		hiddenInput.name = input_name;
		hiddenInput.value = input_value;

		var span = document.createElement( "div" );
		span.innerHTML = "<div class=\"inside\">"+input_label+"</div>";
		span.appendChild( hiddenInput );
                span.style.borderWidth = 'thin';
                span.style.borderStyle = 'solid';
                span.style.borderColor = '#7193ad';
                span.style.backgroundColor = '#f2f9ff';
                span.style.width = '100%';
		if( table.tBodies[0].rows.length == 0 ){
			table.tBodies[0].insertRow(0);			
			table.tBodies[0].rows[0].insertCell(0);
		}
		if( table.tBodies[0].rows[0].cells[0].firstChild )
			table.tBodies[0].rows[0].cells[0].removeChild( table.tBodies[0].rows[0].cells[0].firstChild )
		table.tBodies[0].rows[0].cells[0].appendChild( span );
	
	}

	function addRowForMultipleSelect( select_div, input_name, input_value, input_label ){
// 		alert("addRowForMultipleSelect( select_div, input_name )");
		var table = getChild( select_div, "select_input_table" );	
		var row_length = table.tBodies[0].rows.length;
		table.tBodies[0].insertRow( row_length );
		table.tBodies[0].rows[row_length].insertCell(0);
		//table.tBodies[0].rows[row_length].insertCell(1);

		var hiddenInput = document.createElement( "input" );
		hiddenInput.type = "hidden";
		hiddenInput.name = input_name;
		hiddenInput.value = input_value;
		table.tBodies[0].rows[row_length].cells[0].appendChild( hiddenInput );

		var span = document.createElement( "div" );
		span.innerHTML = "<div style='display: table-cell'>"+input_label+"</div>";
		table.tBodies[0].rows[row_length].cells[0].appendChild( span );
		span.style.display = "table";
		span.style.width = "100%";

		var delete_link = document.createElement( "a" );
		delete_link.href = "javascript:void(0)";
		delete_link.innerHTML = "<img src='templates/bch/images/del.png' border='0'/>";
		var deasfb = document.createElement("div");
		deasfb.appendChild(delete_link);
		deasfb.style.float = "right";
		deasfb.style.width = "25px";
		deasfb.style.display = "table-cell";
		deasfb.style.textAlign = "right";
		deasfb.style.verticalAlign = "top";
		span.appendChild(deasfb);
		table.tBodies[0].rows[row_length].cells[0].style.padding = '10px';
		table.tBodies[0].rows[row_length].style.backgroundColor = '#f2f9ff';
		table.tBodies[0].rows[row_length].cells[0].style.borderWidth = 'thin';
		table.tBodies[0].rows[row_length].cells[0].style.borderStyle = 'solid';
		table.tBodies[0].rows[row_length].cells[0].style.borderColor = '#7193ad';/*
		table.tBodies[0].rows[row_length].cells[1].appendChild( delete_link );
		table.tBodies[0].rows[row_length].cells[1].style.textAlign = 'right';
		table.tBodies[0].rows[row_length].cells[0].style.padding = '10px';
		table.tBodies[0].rows[row_length].style.backgroundColor = '#f2f9ff';
		//table.tBodies[0].rows[row_length].cells[0].style.borderWidth = 'thin';
		//table.tBodies[0].rows[row_length].cells[0].style.borderStyle = 'solid';
		//table.tBodies[0].rows[row_length].cells[0].style.borderColor = '#7193ad';
		table.tBodies[0].rows[row_length].cells[0].style.borderRightStyle = 'none';
		//table.tBodies[0].rows[row_length].cells[1].style.borderWidth = 'thin';
		//table.tBodies[0].rows[row_length].cells[1].style.borderStyle = 'solid';
		//table.tBodies[0].rows[row_length].cells[1].style.borderColor = '#7193ad';
		table.tBodies[0].rows[row_length].cells[1].style.borderLeftStyle = 'none';
		table.tBodies[0].rows[row_length].cells[1].style.padding = '10px';*/
		delete_link.onclick = function(){
			//alert(this.parentNode.parentNode);
			//alert(select_div.firstChild.innerHTML);
			this.parentNode.parentNode.parentNode.parentNode.removeChild( this.parentNode.parentNode.parentNode );
		}
		row_length++;
	}	


            function generateSelectInput( select_div, input_name, form_type_string, form_type, param, isMultiple, opts ){
// 		alert( "select_div.style.top: " + select_div.id  + " " + select_div.offsetTop );
// 		document.getElementById( "titleBar" ).firstChild.innerHTML = form_type_string;
//                 alert( "opts: " + opts ) ;
                if( opts ){
                    document.getElementById( "cont" ).replaceChild( opts, document.getElementById( "cont" ).firstChild );
                    showMe();
                }else{
                    var url = "/system/bchform";
                    var reqParam = "function=getFormList";
                    reqParam += "&form_type=" + form_type;
                    reqParam += "&form_type_string=" + form_type_string;
                    getOptionsObj( select_div, input_name, url, reqParam, isMultiple, 'form_id', opts );
                }
            }

            function generateSelectControlledInput(select_div, input_name, param1, param2, param3, isMultiple, opts ){
                var url = "/system/jsservice";
                var reqParam = "task=com_jsservice";
				reqParam += "&function="+param1;
				reqParam += param3?"&code="+param3:"";
				reqParam += param2?"&id="+param2:"";

//                 if(params != null) reqParam += "&" + params;
                getOptionsObj( select_div, input_name, url, reqParam, isMultiple, 'code', opts );
            }

            function getOptionsObj( select_div, input_name, url, reqParam, isMultiple, id, opts ){

                var xmlHttp = getXmlHttp();

                xmlHttp.open( "POST",  url, true );
                xmlHttp.onreadystatechange =  function(){   
												var theLayer = document.getElementById( "theLayer" );
												theLayer.style.top = DL_GetElementTop( select_div )+select_div.offsetHeight;
												theLayer.style.left = DL_GetElementLeft( select_div );
												theLayer.style.display="block";
												if( document.getElementById( "cont" ).firstChild )
													document.getElementById( "cont" ).removeChild( document.getElementById( "cont" ).firstChild );
												positionFloat2( select_div );
												showMe();
												if( xmlHttp.readyState == 4 ){
													document.getElementById( "loading_msg" ).innerHTML = "";
													var response = xmlHttp.responseText;
													var options = JSON.parse( response );
													if( id=='form_id'){
														generateTabs( select_div, input_name, options, id, isMultiple, opts  );
													}else if( isMultiple && id=='code'){
														if( document.getElementById( "cont" ).firstChild )
															document.getElementById( "cont" ).replaceChild( getMultipleSelect( select_div, input_name, options, id, opts ), document.getElementById( "cont" ).firstChild );
														else
															document.getElementById( "cont" ).appendChild( getMultipleSelect( select_div, input_name, options, id, opts ) );
													}else {

														if( document.getElementById( "cont" ).firstChild )
															document.getElementById( "cont" ).replaceChild( getSingleSelect( select_div, input_name, options, id, opts ), document.getElementById( "cont" ).firstChild );
														else
															document.getElementById( "cont" ).appendChild( getSingleSelect( select_div, input_name, options, id, opts ) );
													}
												}else if( xmlHttp.readyState == 1 ){
													document.getElementById( "loading_msg" ).innerHTML = "<br><br>&nbsp; &nbsp; &nbsp; This may take a while.<br><br>&nbsp; &nbsp; &nbsp; Loading...";
												}else{
													document.getElementById( "loading_msg" ).innerHTML += ".";
												}
											}
                xmlHttp.setRequestHeader( "Content-Type", "application/x-www-form-urlencoded" );
                xmlHttp.send( reqParam );
            }

	function getSingleSelect( select_div, input_name, options, id, select ){

		var rows=options.length, cols=1  ;

		if( options.length > 20 ){
			rows = parseInt(options.length/4);
			cols = 4
		}
		var select_table = createNewTable( "test", rows+1, cols*2, true, false );

		var input_table = createNewTable( "input_table", 0, 2, true, false );

		var i;

		if( id == 'form_id' ){
			select_table = createNewTable( "test", rows+1, cols*2, true, true );
			for( var c=0; c<cols; c++ ){
				for( i=0; i < rows && (c*rows+i)<options.length; i++ ){
					var span = document.createElement( "span" );
					span.innerHTML = "<input type='radio' name='" + input_name + "_select' value='" + options[c*rows+i][id] +"' id='" + options[c*rows+i][id] + "'/>";
					select_table.setCellData( 0, i, c*2, span );

					var label = document.createElement( "label" );
					label.htmlFor = ""+options[c*rows+i][id];
					label.innerHTML = createSelectElement(options[c*rows+i]);//options[c*rows+i]['title_en']&&options[c*rows+i]['title_en']!=""?decodeURI(options[c*rows+i]['title_en']):decodeURI(options[c*rows+i]['sub_label']);
					select_table.setCellData( 0, i, c*2+1, label );
				}
			}
		}else if( id == 'code' ){
			select_table = createNewTable( "test", 0, 0, true, true );
			select_table.instance.id = "table_0";
			var c = generateInput( select_table.instance, 0, options, input_name, id, false )
		}

		var addButton = document.createElement( "input" );
		addButton.type = "button";
		addButton.value = "Select";
		addButton.onclick = function(){
			var input_arr = document.getElementsByName( input_name + "_select" );
			for( var j=0; j < input_arr.length; j++ )
				if( input_arr[j].checked ){	
					addRowForSingleSelect( select_div, input_name, input_arr[j].value, input_arr[j].parentNode.parentNode.nextSibling.firstChild.innerHTML );
					break;
				}
				hideMe();	
			}	

		var buttons_table = document.createElement( "table" );
		buttons_table.insertRow(0);
		buttons_table.rows[0].insertCell(0);
		buttons_table.rows[0].insertCell(1);
		buttons_table.rows[0].insertCell(2);

		buttons_table.rows[0].cells[2].appendChild( addButton );
                document.getElementById('xbuxtxcont').innerHTML = '';
                document.getElementById('xbuxtxcont').appendChild(buttons_table);
		return select_table.instance;
	}

	function generateInput( table, count, arr, input_name, id, isMultiple ){
		var i = 0;
		var x = 0;
		var ret = false;
		var current_level = parseInt( ""+arr[count]['level'] );
		var input_type = "radio";
		if( isMultiple ) input_type="checkbox"
		while( arr[count] ){
			table.tBodies[0].insertRow(i);
			table.tBodies[0].rows[i].insertCell(0);
			table.tBodies[0].rows[i].insertCell(1);
			table.tBodies[0].rows[i].cells[0].innerHTML="";
			table.tBodies[0].rows[i].cells[0].style.width = "1.5em";
			table.width = '100%';
			var span = document.createElement( "span" );

			span.innerHTML = "<input type='"+ input_type +"' name='" + input_name + "_select' value='" + arr[count][id] +"' id='" + arr[count][id] + "'/>";
	
			table.tBodies[0].rows[i].cells[0].appendChild( span );
			var label = document.createElement( "label" );
			setAttribute( "for", ""+arr[count][id], label );
			label.innerHTML = arr[count]['title_en']&&arr[count]['title_en']!=""?decodeURI(arr[count]['title_en'].replace( '[i]', "" ).replace( '[/i]', "" )):arr[count]['sub_label'];
			table.tBodies[0].rows[i].cells[1].appendChild( label );


			if( arr[count+1] ){
				if( parseInt( arr[count+1]['level'] ) - current_level < 0 ){
					return count;
				}
				if( (parseInt( arr[count+1]['level'] ) - parseInt( arr[count]['level'] )) == 1 ){
					table.tBodies[0].insertRow(++i);
					table.tBodies[0].rows[i].insertCell(0);
					table.tBodies[0].rows[i].insertCell(1);
					table.tBodies[0].rows[i].cells[0].innerHTML="";

					var t  = document.createElement( "table" );
					t.id = "table_"+arr[count+1]['level'];
					t.appendChild( document.createElement( "tbody" ) );
					table.tBodies[0].rows[i].cells[1].appendChild( t );
					count = generateInput( t, count+1, arr, input_name, id, isMultiple );
				}
				if( arr[count+1] && parseInt( arr[count+1]['level'] ) - current_level < 0 ){
					return count;
				}
			}
			count++;
			i++;
		}
		return count;
	}

	function generateTabs( select_div, input_name, options, id, isMultiple, select ){

      	var main_table = createNewTable( "", 3, 2, false, false );
		var ul = document.createElement( "ul" );
		ul.id = "db_tabmenu";
		ul.name = "db_tabmenu";
	
		var li1 = document.createElement( "li" );
		var li2 = document.createElement( "li" );
	
		var db_link            = document.createElement( "a" );
		db_link.innerHTML      = "BCH Phils Records";
		db_link.href           = "javascript:void(0)";
	
	
		var cp_link       = document.createElement( "a" );
		cp_link.innerHTML = "Central Portal Records";
		cp_link.href      = "javascript:void(0)";
		setAttribute( "class", "active", cp_link ); 
	
		db_link.onclick        = function(){
			setAttribute( "class", "", cp_link );
			setAttribute( "class", "active", db_link );
			this.blur();
			if( isMultiple ){
				main_table.instance.tBodies[0].rows[1].cells[0].replaceChild( getMultipleSelect( select_div, input_name, options[1], id, select ), getChild( main_table.instance.tBodies[0].rows[1].cells[0], "test" ) );
			}else{
				main_table.instance.tBodies[0].rows[1].cells[0].replaceChild( getSingleSelect( select_div, input_name, options[1], id, select ), getChild( main_table.instance.tBodies[0].rows[1].cells[0], "test" ) );
			}

			}
	
		cp_link.onclick   = function(){ 		
			setAttribute( "class", "", db_link );
			setAttribute( "class", "active", cp_link );
			this.blur();
			if( isMultiple ){
				main_table.instance.tBodies[0].rows[1].cells[0].replaceChild( getMultipleSelect( select_div, input_name, options[0], id, select ), getChild( main_table.instance.tBodies[0].rows[1].cells[0], "test" ) );
			}else{
				main_table.instance.tBodies[0].rows[1].cells[0].replaceChild( getSingleSelect( select_div, input_name, options[0], id, select ), getChild( main_table.instance.tBodies[0].rows[1].cells[0], "test" ) );
			}
			
			}

			li1.appendChild( db_link );
			li2.appendChild( cp_link );

		if( options[0].length > 0){
			ul.appendChild(li2);
		}

		if( options[1].length > 0 ){
			ul.appendChild(li1);
		}

		select_div.appendChild( ul );

		main_table.setCellData( 0, 1, 0, ul );	

		if( isMultiple ){
			main_table.appendCellData( "tbody", 0, 1, 0, getMultipleSelect( select_div, input_name, options[0], id, select ) );
		}else{
			main_table.appendCellData( "tbody", 0, 1, 0, getSingleSelect( select_div, input_name, options[0], id, select ) );
		}


		if( document.getElementById( "cont" ).firstChild )
			document.getElementById( "cont" ).replaceChild( main_table.instance, document.getElementById( "cont" ).firstChild );
		else
			document.getElementById( "cont" ).appendChild( main_table.instance );
	}

	function getMultipleSelect( select_div, input_name, options, id, select ){

		var rows=options.length, cols=1  ;

		if( options.length > 20 ){
			rows = parseInt( options.length/4 );
			cols = 4
		}
		var select_table = undefined;

		var i=0;
		if( id == 'form_id' ){
			select_table = createNewTable( "test", rows+1, cols*2, true, true );
			for( var c=0; c<cols; c++ ){
				for( i=0; i < rows && (c*rows+i)<options.length; i++ ){
					var span = document.createElement( "span" );
					span.innerHTML = "<input type='checkbox' name='" + input_name + "_select' value='" + options[c*rows+i][id] +"' id='" + options[c*rows+i][id] + "'/>";
	
					select_table.setCellData( 0, i, c*2, span );
                                        select_table.instance.tBodies[0].rows[i].cells[c*2].setAttribute("valign", "top");
					var label = document.createElement( "label" );
					setAttribute( "for", ""+options[c*rows+i][id], label );
					label.innerHTML = ""+createSelectElement(options[c*rows+i]);
                                        select_table.setCellData( 0, i, c*2+1, label );
					select_table.setCellData( 0, i, c*2+1, label );
                                        select_table.instance.tBodies[0].rows[i].cells[c*2+1].setAttribute("valign", "top");
				}
			}
		}else if( id == 'code' ){
			select_table = createNewTable( "test", 0, 0, true, true );
			select_table.instance.id = "table_0";
			var c = generateInput( select_table.instance, 0, options, input_name, id, true )
		}

		var checkAll = document.createElement( "input" );
		checkAll.type = "button";
		checkAll.value = "Select all";
		var arr = document.getElementsByName( input_name+"_select" );		
		checkAll.onclick = function(){
			for( var j=0; j < arr.length; j++ )
				arr[j].checked = true;
		}

		var deselectAll = document.createElement( "input" );
		deselectAll.type = "button";
		deselectAll.value = "Clear";
		var arr = document.getElementsByName( input_name+"_select" );		
		deselectAll.onclick = function(){
			for( var j=0; j < arr.length; j++ )
				arr[j].checked = false;
		}

		var addButton = document.createElement( "input" );
		addButton.type = "button";
		addButton.value = "Add";
		addButton.onclick = function(){
			var input_arr = document.getElementsByName( input_name+"_select" );
			var table = getChild( select_div, "select_input_table" );
			var row_length = table.tBodies[0].rows.length;
			for( var j=0; j < input_arr.length; j++ ){
				if( input_arr[j].checked ){
					var exists = false;
					for( var x=0; x<table.tBodies[0].rows.length; x++ ){
						if( input_arr[j].value == table.tBodies[0].rows[x].cells[0].firstChild.value ){
							exists = true;
							break;
						}
					}
					if( !exists ){
						addRowForMultipleSelect( select_div, input_name, input_arr[j].value, input_arr[j].parentNode.parentNode.nextSibling.firstChild.innerHTML );
					}else{
						
					}


				}
			}
			hideMe();
				
		}

		var buttons_table = document.createElement( "table" );
		buttons_table.insertRow(0);
		buttons_table.rows[0].insertCell(0);
		buttons_table.rows[0].insertCell(1);
		buttons_table.rows[0].insertCell(2);

		buttons_table.rows[0].cells[0].appendChild( checkAll );
		buttons_table.rows[0].cells[1].appendChild( deselectAll );
		buttons_table.rows[0].cells[2].appendChild( addButton );

                document.getElementById('xbuxtxcont').innerHTML = '';
                document.getElementById('xbuxtxcont').appendChild(buttons_table);

		return select_table.instance;



	}

            function getChild( element, id ){
                if( !element )
                    return;
                for(var i=0; i<element.childNodes.length; i++ ){
                    if( element.childNodes[i].id == id )
                        return element.childNodes[i];
                }
                return undefined;
            }

            function getResponse( xmlHttp ){
                if( xmlHttp.readyState == 4 ){
                    var response = xmlHttp.responseText;
                    return JSON.parse( response );
                }
            }

         function insertFormUpdates(){
            var xmlHttp1 = getXmlHttp();
            xmlHttp1.open( "POST",  "/system/bchform", true );
            xmlHttp1.onreadystatechange =  function(){
                if(xmlHttp1.readyState == 4){
                    var divf = document.createElement('div');
                    if(xmlHttp1.status == 200){
                        var resp = xmlHttp1.responseText;
                        if(resp && resp.length > 0){
                            var row = JSON.parse( resp );
                            if(row){
                                var table = createNewTable("", row.length, 2, false, false);
                                for(i = 0; i < row.length; i++){
                                    var date = row[i]['date'];
                                    var list = row[i]['list'];
                                    table.setCellData(0, i, 0, date);
                                    var cnt = 0;
                                    var grr = "";
                                    for(cnt = 0; cnt < list.length; cnt++){
                                        if(list[cnt]['type'] == 1) grr += "Updated ";
                                        else if(list[cnt]['type'] == 0) grr += "Added ";
                                        grr += list[cnt]['number'] + " ";
                                        grr += getFormName(list[cnt]['form_type']);
                                        grr += " form";
                                        if(list[cnt]['number'] > 1) grr += "s";
                                        grr += ", ";
                                    }
                                    table.instance.tBodies[0].rows[i].cells[0].style.verticalAlign = "top";
                                    table.instance.tBodies[0].rows[i].cells[1].style.verticalAlign = "top";
                                    table.setCellData(0, i, 1, grr.substring(0, grr.length-2));
                                }
                                divf.appendChild(table.instance);
                                document.getElementById('xdfiks').innerHTML = "Updates<hr><div>"+divf.innerHTML+"</div><br>";
                                if(document.getElementById('xdfiks').nodeName.toLowerCase() == 'div') document.getElementById('xdfiks').style.backgroundColor = '#FBF8E6';
                            }
                        }
                    }
                }
            }
            xmlHttp1.setRequestHeader( "Content-Type", "application/x-www-form-urlencoded" );
            xmlHttp1.send( "function=getFormUpdates" );
         }
         function insertNewsUpdates(){
            var xmlHttp1 = getXmlHttp();
            xmlHttp1.open( "POST",  "/system/bchform", true );
            xmlHttp1.onreadystatechange =  function(){
                if(xmlHttp1.readyState == 4){
                    var divf = document.createElement('div');
                    if(xmlHttp1.status == 200){
                        var resp = xmlHttp1.responseText;
                        if(resp && resp.length > 0){
                            var row = JSON.parse( resp );
                            if(row){
                                var table = createNewTable("", row.length, 2, false, false);
                                for(i = 0; i < row.length; i++){
                                    var date = row[i]['date'];
                                    var list = row[i]['list'];
                                    table.setCellData(0, i, 0, date);
                                    var cnt = 0;
                                    var grr = "";
                                    for(cnt = 0; cnt < list.length; cnt++){
                                        if(list[cnt]['type'] == 1) grr += "Updated ";
                                        else if(list[cnt]['type'] == 0) grr += "Added ";
                                        grr += list[cnt]['number'] + " ";
                                        grr += getFormName(list[cnt]['form_type']);
                                        grr += " form";
                                        if(list[cnt]['number'] > 1) grr += "s";
                                        grr += ", ";
                                    }
                                    table.instance.tBodies[0].rows[i].cells[0].style.verticalAlign = "top";
                                    table.instance.tBodies[0].rows[i].cells[1].style.verticalAlign = "top";
                                    table.setCellData(0, i, 1, grr.substring(0, grr.length-2));
                                }
                                divf.appendChild(table.instance);
                                document.getElementById('xdfikd').innerHTML = "Latest News<hr><div>"+divf.innerHTML+"</div><br>";
                                if(document.getElementById('xdfikd').nodeName.toLowerCase() == 'div') document.getElementById('xdfikd').style.backgroundColor = '#FBF8E6';
                            }
                        }
                    }
                }
            }
            xmlHttp1.setRequestHeader( "Content-Type", "application/x-www-form-urlencoded" );
            xmlHttp1.send( "function=getNewsUpdates" );
         }

        function loadOnlineUsers(div_element){
            var xmlHttp1 = getXmlHttp();
            xmlHttp1.open( "POST",  "/system/com_login_login", true );
            xmlHttp1.onreadystatechange =  function(){
                if(xmlHttp1.readyState == 4){
                    var rows = JSON.parse(xmlHttp1.responseText);
                    if(rows){
                        var table = createNewTable("", rows.length+1, 2, false, false);
                        var head1 = document.createElement("b");
                        var head2 = document.createElement("b");
                        head1.innerHTML = "Username";
                        head2.innerHTML = "Last Access";
                        table.setCellData(0, 0, 0, head1);
                        table.setCellData(0, 0, 1, head2);
			for(var m = 0; m < rows.length; m++){
                            table.setCellData(0, m+1, 0, rows[m]['user_name']);
                            table.setCellData(0, m+1, 1, rows[m]['user_lastaccess']);
			}
                    }
                    div_element.innerHTML = "";
                    div_element.appendChild(table.instance);
                    table.width = "100%";
                }
            }
            xmlHttp1.setRequestHeader( "Content-Type", "application/x-www-form-urlencoded" );
            xmlHttp1.send( "task=com_login&sessionhash=on" );
        }
	function viewHistory(div_element, form_id){
            var _span = document.createElement("div");
            var _link1 = document.createElement("a");
            _link1.href = "javascript:void(0)";
            _link1.innerHTML = "<small>View history</small>";
            _link1.onclick = function(){ getHistory(div_element, form_id); }
            div_element.innerHTML = "";
            div_element.appendChild(_link1);
            _link1.onclick = function(){
                    var theLayer = document.getElementById( "theLayer" );
                    theLayer.style.top = DL_GetElementTop( div_element )+div_element.offsetHeight;
                    theLayer.style.left = DL_GetElementLeft( div_element );
                    theLayer.style.display="block";
                    document.getElementById( "cont" ).innerHTML = "";
                    _span.innerHTML = "<div class=\"inside\"/>";
                    getHistory(_span.firstChild, form_id);
                    document.getElementById( "cont" ).appendChild( _span );
                    positionFloat2( div_element );
                    theLayer.style.left = (theLayer.offsetLeft - theLayer.offsetWidth + div_element.offsetWidth) + 'px';
                    showMe();
            }
	}
	function getHistory(div_element, form_id){
            var xmlHttp1 = getXmlHttp();
            xmlHttp1.open( "POST",  "/system/bchform", true );
            xmlHttp1.onreadystatechange =  function(){
                if(xmlHttp1.readyState == 4){
                    var rows = JSON.parse(xmlHttp1.responseText);
                    if(rows && rows.length > 0){
                        div_element.innerHTML = "";
                        var table = createNewTable("", rows.length+1, 2, false, false);
                        var head1 = document.createElement("b");
                        var head2 = document.createElement("b");
                        head1.innerHTML = "Edited/Added by";
                        head2.innerHTML = "Date";
                        table.setCellData(0, 0, 0, head1);
                        table.setCellData(0, 0, 1, head2);
			for(var m = 0; m < rows.length; m++){
                            table.setCellData(0, m+1, 0, rows[m]['form_user']);
                            table.setCellData(0, m+1, 1, rows[m]['form_modified']);
			}
                        table.instance.style.width = "100%";
                        div_element.appendChild(table.instance);
                    } else div_element.innerHTML = "<br><p align=\"center\">Requested information is currently unavailable.</p>";
                } else if(xmlHttp1.readyState == 1){
                    div_element.innerHTML = "<p>Loading...</p>";
                }
            }
            xmlHttp1.setRequestHeader( "Content-Type", "application/x-www-form-urlencoded" );
            xmlHttp1.send( "function=viewHistory&form_id="+form_id );
        }



/*
Copyright (c) 2005 JSON.org

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The Software shall be used for Good, not Evil.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
*/

Array.prototype.______array = '______array';

var JSON = {
    org: 'http://www.JSON.org',
    copyright: '(c)2005 JSON.org',
    license: 'http://www.crockford.com/JSON/license.html',

    stringify: function (arg) {
        var c, i, l, s = '', v;

        switch (typeof arg) {
        case 'object':
            if (arg) {
                if (arg.______array == '______array') {
                    for (i = 0; i < arg.length; ++i) {
                        v = this.stringify(arg[i]);
                        if (s) {
                            s += ',';
                        }
                        s += v;
                    }
                    return '[' + s + ']';
                } else if (typeof arg.toString != 'undefined') {
                    var z=0;
                    for (i in arg) {
                        v = arg[i];
                        if (typeof v != 'undefined' && typeof v != 'function') {
                            v = this.stringify(v);
                            if (s) {
                                s += ',';
                            }
                            s += this.stringify(i) + ':' + v;
                        }
                    }
                    return '{' + s + '}';
                }
            }
            return 'null';
        case 'number':
            return isFinite(arg) ? String(arg) : 'null';
        case 'string':
            l = arg.length;
            s = '"';
            for (i = 0; i < l; i += 1) {
                c = arg.charAt(i);
                if (c >= ' ') {
                    if (c == '\\' || c == '"') {
                        s += '\\';
                    }
                    s += c;
                } else {
                    switch (c) {
                        case '\b':
                            s += '\\b';
                            break;
                        case '\f':
                            s += '\\f';
                            break;
                        case '\n':
                            s += '\\n';
                            break;
                        case '\r':
                            s += '\\r';
                            break;
                        case '\t':
                            s += '\\t';
                            break;
                        default:
                            c = c.charCodeAt();
                            s += '\\u00' + Math.floor(c / 16).toString(16) +
                                (c % 16).toString(16);
                    }
                }
            }
            return s + '"';
        case 'boolean':
            return String(arg);
        default:
            return 'null';
        }
    },
    parse: function (text) {
        var at = 0;
        var ch = ' ';

        function error(m) {
            throw {
                name: 'JSONError',
                message: m,
                at: at - 1,
                text: text
            };
        }

        function next() {
            ch = text.charAt(at);
            at += 1;
            return ch;
        }

        function white() {
            while (ch != '' && ch <= ' ') {
                next();
            }
        }

        function str() {
            var i, s = '', t, u;

            if (ch == '"') {
outer:
                while (next()) {
                    if (ch == '"') {
                        next();
                        return s;
                    } else if (ch == '\\') {
                        switch (next()) {
                        case 'b':
                            s += '\b';
                            break;
                        case 'f':
                            s += '\f';
                            break;
                        case 'n':
                            s += '\n';
                            break;
                        case 'r':
                            s += '\r';
                            break;
                        case 't':
                            s += '\t';
                            break;
                        case 'u':
                            u = 0;
                            for (i = 0; i < 4; i += 1) {
                                t = parseInt(next(), 16);
                                if (!isFinite(t)) {
                                    break outer;
                                }
                                u = u * 16 + t;
                            }
                            s += String.fromCharCode(u);
                            break;
                        default:
                            s += ch;
                        }
                    } else {
                        s += ch;
                    }
                }
            }
            error("Bad string");
        }

        function arr() {
            var a = [];

            if (ch == '[') {
                next();
                white();
                if (ch == ']') {
                    next();
                    return a;
                }
                while (ch) {
                    a.push(val());
                    white();
                    if (ch == ']') {
                        next();
                        return a;
                    } else if (ch != ',') {
                        break;
                    }
                    next();
                    white();
                }
            }
            error("Bad array");
        }

        function obj() {
            var k, o = {};

            if (ch == '{') {
                next();
                white();
                if (ch == '}') {
                    next();
                    return o;
                }
                while (ch) {
                    k = str();
                    white();
                    if (ch != ':') {
                        break;
                    }
                    next();
                    o[k] = val();
                    white();
                    if (ch == '}') {
                        next();
                        return o;
                    } else if (ch != ',') {
                        break;
                    }
                    next();
                    white();
                }
            }
            error("Bad object");
        }

        function num() {
            var n = '', v;
            if (ch == '-') {
                n = '-';
                next();
            }
            while (ch >= '0' && ch <= '9') {
                n += ch;
                next();
            }
            if (ch == '.') {
                n += '.';
                while (next() && ch >= '0' && ch <= '9') {
                    n += ch;
                }
            }
            if (ch == 'e' || ch == 'E') {
                n += 'e';
                next();
                if (ch == '-' || ch == '+') {
                    n += ch;
                    next();
                }
                while (ch >= '0' && ch <= '9') {
                    n += ch;
                    next();
                }
            }
            v = +n;
            if (!isFinite(v)) {
                error("Bad number");
            } else {
                return v;
            }
        }

        function word() {
            switch (ch) {
                case 't':
                    if (next() == 'r' && next() == 'u' && next() == 'e') {
                        next();
                        return true;
                    }
                    break;
                case 'f':
                    if (next() == 'a' && next() == 'l' && next() == 's' &&
                            next() == 'e') {
                        next();
                        return false;
                    }
                    break;
                case 'n':
                    if (next() == 'u' && next() == 'l' && next() == 'l') {
                        next();
                        return null;
                    }
                    break;
            }
            error("Syntax error");
        }

        function val() {
            white();
            switch (ch) {
                case '{':
                    return obj();
                case '[':
                    return arr();
                case '"':
                    return str();
                case '-':
                    return num();
                default:
                    return ch >= '0' && ch <= '9' ? num() : word();
            }
        }

        return val();
    }
};

function getXmlHttp(){
	var XmlHttp = false;
	/*@cc_on @*/
	/*@if (@_jscript_version >= 5)
	try {
		XmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
	} catch (e) {
		try {
			XmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
		} catch (e2) {
			XmlHttp = false;
		}
	}
	@end @*/
	
	if (!XmlHttp && typeof XMLHttpRequest != 'undefined') {
		XmlHttp = new XMLHttpRequest();
	}
	return XmlHttp;
}

// Script Source: CodeLifter.com
// Copyright 2003
// Do not remove this header


var contact_options;
var modified_organism_options;
var subject_area_options;
var subject_lmos_options;
var techniques_used_options;
var modified_traits_options;
var commercial_status_options;
var taxonomic_name_options;
var common_names_options;
var country_options;
var document_type_options;
var subject_area_options;
var subject_lmo_options;
var authority_options;
var lmo_options;
var decision_options;
var risk_assessments_options;
var nationality_options;
var donor_organism_options;
var unique_identification_options;
var parental_organism_options;
var gene_inserts_options;
var approved_use_options;
var expertise_1_options;
var expertise_2_options;
var expertise_3_options;
var expertise_4_options;
var expertise_5_options;
var expertise_6_options;
var expertise_7_options;
var expertise_8_options;
var language_options;
var gender_options;
var organization_type_options;
var organization_function_options;
var linked_organization_options;
var institution_options;
var theme_options;
var audience_options;
var course_format_options;
var certification_types_options;
var training_types_options;
var resource_types_options;
var media_types_options;
var institution_type_options;
var themes_options;
var opportunity_type_options;
var status_options;
var regions_options;
var addressed_element_options;
var experts_options;
var implementation_options;
var funding_type_options;
var national_focal_point_category;

isIE=document.all;
isNN=!document.all&&document.getElementById;
isN4=document.layers;
isHot=false;
function ddInit(e){
  topDog=isIE ? "BODY" : "HTML";
  whichDog=isIE ? document.all.theLayer : document.getElementById("theLayer");  
  hotDog=isIE ? event.srcElement : e.target;  
  while (hotDog.id!="titleBar"&&hotDog.tagName!=topDog){
    hotDog=isIE ? hotDog.parentElement : hotDog.parentNode;
  }
  if (hotDog.id=="titleBar"){
    offsetx=isIE ? event.clientX : e.clientX;
    offsety=isIE ? event.clientY : e.clientY;
    nowX=parseInt(whichDog.style.left);
    nowY=parseInt(whichDog.style.top);    
    ddEnabled=true;
    document.onmousemove=dd;
  }
}

function dd(e){
  if (!ddEnabled) return;
  whichDog.style.left=isIE ? nowX+event.clientX-offsetx : nowX+e.clientX-offsetx; 
  whichDog.style.top=isIE ? nowY+event.clientY-offsety : nowY+e.clientY-offsety;
  return false;  
}

function ddN4(whatDog){

  if (!isN4) return;
  //alert( 'dfasdfadf' );
  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){
	whichDog.style.visibility="hidden";
    whichDog.style.display="none";
  }else if (isN4){
	document.theLayer.visibility="hide";
	document.theLayer.display="none";
  } 
	
}

function showMe(){
  if (isIE||isNN) whichDog.style.visibility="visible";
  else if (isN4) document.theLayer.visibility="show";
}

document.onmousedown=ddInit;
document.onmouseup=Function("ddEnabled=false");



//******* Dynamic HTML Library ********
//http://www.webreference.com/dhtml/
function DL_GetElementLeft(eElement)
{
    if (!eElement && this)                       // if argument is invalid
    {                                            // (not specified, is null or is 0)
        eElement = this;                         // and function is a method
    }                                            // identify the element as the method owner
   
    var nLeftPos = eElement.offsetLeft ;          // initialize var to store calculations
    var eParElement = eElement.offsetParent;     // identify first offset parent element 
    while (eParElement != null)
    {                                            // move up through element hierarchy
        nLeftPos += eParElement.offsetLeft;      // appending left offset of each parent
        eParElement = eParElement.offsetParent;  // until no more offset parents exist
    }
    return nLeftPos;                             // return the number calculated
}


function DL_GetElementTop(eElement)
{
    if (!eElement && this)
    {
        eElement = this;
    }

    var nTopPos = eElement.offsetTop;
    var eParElement = eElement.offsetParent ;
    while (eParElement != null)
    {
        nTopPos += eParElement.offsetTop;
        eParElement = eParElement.offsetParent;
    }
    return nTopPos;
}
//**************************************

   function setAttribute( name, value, element ){
      var size = element.attributes.length;
      var attribute_index = -1;
      for ( var i = 0; i < size; i++ ){
        if( element.attributes[i].name.toLowerCase() == name.toLowerCase() ){
          attribute_index = i;
          break;
        }
      }
      if ( attribute_index > -1 ){
         element.attributes[ attribute_index ].value = value;
      }else{
         element.setAttribute( name, value );

      }   
   }



 