	var clickedButton;
function OnDocumentLoad()
{
    //setTimeout("RefreshWebPart(event,'WPT-10000207')",20000);
}
function RefreshWebPart(event, webPartId, time, refresh)
{
    setTimeout("RefreshWebPart(event,'"+webPartId+"',"+ time +",'refresh')",time);
    if(refresh)
    {
    var webPartMarker = document.getElementById(webPartId + "Marker");
    if(webPartMarker)
    {
        //var td = webPartMarker.nextSibling.nextSibling.firstChild.firstChild.firstChild;
        var td = document.createElement('td');
        var tr = document.createElement('tr');
        var image = document.createElement('img');
        image.src = "images/ajaxprogress_two.gif";
        image.height = 16;
        image.width = 16;

        var span = document.createElement("span");
        span.innerHTML = "&nbsp;&nbsp;<Font color=Green><b>" + "Refreshing.." + "</FONT></b>";
        td.verticalAlignment = 'middle';
        
        var ajaxAnimation = document.createElement("span");
        ajaxAnimation.appendChild(image);
        ajaxAnimation.appendChild(span);
        td.appendChild(ajaxAnimation);
        tr.appendChild(td);

        if(webPartMarker.nextSibling.nextSibling.firstChild.firstChild.firstChild)
        {
            webPartMarker.nextSibling.nextSibling.firstChild.insertBefore(tr,webPartMarker.nextSibling.nextSibling.firstChild.firstChild);
        }
        else
        {
            webPartMarker.nextSibling.nextSibling.firstChild.appendChild(td);
        }
    }
    var queryString = 'RefreshWebPart.aspx?Dummy=17&WebPartId=' + webPartId;
    var postData = "";
    SendAjaxRequest(queryString,LoadData,postData);
}
}

//HTMLElement.prototype.nextSiblings = function(element) {
//	alert(element.tagName);
//  return element.nextSibling;
//}



function GetNextSibling(element)
{
	
}


function EnableAfterClick(event)
{
 	event.srcElement.disabled = false;
}

