// JScript File


var delimiter = ",";

function OpenHelpPage()
{
    alert('control=' + event.SrcElement + '#keycode=' + event.keycode + '#type=' + event.type);
}

function KeyHandler111(obj)
{    
	var keycode=event.keyCode;
	//alert('keycode=' + keycode);
	if (keycode == "112")
	{
	    alert('keycode=' + keycode);
	    window.event.keyCode = 505;
		return false;
	}
}

function KeyHandler() 
{
    //alert('ok');
    eventSrcID = (event.srcElement)?event.srcElement.id:'undefined';
    eventtype = event.type;
    eventkeycode = event.keyCode;
    status=eventSrcID+' has received a '+eventtype+' with keycode=' + eventkeycode;
    if(eventkeycode==112)
    {
        //alert(status);
        var searchStr = "Content1_";
        var pos = eventSrcID.indexOf(searchStr);
        if(pos != -1)
        {
            pos = pos + searchStr.length;
            eventSrcID = eventSrcID.substr(pos);
        }
        
        //alert('Provide Help for =' + eventSrcID);
        var helpUrl = "App_Help/aexhelp.html";
        helpUrl = helpUrl + "#" + eventSrcID;
        //helpUrl = "http://en.wikipedia.org/wiki/W3Schools#W3Schools_Tutorials";
        window.open(helpUrl, "AexHelp", "status=no, menubar=0,toolbar=no,scrollbars=yes,resizable=1",true);
        event.returnValue = false;
    }    
}

// Trim function
function trim(trim_input)
{
	var trim_str = new String(trim_input);
	for(var i = 0; trim_str.charAt(i) == " " && i < trim_str.length ; i ++);
	newstr = new String(trim_str.substr( i, trim_str.length - i + 1 )) ;
	for(var i = newstr.length - 1; newstr.charAt( i ) == " " && i >= 0 ; i --);
	trim_return = newstr.substr(0, i + 1) ;
	return(trim_return);
}

// Finds the control when the control names are autogenerated
function findControl(formObject, controlString)
{
    if(formObject==undefined)
    {
        // when content tags are used, the form names are autogenerated as "aspnetForm"
        formObject = document.aspnetForm;
        //alert('form obj reset');
    }
    //alert('formObject=' + formObject + "#" + formObject.name + "#" + formObject.elements[0].name);
    for(var i=0; i <formObject.elements.length;i++)
    {
	    var control = formObject.elements[i];
	    //alert(i +') controlID=' + control.id + "#" + control.name);
	    if(control.id != "")
	    {
	        var controlName = control.name;	        
	        if (controlName != "undefined" && controlName.indexOf(controlString) >= 0)
	        {
	            //alert('control=' + control);
		        return control;
	        }
	    }	        
    }
}

// Select All/Unselect All button operation
function makeSelection(searchString) 
{
    var selected = true;
    //var searchString = "cb_programid";
    
    var formName = "form1";
    var buttonName = "btn_toggle_select";
    var alternateFormName = "aspnetForm";
    
    var formObj, buttonControl;
    
    formObj = eval("document." + formName);    
    //alert('formObj=' + formObj);
    if(formObj==undefined)
    {
        formObj = eval("document." + alternateFormName);                
        buttonControl = eval("document." + alternateFormName + "." + buttonName);
    }
    else
    {
        buttonControl = eval("document." + formName + "." + buttonName);
    }
    //alert('formObj=' + formObj + "#" + formObj.name + "#" + searchString);    
    //alert('buttonControl=' + buttonControl);
    if(buttonControl.src.indexOf("App_Images/select_all.gif") != -1)
    {        
        buttonControl.src = "App_Images/unselect.gif";
    }
    else
    {
        selected = false;
        buttonControl.src = "App_Images/select_all.gif";
    }
	for(var i=0; i <formObj.elements.length;i++)
	{
	    var control = formObj.elements[i];
	    //alert('control=' + control.name);
	    if(control.id != "")
	    {
		    var controlName = control.name;
		    if (controlName.indexOf(searchString) >= 0)
		    {
                control.checked = selected;
		    }
		}
	}	
}

