// JScript File
var key=0;
var selChr="+";


function generateKey() {
    key--
	return key;
}

function readFromServer(url,callback){
	var httpObj = sajax_init_object();
	if(callback){
	    httpObj.open("GET", url, true);
	    httpObj.onreadystatechange= function()
          {
            if (httpObj.readyState==4)
            {
                if (httpObj.status==200)
                {
                   callback(httpObj.responseText);
                 
                }
                else
                {
                   alert("Problem retrieving data:" + httpObj.statusText)
                }
            }
          }
    	httpObj.send(null);
        try{
    	    if(!httpObj.getResponseHeader("Date") )
            {
                httpObj.send(null);
            }
        }catch (e){}
	}else{
	    httpObj.open("GET", url, false);
    	httpObj.send(null);
        try{
    	    if(!httpObj.getResponseHeader("Date") )
            {
                httpObj.send(null);
            }
        }catch (e){}
        return httpObj.responseText;
	}
}

function sajax_init_object() {
    var A;
    try {
        A=new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
        try {
            A=new ActiveXObject("Microsoft.XMLHTTP");
        } catch (oc) {
            A=null;
        }
    }
    if(!A && typeof XMLHttpRequest != "undefined")
    A = new XMLHttpRequest();
    return A;
}
function postToServer(url, xml){
	var httpObj = new sajax_init_object();
	httpObj.open("POST", url, false);
	httpObj.send(xml);
	return httpObj.responseText;
}

function saveData(grid) {
	grid.save();
}
function onBeforeSort(grid){
    return true;
}
function onAfterSort(grid){
    fillSequence(grid,0);
    try{
        loadGridDropdowns();
    }catch(e){
        ;
    }
}
function deleteFlaggedRows(GridObject, ColumnNumber)
{
 var RowCount = GridObject.rowCount();

 GridObject.go("HOME");
 GridObject.go("TOP");

 var i = 0;

 for(i = 0; i <= (RowCount-1); i++)
 {
  if (GridObject.getCellValue(GridObject.getRow(), ColumnNumber))
  {
   GridObject.deleteRow();
  }
  GridObject.go("DN");
 }
 return false;
}

function deleteAll(grid){
 var RowCount = grid.rowCount();
 grid.go("HOME");
 grid.go("TOP");
 var i = 0;
 for(i = 0; i <= (RowCount-1); i++)
 {
   grid.deleteRow();
   grid.go("DN");
 }
 return false;
}
function onBeforeSave(msgSpan,g) {
	msgSpan.innerText="saving data from grid...";
	return true;
}
function onAfterSave(msgSpan,g) {
	if (g.getDataSource().getHandlerError()){
	    msgSpan.innerHTML=g.getDataSource().getHandlerError();
	    return;
	}else{
	    msgSpan.innerText="saving data from grid...ok! Refreshing grid...";
    	if(g){
    	    //g.loadDataPage(g.getCurrentPageIndex());
    	    g.bind();
            //g.GetPage(g.PageStart);
            msgSpan.innerText="Data Saved!";
            //msgSpan.innerText=g.lastSaveHandlerResponse;
	    }
    }
	setTimeout(msgSpan.id +".innerText=''",5000);
	return true; 
}
function showError(msgSpan,g) {
    var msg=g.getDataSource().getHandlerError(); 
    if(msg!=null) {
        msgSpan.innerHTML=msg;
        alert(msg);
    }
}
function delRow(grid)
{
	grid.deleteRow();
}
function getElement(psID) { 
   if(document.all) { 
      return document.all[psID]; 
   } else { 
      return document.getElementById(psID); 
   } 
} 

function loadDropdown(grid,COL, URL)
{
    var items= grid.getResponseFromURL(URL);
    var colArray = grid.getChildren();
    colArray[COL].values=items;
    colArray[COL].show="value";
    grid.resize(0,10);
}
function fillSequence(grid, COL){
    for (var i=0; i<grid.rowCount();i++){
        ;//grid.setCell(i,COL,i+1);
    }
}
function copyGridData(grid, grid2){
     var s="";
     for (var i=0; i<grid.rowCount();i++){
           for (var j=0; j<grid.columnCount();j++){
               s=s + "\t" + grid.getCellText(i,j);
           }
           s =  s + "\n";
     }
     s=s+"\n"
     for (var i=0; i<grid2.rowCount();i++){
           for (var j=0; j<grid2.columnCount();j++){
               s=s + "\t" + grid2.getCellText(i,j);
           }
           s =  s + "\n";
     }
     clipboardData.setData('Text',s)
}
function getGridExpandedHeight(grid){
    var row=grid.rowCount();
    var h=200;
    if(row>0){
        h=row*20+40.
    }
    return h;
}
function loadDropdownFromCache(grid, COL, items)
{
    var colArray = grid.getChildren();
    colArray[COL].values=items;
    colArray[COL].show="value";
    grid.resize(0,20);
}
function getFromServer(grid,URL){
    return grid.getResponseFromURL(URL);
}
//get selected items
function getSelectedItems(oSelect){
   var s="";
   if (oSelect.options && oSelect.options.length){
      if(oSelect.value=="ALL"){
        for (var i=0; oSelect.options[i]; i++) {
            if (oSelect.options[i].value!="ALL") {
                if(s.length>0) s=s+",";
                s=s + oSelect.options[i].value;
            }
        }
      }else{
        for (var i=0; oSelect.options[i]; i++) {
            if (oSelect.options[i].selected == true) {
                if(s.length>0) s=s+",";
                s=s + oSelect.options[i].value;
            }
        }
      }
   }else{
      s=oSelect.value
   }
   return s
}
function setGridColumnValue(grid, COL, value)
{
    var colArray = grid.getChildren();
    for (var i=0; i<grid.rowCount();i++){
        grid.setCell(i,COL,value);
    }
}
function refreshDropdown(grid,COL){
    for (var i=0; i<grid.rowCount();i++){
        grid.setCell(i,COL,grid.getCellValue(i,COL));
    }
}