function SubmitAjaxButton(event, jsonObject)
{
    if(jsonObject.ProcessInfo[0].CausesValidation == 'Yes')
    {
        //if(!Page_ClientValidate())return;
    }
    var webPartMarker = document.getElementById(jsonObject.ProcessInfo[0].WebPartId + "Marker");
    if(webPartMarker)
    {
        clickedButton = event.srcElement;
        //var td = webPartMarker.nextSibling.nextSibling.firstChild.firstChild.firstChild;
        var td = document.createElement('td');
        var tr = document.createElement('tr');
        var image = document.createElement('img');
        image.src = "images/ajaxprogress_two.gif";
        image.height = 16;
        image.width = 16;

        var span = document.createElement("span");
        span.innerHTML = "&nbsp;&nbsp;<Font color=Green><b>" + jsonObject.ProcessInfo[0].AjaxText + "</FONT></b>";
        td.verticalAlignment = 'middle';
        
        var ajaxAnimation = document.createElement("span");
        ajaxAnimation.appendChild(image);
        ajaxAnimation.appendChild(span);
        //td.appendChild(ajaxAnimation);
        //tr.appendChild(td);

        if(jsonObject.ProcessInfo[0].DisableOnClick == 'Yes')
        {
            event.srcElement.disabled = true;
        }
        //alert(event.srcElement.parentElement.tagName);
        
        if(jsonObject.ProcessInfo[0].DisplayAjaxAnimation != '')
        {
            event.srcElement.parentElement.appendChild(ajaxAnimation);
        }
	else
	{
	//alert(ab);
	//alert(webPartMarker.nextSibling.nextSibling.nextSibling.nextSibling.nodeType);
	
        if(webPartMarker.nextSibling.nextSibling.firstChild.firstChild.firstChild)
        {
            webPartMarker.nextSibling.nextSibling.firstChild.firstChild.firstChild.appendChild(ajaxAnimation);
            //webPartMarker.nextSibling.nextSibling.firstChild.insertBefore(tr,webPartMarker.nextSibling.nextSibling.firstChild.firstChild);
        }
        else
        {
            //webPartMarker.nextSibling.nextSibling.firstChild.appendChild(td);
        }
        }
    }
    var postData ="";
     
        var amp ='';
        for(i=0;i<jsonObject.ProcessPreExecution.length;i++)
        {
            switch(jsonObject.ProcessPreExecution[i].ServiceName)
            {
                case "SetAjaxUpdateProgress":
                    SetFieldValueByName(jsonObject.ProcessPreExecution[i].FieldName,'KAjaxUpdateProgress',jsonObject.ProcessPreExecution[i].Text, 'Text');
                    SetFieldValueByName(jsonObject.ProcessPreExecution[i].FieldName,'KAjaxUpdateProgress',jsonObject.ProcessPreExecution[i].ImageUrl, 'ImageUrl');
                    break;
                    
            }
        
        }        
        // Execute if there is any pre execution command
        
    var queryString = 'GetData.aspx?Dummy=17&ProcessId=' + jsonObject.ProcessInfo[0].Id+'&ButtonInList'+jsonObject.ProcessInfo[0].ButtonInList + '&EPAjaxMode=True';
        
        
    for(i=0;i<jsonObject.FieldToReturn.length;i++)
    {
        if(jsonObject.FieldToReturn[i].Type == 'QueryString')
        {
            var value = Request.QueryString(jsonObject.FieldToReturn[i].Name);
            if(Request.QueryString(jsonObject.FieldToReturn[i].Name).Count>0)
            {
                queryString = queryString + '&' + jsonObject.FieldToReturn[i].Name + "=" + Request.QueryString(jsonObject.FieldToReturn[i].Name);
            }
        }
    }

    for(i=0;i<jsonObject.FieldToReturn.length;i++)
    {
        if(jsonObject.FieldToReturn[i].Type == 'FormField')
        {

            for(j=0;j<document.forms[0].elements.length;j++)
            {
                var element = document.forms[0].elements[j];
                var elementId = element.id
                
                if(elementId.indexOf('_List_')>0)
                {
                    // this is a list item.
                    var items = elementId.split('_List_');
                    if(items.length == 3)
                    {
                        elementId = items[0];
                        var rowIndex = items[1];
                        var sectionId = items[2];
                        
                        // If row index = the passed button index, only us this row index
                        
                        
                        
                        index = elementId.lastIndexOf('_');
                        if(index > 0 && index+1 < elementId.length) elementId = elementId.substring(index+1,elementId.length);
                        if(elementId == jsonObject.FieldToReturn[i].Name)
                        {
                        
                            if(jsonObject.ProcessInfo[0].ButtonInList == 'true')
                            {
                                var items1; 
                                if(event.srcElement.nextSibling)
                                {
                                    items1 = event.srcElement.nextSibling.id.split('_List_');
                                }
                                else
                                {
                                    if(event.srcElement.parentElement && event.srcElement.parentElement.tagName && event.srcElement.parentElement.tagName == 'SPAN')
                                    {
                                        items1 = event.srcElement.parentElement.id.split('_List_');
                                    }
                                    else
                                    {
                                        if(event.srcElement.parentElement && event.srcElement.parentElement.parentElement)
                                        items1 = event.srcElement.parentElement.parentElement.id.split('_List_');
                                    }
                                }
                                    
                                if(items1.length == 3)
                                {
                                    var rowIndex1 = items1[1];
                                    if(rowIndex1 == rowIndex)
                                    {
                                        postData = postData + amp + jsonObject.FieldToReturn[i].Name + "=" + element.value;
                                    }
                                }
                            }
                            else
                            {
                                if(jsonObject.FieldToReturn[i].RowSelection == 'Always')
                                {
                                    
                                        postData = postData + amp + jsonObject.FieldToReturn[i].Name + "=" + element.value;
                                   
                                }
                                if(jsonObject.FieldToReturn[i].RowSelection == 'Multiple')
                                {
                                    var selectedRows = document.getElementsByName("SelectWSEC-10000139");
                                    for(m=0;m<selectedRows.length;m++)
                                    {
                                        if(selectedRows[m].checked == 1 && selectedRows[m].value == rowIndex)
                                        {
                                           
                                                postData = postData + amp + jsonObject.FieldToReturn[i].Name + "=" + element.value;
                                        }
                                    }
                                }
                                if(jsonObject.FieldToReturn[i].RowSelection == 'Single')
                                {
                                    var selectedRows = document.getElementsByName("SelectWSEC-10000139");
                                    for(m=0;m<selectedRows.length;m++)
                                    {
                                        if(selectedRows[m].checked == 1 && selectedRows[m].value == rowIndex)
                                        {
                                           
                                                postData = postData + amp + jsonObject.FieldToReturn[i].Name + "=" + element.value;
                                           
                                            
                                        }
                                    }
                                }
                            }

                            if(amp=='')amp = '&';

                        }
                        
                    }                
                }
                else
                {
                    if(elementId.indexOf('Marker') <0)
                    {
                        var index = elementId.lastIndexOf('_');
                        if(index > 0 && index+1 < elementId.length) elementId = elementId.substring(index+1,elementId.length);
                        if(elementId == jsonObject.FieldToReturn[i].Name)
                        {
                            postData = postData + amp + jsonObject.FieldToReturn[i].Name + "=" + element.value;
                            if(amp=='')amp = '&';

                        }
                    }
                }
            }
        }
    }
    SendAjaxRequest(queryString,LoadData,postData);
    
}