// Add all selected items from the pickers / child windows
// i.e., update the hidden ID field with the delimited ObjectIds
// and update the scrollable listbox with the selected object names
function AddObjectsToControl(formName, textboxControlName, listboxControlName, ObjectIds, ObjectNames)
{
    var alternateFormName = "aspnetForm";
    
    var formObj, textboxControl, listboxControl;
    
    formObj = eval("document." + formName);    
    //alert('formObj=' + formObj);
    if(formObj==undefined)
    {
        formObj = eval("document." + alternateFormName);
    }
    //alert('formObj=' + formObj);
    textboxControl = findControl(formObj, textboxControlName);
    listboxControl = findControl(formObj, listboxControlName);
    //alert('textboxControl=' + textboxControl + "#" + textboxControl.name + "#" + textboxControl.value);
    //alert('textboxControl=' + listboxControl + "#" + listboxControl.name + "#");
    AddItemsToListBoxTextBox(listboxControl, textboxControl, ObjectIds, ObjectNames);
}

// local method 
function AddItemsToListBoxTextBox(ListBoxControl, TextBoxControl, ObjectIds, ObjectNames)
{
    ObjectIds = ObjectIds + "";
    ObjectNames = ObjectNames + "";
    //alert('is it here=' + ObjectIds + "#" + ObjectIds.length);
    var ObjectList = TextBoxControl.value;
    ObjectList = trim(ObjectList);
	while (ObjectIds.length > 0)
	{
		var idtoken, nametoken;
		var pos = ObjectIds.indexOf(delimiter);
		if(pos > -1)
		{
			idtoken = ObjectIds.substring(0, pos);
			nametoken = ObjectNames.substring(0, ObjectNames.indexOf(delimiter));
			
			ObjectIds = ObjectIds.substr(pos + 1);			
			ObjectNames = ObjectNames.substr((ObjectNames.indexOf(delimiter)) + 1);
		}
		else
		{
			idtoken = ObjectIds;
			nametoken = ObjectNames;
			ObjectIds = "";
			ObjectNames = "";
		}
		//alert('before=' + token);
		idtoken = trim(idtoken);
		nametoken = trim(nametoken);
		//alert('after=' + token);

		var listboxLen = ListBoxControl.options.length;
		//alert('listboxLen=' + listboxLen);
		var found = false;
		for(var i=listboxLen-1; i>=0 ; i--)
		{
			//alert(ListBoxControl.options[i].value + "=" + ListBoxControl.options[i].text);
			if(ListBoxControl.options[i].value==idtoken)
			{
				found = true;
			}
		}
		//alert("found=" + !found);
		if(! found)
		{
            var newoption = new Option();
            newoption.value = idtoken;
            newoption.text = nametoken;
            ListBoxControl.options[ListBoxControl.options.length] = newoption;
        }        
        if(ObjectList.indexOf(idtoken)==-1)
        {
            if(ObjectList.length==0)
                ObjectList = idtoken;
            else
                ObjectList = ObjectList + delimiter + idtoken;
        }        
	}   // End of While
	TextBoxControl.value = ObjectList;
}


// Removed all selected items from the pickers / child windows
// i.e., update the hidden ID field, removing the selected ObjectIds
// and update the scrollable listbox, removing the selected item names
function RemoveObjectsFromControl(formName, textboxControlName, listboxControlName, ObjectIds)
{
    var alternateFormName = "aspnetForm";
    
    var formObj, textboxControl, listboxControl;
    
    formObj = eval("document." + formName);    
    //alert('formObj=' + formObj);
    if(formObj==undefined)
    {
        formObj = eval("document." + alternateFormName);
    }
    //textboxControl = eval("document." + formName + "." + textboxControlName);
    //listboxControl = eval("document." + formName + "." + listboxControlName);
    textboxControl = findControl(formObj, textboxControlName);
    listboxControl = findControl(formObj, listboxControlName);
    //alert('textboxControl=' + textboxControl + "#" + textboxControl.name + "#" + textboxControl.value);
    RemoveItemsFromListBoxTextBox(listboxControl, textboxControl, ObjectIds);
}