function addToSelect(s, items){
    var i;
    var sArray=items.split(",");
    for (i=0; i<sArray.length; i++){
       var item=sArray[i].split(":");
       var o  = new Option(item[1], item[0]);
       s.options[s.options.length]=o;
    }
}
function getConentZoneWidth()
{
    var w =  window.innerWidth || document.body.offsetWidth;
    if (w>1600) w=1600;
    return w-220;
}
function getConentZoneHeight()
{
    var h =  window.innerHeight || document.body.offsetHeight;
    return h-45;
}

function DisplayWait() {
	theDiv = getElement('PleaseWaitDiv').style;
	theDiv.left = 400;
	theDiv.top = 450;
}

function HideWait() {
	theDiv = getElement('PleaseWaitDiv').style;
	theDiv.left = 4000;
	theDiv.top = 4000;
}

function notifySelect(multidropdown, RepSelected){
 if (RepSelected == "click to view reps") return false;
 var rep_str ="";
 for (i = 0; i < multidropdown.options.length; i++) {
   if (multidropdown.options[i].value != '') 
   {
        var dropdownItem = multidropdown.options[i].text;
        if (dropdownItem == RepSelected || dropdownItem == selChr+RepSelected) {
            if (dropdownItem.substring(0,1) == selChr) {
                multidropdown.options[i].text = RepSelected.substring(1);
            }
            else {
                multidropdown.options[i].text = selChr + RepSelected;
            }
            dropdownItem = multidropdown.options[i].text;
            if (dropdownItem.substring(0,1) == selChr) {
                rep_str = rep_str + multidropdown.options[i].value + ",";
                multidropdown.options[i].style.backgroundColor = "#3366CC";
                multidropdown.options[i].style.color = "#FFFFFF";
            }else {
                multidropdown.options[i].style.backgroundColor = "#FFFFFF";
                multidropdown.options[i].style.color = "#000000";
            }
        }
    }
    //end of search
    multidropdown.options[0].selected = true;
    //multidropdown.notifyReps.value = rep_str;  
  }
}

function createTableInDiv(str,targetDiv, ckShowData, delimiter,styleClass){

        if(!delimiter) delimiter=',';
        if(!styleClass) styleClass='sortable';
	    var lines = new Array;
	    lines=str.split("\n");
	    var htmlStr = "<TABLE class='" +styleClass + "' border=1 > ";
        var cols = new Array();
        cols=lines[0].split(delimiter);
	    htmlStr+='<TR>' ;
	    for(j=0; j<cols.length;j++){
	       htmlStr += '<TD>' + cols[j] + "</TD>";
	    }
	    htmlStr+="</TR>";

	    for(i=1; i<lines.length; i++){
	        var cols = new Array();
	        cols=lines[i].split(delimiter);
	        htmlStr+="<TR>";
	        for(j=0; j<cols.length;j++){
	            if(j==0)
	            htmlStr += "<TD>&nbsp;" + cols[j].substring(0, 10) + "</TD>";
	          else
	            htmlStr += "<TD>&nbsp;" + cols[j] + "</TD>";
	        }
	        htmlStr+="</TR>";
	    }
	    htmlStr+="</TABLE>";
	    targetDiv.style.visibility="visible";
	    targetDiv.innerHTML=htmlStr;
	    if(ckShowData.checked) {
	       targetDiv.style.visibility="visible";
	    } else {
	       targetDiv.style.visibility="hidden"; 
	    }    
        sortables_init();    
	    //arrayToTable
	    //return htmlStr;
}





function createExcelSheet(str,targetDiv,delimiter,styleClass){

        var xls;
        try {
            xls = new ActiveXObject ( "Excel.Application" );
         
            xls.visible = true;
            var newBook = xls.Workbooks.Add; 
            newBook.Worksheets.Add;
            newBook.Worksheets(1).Activate;
       
            if(!delimiter) delimiter=',';
            if(!styleClass) styleClass='sortable';
            var lines = new Array;
            lines=str.split("\n");  
            var cols = new Array();
            cols=lines[0].split(delimiter);
            for(j=0; j<cols.length;j++){
               newBook.Worksheets(1).Cells(1, j + 1).Value = cols[j].replace(/[^a-z\d\.\- ]+/ig,'');
            }

            for(i=1; i<lines.length; i++){
                var cols = new Array();
                cols=lines[i].split(delimiter);
                for(j=0; j<cols.length;j++){	
                   if(j==0)
                       newBook.Worksheets(1).Cells(i + 1, j + 1).Value =  cols[j].replace(/[^a-z\d\.\- ]+/ig,'').substring(0,10)
                   else                    	                   
                       newBook.Worksheets(1).Cells(i + 1, j + 1).Value =  cols[j].replace(/[^a-z\d\. ]+/ig,'')  
                }
            }


        } catch (err) {
            alert("Please Initialize and script ActiveX Controls in your browser settings")
        }   
  
	    
}            