function FindOrders()
{
    SendAjaxRequest('GetData.aspx?Dummy=13&Name=a',LoadData);
}
function ReplaceId(element,oldId,newId)
{
    if(element.id && element.id.indexOf(oldId)>0)
    {
        element.id = element.id.replace(oldId,newId);
    }

    
    if(element.childNodes[0])
    {
        ReplaceId(element.childNodes[0],oldId,newId);
    }
    if(element.nextSibling)
    {
        ReplaceId(element.nextSibling,oldId,newId);
    }

}

function LoadData(ajaxData)
{
        //var regEx = new RegExp('[\x01-\x1F]');
        //ajaxData = ajaxData.replace(regEx,'');
        //alert(ajaxData);
        var jsonObject = eval('data =' + ajaxData + ';');
        switch(jsonObject.ExecutionMode[0].Mode)
        {
            case "ExecuteProcess":
                    FillWebPartData(jsonObject);
                    ExecuteProcess(jsonObject);
                    HideWebPartAjaxProgress(jsonObject.ProcessInfo[0].WebPartId);
                    RemoveButtonAjaxProgress(jsonObject);
                break;
            case "RefreshWebPart":
                    //alert('removing ' + jsonObject.ExecutionMode[0].WebPartId);
                    HideWebPartAjaxProgress(jsonObject.ExecutionMode[0].WebPartId);
                    FillWebPartData(jsonObject);
                break;
            
        }
}

function HideWebPartAjaxProgress(webPartId)
{
     var webPartMarker = document.getElementById(webPartId + "Marker");
    // alert(ab);
    if(webPartMarker)
    {
      removeChild(webPartMarker.nextSibling.nextSibling.firstChild.firstChild.firstChild);
    }
}