// local method
function RemoveItemsFromListBoxTextBox(ListBoxControl, TextBoxControl, ObjectIds)
{
    ObjectIds = ObjectIds + "";
    //alert('is it here=' + ObjectIds + "#" + ObjectIds.length);
    var ObjectList = TextBoxControl.value;
    //alert('ObjectList=' + ObjectList);
	while (ObjectIds.length > 0)
	{
		var token;
		var pos = ObjectIds.indexOf(delimiter);
		if(pos > -1)
		{
			token = ObjectIds.substring(0, pos);
			ObjectIds = ObjectIds.substr(pos + 1);
		}
		else
		{
			token = ObjectIds;
			ObjectIds = "";
		}
		//alert('before=' + token);
		token = trim(token);
		//alert('after=' + token);

        ObjectList = ObjectList.replace(token, '');        
    
		var listboxLen = ListBoxControl.options.length;
		//alert('listboxLen=' + listboxLen);
		for(var i=listboxLen-1; i>=0 ; i--)
		{
			//alert(ListBoxControl.options[i].value + "=" + ListBoxControl.options[i].text);
			if(ListBoxControl.options[i].value==token)
			{
				ListBoxControl.options[i] = null;
			}
		}
	}
	TextBoxControl.value = ObjectList;
}

function reloadPage(window, windowmode)
{
    if(windowmode==0)
    {
        //alert('reloading...');
        var url = window.location + "";
        //alert('before=' + url);
        //alert('pos=' + url.indexOf(str));
        url = url.replace("windowmode=0", "windowmode=1");                
        //window.location = url;
        //alert('window name=' + window.name);
        //alert('window window=' + window.window);
        //alert('after=' + url);
        window.open(url,window.name,"status=no, menubar=0,toolbar=no,scrollbars=auto,resizable=1",true);
        window.close();
    }
}

function GridCreated()
{
     var scrollArea = document.getElementById(this.ClientID + "_GridData");
    var dataHeight = this.MasterTableView.Control.clientHeight;
    if(dataHeight < 300)
    {
        scrollArea.style.height = dataHeight + 25 + "px";
    }
}

function NewWindow(mypage,myname,w,h,pos,infocus)
{
	if(pos=="random")
	{
		myleft=(screen.width)?Math.floor(Math.random()*(screen.width-w)):100;
		mytop=(screen.height)?Math.floor(Math.random()*((screen.height-h)-75)):100;
	}

	if(pos=="center")
	{
		myleft=(screen.width)?(screen.width-w)/2:100;
		mytop=(screen.height)?(screen.height-h)/2:100;
	}
	else if((pos!='center' && pos!="random") || pos==null)
	{
		myleft=0;mytop=20
	}
	settings="width=" + w + ",height=" + h + ",top=" + mytop + ",left=" + myleft + ",scrollbars=yes,location=no,directories=no,status=yes,menubar=no,toolbar=yes,resizable=yes";
	win=window.open(mypage,myname,settings);
	win.focus();
}

function CenterWindow(window1,w,h)
{
	//alert('scrollbars visible=' + window.scrollbars);
	//alert(w + '#' + h);
    	if(w > screen.width)
    		w = screen.width;
    	if(h > screen.height)
    		h = screen.height;
	var left =(screen.width)?(screen.width-w)/2:100;
	var top =(screen.height)?(screen.height-h)/2:100;
	settings="width=" + w + ",height=" + h + ",top=" + top + ",left=" + left + ",scrollbars=yes,location=no,directories=no,status=yes,menubar=no,toolbar=yes,resizable=yes";
	//win=window.open(mypage,myname,settings);
	window.resizeTo(w, h);
	window.moveTo(left, top);
	window.focus();
}

function MaximizeWindow(window)
{
    w = screen.width - 5;
    h = screen.width - 5;
    window.resizeTo(w, h);
    window.moveTo(0, 0);
}