function RemoveButtonAjaxProgress(jsonObject)
{
    if(clickedButton)
    {
        if(jsonObject.ProcessInfo[0].DisableOnClick == 'Yes')
        {
        clickedButton.disabled = false;
        }
        
        if(jsonObject.ProcessInfo[0].DisplayAjaxAnimation != '')
        {
            clickedButton.parentElement.removeChild(clickedButton.parentElement.childNodes[clickedButton.parentElement.childNodes.length-1]);
        }
        
    
    }

}
function ExecuteProcess(jsonObject)
{
        for(i=0;jsonObject.ProcessExecution && i<jsonObject.ProcessExecution.length;i++)
        {
            switch(jsonObject.ProcessExecution[i].ServiceName)
            {
                case "SetAjaxUpdateProgress":
                    SetFieldValueByName(jsonObject.ProcessExecution[i].FieldName,'KAjaxUpdateProgressPostExecution',jsonObject.ProcessExecution[i].Text, 'Text');
                    SetFieldValueByName(jsonObject.ProcessExecution[i].FieldName,'KAjaxUpdateProgressPostExecution',jsonObject.ProcessExecution[i].ImageUrl, 'ImageUrl');
                    break;

                case "Forward":
                    window.location = jsonObject.ProcessExecution[i].Page;
                    //return;
                    break;
                case "SetValue":
                    SetValue(jsonObject.ProcessExecution[i].FieldName,jsonObject.ProcessExecution[i].FieldValue);
                    break;
                case "SetValueInList":
                    SetValueInList(jsonObject.ProcessExecution[i].ListName,jsonObject.ProcessExecution[i].ItemValue,jsonObject.ProcessExecution[i].ItemDescription,jsonObject.ProcessExecution[i].AllowMultipleValues,jsonObject.ProcessExecution[i].Separator, 'DropDownList');
                    break;
                case "SetWindowAttributes":
                    if(jsonObject.ProcessExecution[i].ShowPopUpMessage == 'Yes')
                    {
                        alert(jsonObject.ProcessExecution[i].PopUpMessage);
                    }
                    if(jsonObject.ProcessExecution[i].RedirectParentUrl != '')
                    {
                        window.location = jsonObject.ProcessExecution[i].RedirectParentUrl;
                    }
                    if(jsonObject.ProcessExecution[i].RefreshParentWindow == 'Yes')
                    {
                        if(window.opener)
                        {
                            window.opener.__doPostBack('customPostback');
                        } 
                        else 
                        {
                            window.location.href= window.location.href;
                        }
                    }
                    if(jsonObject.ProcessExecution[i].CloseWindow == 'Yes')
                    {
                        window.close();
                    }
                    break;
            }
        }
        
}
function FillWebPartData(jsonObject)
{
        // First take care of detail section

        for(i=0;jsonObject.SectionData && i<jsonObject.SectionData.length;i++)
        {
            if(jsonObject.SectionData[i].IsDetail == 'True' )
            {
                var keeperDiv = document.getElementById("KeeperTable" +jsonObject.SectionData[i].Id + jsonObject.SectionData[i].WebPartId);
                if(keeperDiv)
                {
                    var detailBody = keeperDiv.previousSibling.firstChild;

                    if(jsonObject.SectionData[i].DisplayHeaderOnce.toLowerCase() == 'true')
                    {
                        if(jsonObject.SectionData[i].DisplayFieldDescription == 'Top')
                        {
                        
                            //detailBody = keeperDiv.previousSibling.previousSibling.previousSibling.previousSibling.previousSibling.firstChild.firstChild.firstChild.firstChild.firstChild;
                            if ( detailBody.hasChildNodes() )
                                {
                                    while ( detailBody.childNodes.length >= 1 )
                                    {
                                        detailBody.removeChild( detailBody.firstChild );       
                                    } 
                                }
                            // Now re-create sections for as many rows
                            //alert(jsonObject.SectionData[i].NoOfRow);
                            if(detailBody.childNodes.length ==0)
                            {
                                var tr = keeperDiv.firstChild.firstChild.firstChild.firstChild.firstChild.firstChild.firstChild;
                                var trClone = tr.cloneNode(true);
                                detailBody.appendChild(tr.cloneNode(true));
                            }
                            for(j=0;j<jsonObject.SectionData[i].NoOfRow;j++)
                            {
                                if(j%2 == 0)
                                {
                                    var tr = keeperDiv.firstChild.firstChild.firstChild.firstChild.firstChild.firstChild.firstChild.nextSibling;
                                    var trClone = tr.cloneNode(true);
                                    ReplaceId(trClone,'_-2','_'+j);
                                    detailBody.appendChild(trClone);
                                    
                                    
                                }
                                else
                                {
                                    var tr = keeperDiv.firstChild.firstChild.firstChild.firstChild.firstChild.firstChild.firstChild.nextSibling.nextSibling;
                                    var trClone = tr.cloneNode(true);
                                    ReplaceId(trClone,'_-1','_'+j);
                                    detailBody.appendChild(trClone);

                                }
                            }
                        }
                        if(jsonObject.SectionData[i].DisplayFieldDescription == 'No')
                        {
                            if ( detailBody.hasChildNodes() )
                                {
                                    while ( detailBody.childNodes.length >= 1 )
                                    {
                                        detailBody.removeChild( detailBody.firstChild );       
                                    } 
                                }
                            // Now re-create sections for as many rows
                            for(j=0;j<jsonObject.SectionData[i].NoOfRow;j++)
                            {
                                if(j%2 == 0)
                                {
                                    var tr = keeperDiv.firstChild.firstChild.firstChild.firstChild.firstChild.firstChild.firstChild;
                                    var trClone = tr.cloneNode(true);
                                    ReplaceId(trClone,'_-2','_'+j);
                                    detailBody.appendChild(trClone);
                                    
                                    
                                }
                                else
                                {
                                    var tr = keeperDiv.firstChild.firstChild.firstChild.firstChild.firstChild.firstChild.firstChild.nextSibling;
                                    var trClone = tr.cloneNode(true);
                                    ReplaceId(trClone,'_-1','_'+j);
                                    detailBody.appendChild(trClone);

                                }
                            }
                        }
                    }            
                    else
                    {
                        if(jsonObject.SectionData[i].DisplayFieldDescription == 'No' || jsonObject.SectionData[i].DisplayFieldDescription == 'Left')
                        {
                            if(jsonObject.SectionData[i].ListDisplayOption == 'DisplayForAnyRow')
                            {
                            
                               // var detailBody = keeperDiv.previousSibling.previousSibling.previousSibling.firstChild;
                                if ( detailBody.hasChildNodes() )
                                {
                                    while ( detailBody.childNodes.length >= 1 )
                                    {
                                        detailBody.removeChild( detailBody.firstChild );       
                                    } 
                                }

                                if(jsonObject.SectionData[i].NoOfRow > 0)
                                {
                                    var table = keeperDiv.firstChild;
                                    for(m=0;m<table.firstChild.childNodes.length;m++)
                                    {
                                        var tdClone = table.firstChild.childNodes[m].cloneNode(true);
                                        ReplaceId(tdClone,'_-2','_0');

                                        detailBody.appendChild(tdClone);              
                                    }
                                }

                            }


                            if(jsonObject.SectionData[i].ListDisplayOption == 'DisplayIfNoRow')
                            {
                            
                               // var detailBody = keeperDiv.previousSibling.previousSibling.previousSibling.firstChild;
                                if ( detailBody.hasChildNodes() )
                                {
                                    while ( detailBody.childNodes.length >= 1 )
                                    {
                                        detailBody.removeChild( detailBody.firstChild );       
                                    } 
                                }

                                if(jsonObject.SectionData[i].NoOfRow == 0)
                                {
                                    var table = keeperDiv.firstChild;
                                    for(m=0;m<table.firstChild.childNodes.length;m++)
                                    {
                                        var tdClone = table.firstChild.childNodes[m].cloneNode(true);
                                        ReplaceId(tdClone,'_-2','_0');

                                        detailBody.appendChild(tdClone);              
                                    }
                                }

                            }


                            if(jsonObject.SectionData[i].ListDisplayOption == 'DisplayForEveryRow')
                            {
                                if ( detailBody.hasChildNodes() )
                                {
                                    while ( detailBody.childNodes.length >= 1 )
                                    {
                                        detailBody.removeChild( detailBody.firstChild );       
                                    } 
                                }
                                //alert(jsonObject.SectionData[i].Id1.rr)
                                
                            var defaultTd = keeperDiv.firstChild.firstChild.firstChild.firstChild;
                            var aleternateTd;
                            if(jsonObject.SectionData[i].ListPerRow > 1)
                            {
                                aleternateTd = keeperDiv.firstChild.firstChild.firstChild.firstChild.nextSibling;
                            }
                            else
                            {
                                aleternateTd = keeperDiv.firstChild.firstChild.firstChild.nextSibling.firstChild;
                            }
                            // Now we need to put these td into the rows based on data
                            
                                var tr = null;
                               // tr.id;
                                for(j=0;j<jsonObject.SectionData[i].NoOfRow;j++)
                                {
                                    if(j%jsonObject.SectionData[i].ListPerRow == 0)
                                    {
                                        if(tr)
                                        {
                                            detailBody.appendChild(tr);
                                        }
                                        tr = document.createElement("tr");
                                    }
                                    if(j%2 == 0)
                                    {
                                        //var tr = keeperDiv.firstChild.firstChild.firstChild.firstChild.firstChild.firstChild.firstChild;
                                        var td = defaultTd.cloneNode(true);
                                        ReplaceId(td,'_-2','_'+j);
                                        tr.appendChild(td);
                                        
                                    }
                                    else
                                    {
                                        var td = aleternateTd.cloneNode(true);
                                        ReplaceId(td,'_-1','_'+j);
                                        tr.appendChild(td);
                                    }
                                }
                                if(tr)
                                {
                                    detailBody.appendChild(tr);
                                }

                            }

                                
                        }            
                    }
                }
            }
        }
        
       for(i=0;jsonObject.WebPartFieldData && i<jsonObject.WebPartFieldData.length;i++)
       {
            SetFieldValue(jsonObject.WebPartFieldData[i].Id,jsonObject.WebPartFieldData[i].ControlName,jsonObject.WebPartFieldData[i].Value,jsonObject.WebPartFieldData[i].Attribute);
    
       }
}

function SetFieldValue(fieldId,type,value, attributeName , detailBody)
{
    value = value.replaceAll("&quot;","\"");
    value = value.replaceAll("&leftbrace;","{");
    value = value.replaceAll("&rightbrace;","}");
    var element = document.getElementById(fieldId);
    if(element)
    {
        switch(type)
        {
            case "Input":
                if(attributeName == 'Value')
                {
                    if(element && element.previousSibling && element.previousSibling.previousSibling)
                    {
                        var field = element.previousSibling.previousSibling;
                        field.value = value;    
                    }
                }
                break;

            case "KLabel":
                if(attributeName == 'Text')
                {
                    if(element && element.previousSibling)
                    {
                        var field = element.previousSibling;
                        if(value == '')
                        {
                            value = "&nbsp;";
                        }
                        field.innerHTML  = value;
                    }
                }
                break;
                
            case "KTextBox":
                if(element && element.previousSibling)
                {
                    var field = element.previousSibling;
                    field.value = value;
                }
                break;
            case "KHyperLink":
                // set navigation URL
                if(attributeName == 'NavigateUrl')
                {
                    if(element && element.previousSibling)
                    {
                        var field = element.previousSibling;
                        field.href = value;
                    }
                }
                
                if(attributeName == 'ImageUrl')
                {
                	if(value=='')value='images/noimage.gif';
                    if(element && element.previousSibling)
                    {
                        var field = element.previousSibling;
                        if(field.firstChild)
                        {
                            field.firstChild.src = value;
                        }
                        else
                        {
                            var img = document.createElement('img');
                            img.src = value;
                            img.border = 0;
                            field.appendChild(img);
                        }
                    }
                }
                 if(attributeName == 'Text')
                {
                    if(element && element.previousSibling)
                    {
                        var field = element.previousSibling;
                        if(value == '')
                        {
                            value = "&nbsp;";
                        }
                        field.innerHTML  = value;
                    }
                }
                // Set Image Url
                break;
            case "Image":
                // set navigation URL
                if(attributeName == 'ImageUrl')
                {
                    if(element && element.previousSibling)
                    {
                                    	if(value=='')value='images/noimage.gif';

                        var field = element.previousSibling;
                        field.src = value;
                    }
                }
                // Set Image Url
                break;
            case "KButton":
                break;
        }
        if(detailBody)
        {
            var field1 = document.getElementById(fieldId);
            if(field1)
            {
                field1.id = field1.id + '_' + detailBody.childNodes.length;
            }
        }

    }
}
function SetValue(fieldName, fieldValue)
{
    fieldValue = fieldValue.replaceAll("&quot;","\"");
    fieldValue = fieldValue.replaceAll("&leftbrace;","{");
    fieldValue = fieldValue.replaceAll("&rightbrace;","}");

    var element = document.getElementById(fieldName + 'Marker');
    if(element)
    {
            var field = element.previousSibling.previousSibling.previousSibling;                 
            if(field.tagName == '/INPUT')field = field.previousSibling;
            if(field.tagName == 'FONT')field = field.previousSibling;
            if(field.tagName == '/INPUT')field = field.previousSibling;
            if(field.tagName == 'INPUT')
            {
                field.value = fieldValue;
            }
            
            if(field.tagName == 'SPAN')
            {
                field.innerHTML = fieldValue;
            }
           
            if(field.tagName == 'SELECT')
            {
                var select = field;
                var length = select.length;

                var anOption = document.createElement("OPTION") ;
                select.options.add(anOption) 
                select.options[0].value =  fieldValue;
                select.options[0].text =  fieldValue;
            }
    }
}

function SetValueInList(listName, itemValue, itemDescription, allowMultipleValues,separator, type)
{
    itemValue = itemValue.replaceAll("&quot;","\"");
    itemValue = itemValue.replaceAll("&leftbrace;","{");
    itemValue = itemValue.replaceAll("&rightbrace;","}");
    var element = document.getElementById(listName + 'Marker');
    if(element)
    {
                var select = element.previousSibling.previousSibling.previousSibling;                 
                var values = itemValue.split(separator);
                var descriptions = itemDescription.split(separator);
                for(j=0;values.length == descriptions.length && j<values.length;j++)
                {
                    if(select.length < j+1)
                    {   
                         var anOption = document.createElement("OPTION") ;
                         select.options.add(anOption) 
                    }
                    select.options[j].value =  values[j];
                    select.options[j].text =  descriptions[j];
                }
    }
}

function SetFieldValueByName(fieldName,type,value, attributeName)
{
    var element = document.getElementById(fieldName + 'Marker');
    if(element)
    {
        switch(type)
        {
            case "KAjaxUpdateProgress":
               
                if(attributeName == 'ImageUrl')
                {
                    var td = element.previousSibling.previousSibling.previousSibling.firstChild.firstChild.firstChild.firstChild;
                    if(!td.firstChild)
                    {
                	if(value=='')value='images/noimage.gif';
                        var image = document.createElement("image");
                        image.border = 0;
                        image.src = value;
                        td.appendChild(image);
                    }
                }
                if(attributeName == 'Text')
                {
                    var td = element.previousSibling.previousSibling.previousSibling.firstChild.firstChild.firstChild.firstChild.nextSibling;
                    td.innerHTML = value;
                }
                break;

            case "KAjaxUpdateProgressPostExecution":
               
                if(attributeName == 'ImageUrl')
                {
                    var td = element.previousSibling.previousSibling.previousSibling.firstChild.firstChild.firstChild.firstChild;
                    removeChild(td);
                }
                if(attributeName == 'Text')
                {
                    var td = element.previousSibling.previousSibling.previousSibling.firstChild.firstChild.firstChild.firstChild.nextSibling;
                    td.innerHTML = "";
                }
                break;

            case "Input":
                if(attributeName == 'Value')
                {
                    if(element && element.previousSibling && element.previousSibling.previousSibling)
                    {
                        var field = element.previousSibling.previousSibling;
                        field.value = value;    
                    }
                }
                break;

            case "KLabel":
                if(attributeName == 'Text')
                {
                    if(element && element.previousSibling)
                    {
                        var field = element.previousSibling;
                        if(value == '')
                        {
                            value = "&nbsp;";
                        }
                        field.innerHTML  = value;
                    }
                }
                break;
                
            case "KTextBox":
                if(element && element.previousSibling)
                {
                    var field = element.previousSibling;
                    field.value = value;
                }
                break;
            case "KHyperLink":
                // set navigation URL
                if(attributeName == 'NavigateUrl')
                {
                    if(element && element.previousSibling)
                    {
                        var field = element.previousSibling;
                        field.href = value;
                    }
                }
                
                if(attributeName == 'ImageUrl')
                {
                	if(value=='')value='images/noimage.gif';
                    if(element && element.previousSibling)
                    {
                        var field = element.previousSibling;
                        if(field.firstChild)
                        {
                            field.firstChild.src = value;
                        }
                        else
                        {
                            var img = document.createElement('img');
                            img.src = value;
                            img.border = 0;
                            field.appendChild(img);
                        }
                    }
                }
                 if(attributeName == 'Text')
                {
                    if(element && element.previousSibling)
                    {
                        var field = element.previousSibling;
                        if(value == '')
                        {
                            value = "&nbsp;";
                        }
                        field.innerHTML  = value;
                    }
                }
                // Set Image Url
                break;
            case "Image":
                // set navigation URL
                if(attributeName == 'ImageUrl')
                {
                    if(element && element.previousSibling)
                    {
                	if(value=='')value='images/noimage.gif';
                        var field = element.previousSibling;
                        field.src = value;
                    }
                }
                // Set Image Url
                break;
            case "KButton":
                break;
        }
    }
}

function removeChild(element)
{
    if (element.hasChildNodes())
    {
        while ( element.childNodes.length >= 1 )
        {
            element.removeChild( element.firstChild );       
        } 
    }
}

	
	
	var xmlHttp = null;
	var rendering = false;
	function SendAjaxRequest(url,callback, postData ,idx )
	{
	    
		 //if(rendering) return false;
		 rendering = true; 
		 
		 setHttpRequest();
		
		xmlHttp.onreadystatechange=function()
    	{
			if(xmlHttp.readyState==4)
      		{
				callback(xmlHttp.responseText,idx);
				rendering = false; 
     		 }
		}
        xmlHttp.open("POST",url,true);
		xmlHttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
		xmlHttp.send(postData);

		return true;
	}
	
	function setHttpRequest()
	{
		try
		{
			xmlHttp = new XMLHttpRequest();
		}
		catch(e)
		{
			try
			{
				xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
				
			}
			catch(e)
			{
				try
				{
					
					xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
				}
				catch(e)
				{
					alert("Your browser does not support AJAX!");
					xmlHttp = null;
				}
				
			}			
		}
		
	}
	
	
// Replaces all instances of the given substring.
String.prototype.replaceAll = function( 
	strTarget, // The substring you want to replace
	strSubString // The string you want to replace in.
	){
	var strText = this;
	var intIndexOfMatch = strText.indexOf( strTarget );
	 
	// Keep looping while an instance of the target string
	// still exists in the string.
	while (intIndexOfMatch != -1){
		// Relace out the current instance.
		strText = strText.replace( strTarget, strSubString )
		 
		// Get the index of any next matching substring.
		intIndexOfMatch = strText.indexOf( strTarget );
	}
	 
	// Return the updated string with ALL the target strings
	// replaced out with the new substring.
	return( strText );
}