/* */

var MRTimer;
var myInfoArray=new Array();

function restoreSaved(s){
    setFormData(document.mainForm,s);
    for(var i=0; i<document.mainForm.length; i++){
        if(document.mainForm.elements[i].name.toUpperCase()=="KEYLIST"){
            setDivValues("GRP",document.mainForm.keylist.value);
        }else if(document.mainForm.elements[i].name.toUpperCase()=="RPTLIST"){
            setDivValues("RPT",document.mainForm.rptlist.value);
        }else if(document.mainForm.elements[i].name.toUpperCase()=="DLISTA"){
            setDivValues("ADATE",document.mainForm.dlistA.value);
        }else if(document.mainForm.elements[i].name.toUpperCase()=="DLISTB"){
            setDivValues("BDATE",document.mainForm.dlistB.value);
        }else if(document.mainForm.elements[i].name.toUpperCase()=="DLIST"){
            setDivValues("DATE",document.mainForm.dlist.value);
        }else if(document.mainForm.elements[i].name.toUpperCase()=="COMPDLIST"){
            setDivValues("COMPDATE",document.mainForm.compdlist.value);
        }else if(document.mainForm.elements[i].name.toUpperCase()=="LLIST" && (loadKey=="fac" || loadKey=="tra" || loadKey=="ter" || loadKey=="del")){
            setDivValues("OFAC",document.mainForm.llist.value);
        }else if(document.mainForm.elements[i].name.toUpperCase()=="LLIST" && loadKey!="cen"){
            setDivValues("LOC",document.mainForm.llist.value);
        }else if(document.mainForm.elements[i].name.toUpperCase()=="CLIST"){
            setDivValues("CARR",document.mainForm.clist.value);
        }else if(document.mainForm.elements[i].name.toUpperCase()=="ELIST"){
            setDivValues("EQPT",document.mainForm.elist.value);
        }else if(document.mainForm.elements[i].name.toUpperCase()=="DEPLIST"){
            setDivValues("DEP",document.mainForm.deplist.value);
        }else if(document.mainForm.elements[i].name.toUpperCase()=="ARRLIST"){
            setDivValues("ARR",document.mainForm.arrlist.value);
        }else if(document.mainForm.elements[i].name.toUpperCase()=="FSTLIST"){
            setDivValues("FST",document.mainForm.fstlist.value);
        }else if(document.mainForm.elements[i].name.toUpperCase()=="FLDLIST"){
            setDivValues("FLD",document.mainForm.fldlist.value);
        }
    }
   //now switch to Run screen and launch report
   switcher('Submit');
   showSelected();
   //checkForm(document.mainForm);
}

function collectForm(f){
	var obj;
	var lst='',qry='';
	var ignore=',locInput_param,locQuick_param,locMode,'+
            'eqptInput_param,eqptQuick_param,eqptMode,'+
            'DepInput_param,depQuick_param,depMode,'+
            'ArrInput_param,arrQuick_param,arrMode,'+
            'carrInput_param,carrQuick_param,carrMode,'+
            'dstyle,dfld,dfldD,dfldA,fromdate,todate,'+
            'compdstyle,compdfld,compfromdate,comptodate,'+
            'line,cmd,nopage,nost,defs,avgdays,oktosave,'+
            'additiifr,additivfr,addoveifr,addovevfr,'+
            'addloc,addact,addvfr,adddom,addoce,addifr,'+
            'addvfr,additi,addloc,';

	for(var i=0; i<f.length; i++){
	
		if(ignore.toUpperCase().indexOf(','+f.elements[i].name.toUpperCase()+',')>=0){
			continue;
		}
	
		if(f.elements[i].type=='radio'){
			if(lst.indexOf('['+f.elements[i].name+']')>=0) continue;
			obj = eval('f.'+f.elements[i].name);
			lst += ('['+f.elements[i].name + '],');
			for(var n=0; n < obj.length; n++){
				if(obj[n].checked){
		            qry += '{~';
        			qry += obj[n].name;
		        	qry += '^'+obj[n].type;
			        qry += '^'+obj[n].value;
			        qry += '~}';
					break;
				}
			}
		}else if(f.elements[i].type=='checkbox'){
            obj = eval('f.'+f.elements[i].name);
            if(obj.length!=null){
    			for(var n=0; n < obj.length; n++){
	    			if(obj[n].checked){
	    			    if(lst.indexOf('[' + obj[n].name + '&' + obj[n].value + ']')>=0) continue;
		                qry += '{~';
        	    		qry += obj[n].name;
		            	qry += '^'+obj[n].type;
			            qry += '^'+obj[n].value;
    			        qry += '~}';
    			        lst += ('[' + obj[n].name + '&' + obj[n].value + '],');
		    		}
			    }
            }else{
    		    if(f.elements[i].checked){
        		    qry += '{~';
	        		qry += f.elements[i].name;
		        	qry += '^'+f.elements[i].type;
			        qry += '^'+f.elements[i].value;
        			qry += '~}';
	    	    }
            }
		}else if(f.elements[i].type=='button' || f.elements[i].type=='submit'){
		    //do nothing
		}else{
		    qry += '{~';
			qry += f.elements[i].name;
			qry += '^'+f.elements[i].type;
			qry += '^'+f.elements[i].value;
			qry += '~}';
		}
		
	}
	return qry;
}

function setFormDataOLD(f,s){
    var dat=s+"";
    var tmp="";
    var name="";
    var type="";
    var val="";
    var lst="";
    var obj=null;
    while(dat.indexOf("{~")>=0){
        tmp=dat.substring(dat.indexOf("{~")+2,dat.indexOf("~}"));
        dat=dat.substring(dat.indexOf("~}")+1,dat.length);
        name=tmp.substring(0,tmp.indexOf("^"));
        type=tmp.substring(tmp.indexOf("^")+1,tmp.lastIndexOf("^"));
        val=tmp.substring(tmp.lastIndexOf("^")+1,tmp.length);
        for(var i=0; i<f.length; i++){
            if(f.elements[i].type!="checkbox"){
    			if(lst.indexOf('['+f.elements[i].name+']')>=0)
	    			continue;
	        }else{
    			if(lst.indexOf('[' + f.elements[i].name + '$' + f.elements[i].value + ']')>=0)
	    			continue;
			}
			
            if(f.elements[i].name.toUpperCase()==name.toUpperCase() && f.elements[i].type==type){
                //lst += ('['+f.elements[i].name + '],');
                if(f.elements[i].type=="radio"){
                    obj = eval('f.'+f.elements[i].name);
        			for(var n=0; n < obj.length; n++){
        				if(obj[n].value==val){
        				    obj[n].checked=true;
        				    obj[n].click();
		        			break;
				        }
		        	}
		        	lst += ('['+f.elements[i].name + '],');
                }else if(f.elements[i].type=="checkbox" ){//&& f.elements[i].value==val
                    obj = eval('f.'+f.elements[i].name);
                    if(obj.length!=null){
            			for(var n=0; n < obj.length; n++){
            				if(obj[n].value==val){
            				    obj[n].checked=true;
        	    			    //obj[n].click();
		            			break;
				            }
    		        	}
                    }else{
                        f.elements[i].checked=true;
                    }
                    //f.elements[i].checked=true;
                    lst += ('[' + f.elements[i].name + '$' + f.elements[i].value + '],');
                    //f.elements[i].click();
                }else if(f.elements[i].type=="select"){
                    for(var j=0;j<f.elements[i].options.length;j++){
                        if(f.elements[i].options[j].value==val){
                            f.elements[i].options[j].selected=true;
                        }
                    }
                    lst += ('['+f.elements[i].name + '],');
                }else{
                    f.elements[i].value=val;
                    lst += ('['+f.elements[i].name + '],');
                }
            }else{
                if(f.elements[i].type=="radio"){
                    obj = eval('f.'+f.elements[i].name);
        			for(var n=0; n < obj.length; n++){
       				    obj[n].checked=false;
       				    //obj[n].click();
		        	}
                }else if(f.elements[i].type=="checkbox"){
                    f.elements[i].checked=false;
                    //f.elements[i].click();
                }else if(f.elements[i].type=="select"){
                    f.elements[i].selectedIndex=0;
                }else if(f.elements[i].type=='button' || f.elements[i].type=='submit'){
                    //do nothing
                }else{
                    f.elements[i].value="";
                }
            }
        }
    }
}

function setDivValues(type,v){
    var tmp="";
    if(type=="GRP"){
        unselectAllFld();
        while(v.indexOf(",")>=0){
            tmp=v.substring(0,v.indexOf(","));
            v=v.substring(v.indexOf(",")+1,v.length);
            tmp=tmp.replace(/d_yyyymmdd/g,"DATE").replace(/a_yyyymmdd/g,"DATE").replace(/yyyymmdd/g,"DATE").replace(/dep_yyyymm/g,"DATE").replace(/arr_yyyymm/g,"DATE").replace(/d_yyyymm/g,"DATE").replace(/a_yyyymm/g,"DATE").replace(/yyyymm/g,"DATE").replace(/cyear/g,"DATE").replace(/fyear/g,"DATE");
            tmp=tmp.replace(/D_YYYYMMDD/g,"DATE").replace(/A_YYYYMMDD/g,"DATE").replace(/YYYYMMDD/g,"DATE").replace(/DEP_YYYYMM/g,"DATE").replace(/ARR_YYYYMM/g,"DATE").replace(/D_YYYYMM/g,"DATE").replace(/A_YYYYMM/g,"DATE").replace(/YYYYMM/g,"DATE").replace(/CYEAR/g,"DATE").replace(/FYEAR/g,"DATE");
            if(v!="") addFld(tmp);
        }
        v=v.replace(/d_yyyymmdd/g,"DATE").replace(/a_yyyymmdd/g,"DATE").replace(/yyyymmdd/g,"DATE").replace(/dep_yyyymm/g,"DATE").replace(/arr_yyyymm/g,"DATE").replace(/d_yyyymm/g,"DATE").replace(/a_yyyymm/g,"DATE").replace(/yyyymm/g,"DATE").replace(/cyear/g,"DATE").replace(/fyear/g,"DATE");
        v=v.replace(/D_YYYYMMDD/g,"DATE").replace(/A_YYYYMMDD/g,"DATE").replace(/YYYYMMDD/g,"DATE").replace(/DEP_YYYYMM/g,"DATE").replace(/ARR_YYYYMM/g,"DATE").replace(/D_YYYYMM/g,"DATE").replace(/A_YYYYMM/g,"DATE").replace(/YYYYMM/g,"DATE").replace(/CYEAR/g,"DATE").replace(/FYEAR/g,"DATE");
        if(v!="") addFld(v);
    }else if(type=="FLD"){
        unselectAllFld();
        while(v.indexOf(",")>=0){
            tmp=v.substring(0,v.indexOf(","));
            v=v.substring(v.indexOf(",")+1,v.length);
            if(v!="") addFld(tmp);
        }
        if(v!="") addFld(v);
    }else if(type=="RPT"){
        unselectAllRptFld();
        while(v.indexOf(",")>=0){
            tmp=v.substring(0,v.indexOf(","));
            v=v.substring(v.indexOf(",")+1,v.length);
            if(v!="") addRptFld(tmp);
        }
        if(v!="") addRptFld(v);
    }else if(type=="DATE"){
        removeAll();
        while(v.indexOf(",")>=0){
            tmp=v.substring(0,v.indexOf(","));
            v=v.substring(v.indexOf(",")+1,v.length);
            if(v!="") addDate(tmp);
        }
        if(v!="") addDate(v);
    }else if(type=="ADATE"){
        removeAllA();
        while(v.indexOf(",")>=0){
            tmp=v.substring(0,v.indexOf(","));
            v=v.substring(v.indexOf(",")+1,v.length);
            if(v!="") addDateA(tmp);
        }
        if(v!="") addDateA(v);
    }else if(type=="BDATE"){
        removeAllB();
        while(v.indexOf(",")>=0){
            tmp=v.substring(0,v.indexOf(","));
            v=v.substring(v.indexOf(",")+1,v.length);
            if(v!="") addDateB(tmp);
        }
        if(v!="") addDateB(v);
    }else if(type=="COMPDATE"){
        removeCompAll();
        while(v.indexOf(",")>=0){
            tmp=v.substring(0,v.indexOf(","));
            v=v.substring(v.indexOf(",")+1,v.length);
            if(v!="") addCompDate(tmp);
        }
        if(v!="") addCompDate(v);
    }else if(type=="LOC"){
        unselectAllLocidItems();
        Element.hide('nolocitem');
        new Ajax.Updater('selectedLocids', 'loaderQ.asp', { parameters: { area: "loc", keys: v.replace(/,/g," ").replace(/`/g,""), skip: "''" }, insertion: Insertion.Bottom }); 
    }else if(type=="CARR"){
        unselectAllCarrItems();
        Element.hide('nocarritem');
        new Ajax.Updater('selectedCarrs', 'loaderQ.asp', { parameters: { area: "carr", keys: v.replace(/,/g," ").replace(/`/g,""), skip: "''" }, insertion: Insertion.Bottom }); 
    }else if(type=="EQPT"){
        unselectAllEqptItems();
        Element.hide('noeqptitem');
        new Ajax.Updater('selectedEqpts', 'loaderQ.asp', { parameters: { area: "eqpt", keys: v.replace(/,/g," ").replace(/`/g,""), skip: "''" }, insertion: Insertion.Bottom }); 
    }else if(type=="DEP"){
        unselectAllDepItems();
        Element.hide('noDepItem');
       new Ajax.Updater('selectedDeps', 'loaderQ.asp', { parameters: { area: "dep", keys: v.replace(/,/g," ").replace(/`/g,""), skip: "''" }, insertion: Insertion.Bottom }); 
    }else if(type=="ARR"){
        unselectAllArrItems();
        Element.hide('noArrItem');
        new Ajax.Updater('selectedArrs', 'loaderQ.asp', { parameters: { area: "arr", keys: v.replace(/,/g," ").replace(/`/g,""), skip: "''" }, insertion: Insertion.Bottom }); 
    }else if(type=="FST"){
        unselectAllFstItems();
        Element.hide('noFstItem');
        new Ajax.Updater('selectedFsts', 'loaderQ.asp', { parameters: { area: "fst", keys: v.replace(/,/g," ").replace(/`/g,""), skip: "''" }, insertion: Insertion.Bottom }); 
    }else if(type=="OFAC"){
        unselectAllLocidItems();
        Element.hide('nolocitem');
        new Ajax.Updater('selectedLocids', 'loaderQ.asp', { parameters: { area: "fac", keys: v.replace(/,/g," ").replace(/`/g,""), skip: "''" }, insertion: Insertion.Bottom }); 
    }
}

function deleteMyReport(n){
	if(confirm('Do you want to delete this report?')){
		$('myRepID_'+n).remove();
		new Ajax.Request(('processMyReports.asp?mycmd=kill&id='+n),{ method : 'get' });
	}
}

function saveThisReport(section){
	if(document.mainForm.oktosave.value!='y'){
		alert('You have to run report before you can save it!'); 
		return;
	}
	if(document.mainForm.MyReportName.value.replace(/ /g,"")==''){
		alert('Please provide report name!'); 
		return;
	}
	if($('SaveStatus')!=null) $('SaveStatus').update("");
	var inf = $('disp').innerHTML;
    var formData=collectForm(document.mainForm);
	var name = document.mainForm.MyReportName.value;
	var sec = section;

	new Ajax.Updater('SaveStatus', 'processMyReports.asp', { parameters: { mycmd: 'save', section: sec, info: inf, line: formData, label: name }, insertion: Insertion.Bottom }); 
	
	document.mainForm.oktosave.value='n';
	document.mainForm.MyReportName.value='';
}

function removeMyReport(ID) {
	$("myRepID_"+ID).remove();
	if ($('myReportsList').empty()){
		$('nomyreports').show();
	}
}

function removeAllMyReports() {
	var IDs = $('myReportsList').immediateDescendants().collect(function (li) {return li.id.substring(li.id.indexOf('_')+1,li.id.length);});
	IDs.each(removeMyReport);
}

function getMyReports(id){
	if(MRTimer!=null) clearTimeout(MRTimer);
	removeAllMyReports();
	new Ajax.Updater('myReportsList', 'processMyReports.asp', { parameters: { mycmd: 'load', infid: id }, insertion: Insertion.Bottom }); 
	checkMyReportsList();
}

function checkMyReportsList(){
	if ($('myReportsList').empty())	{
		$('nomyreports').show();
	}else{
		$('nomyreports').hide();
	}
	MRTimer = setTimeout("checkMyReportsList()",500);
}

function getMyLoadedInfo(key){
	var ret='';
	for(var i=0;i<myInfoArray.length;i++){
		if(myInfoArray[i][0]==key){
			ret=myInfoArray[i][1];
			break;
		}
	}
	return ret;
}

function addMyInfo(key,info){
	myInfoArray.length++;
	myInfoArray[myInfoArray.length-1]=new Array(key,info);
}

function showMyInfo(id,e){
	var X=0,Y=0;
	var scrollTop = document.body.scrollTop;
	var scrollLeft = document.body.scrollLeft;
	hideMyInfo();
	new Insertion.Bottom('myRepAssist', '<span id="inf"></span>');
	getMyRepInfo(id);
	X= ((e.clientX+200)>$('FrameSize').getWidth()?(e.clientX-200+scrollLeft):(e.clientX+scrollLeft));
	Y= ((e.clientY+$('myRepAssist').getHeight())>$('FrameSize').getHeight()?(e.clientY-$('myRepAssist').getHeight()+scrollTop):(e.clientY+scrollTop));
	$('myRepAssist').setStyle({
		top:Y,
		left:X,
		width:200
	});
	$('myRepAssist').show();
}

function hideMyInfo(){
	$('myRepAssist').hide();
	$('myRepAssist').setStyle({
		top:0,
		left:0
	});
	if($('inf')!=null)
	$('inf').remove();
}

function getMyRepInfo(id){
	var tmp=getMyLoadedInfo(id);
	if(tmp!=''){
		$('inf').update(tmp).setStyle({'font-size':'7pt', 'font-family':'Arial, Helvetica, sans-serif' });
	}else{
		var url = 'processMyReports.asp?mycmd=info&id=' + id;
		new Ajax.Request(url,{
				method: 'get',
				onSuccess: function(transport){
					$('inf').update(transport.responseText).setStyle({'font-size':'7pt', 'font-family':'Arial, Helvetica, sans-serif' });
					addMyInfo(id,transport.responseText); 
				},
				onFailure: function(transport){
					$('inf').update('Information is not available.').setStyle({'font-size':'7pt', 'font-family':'Arial, Helvetica, sans-serif' });
				}
		}); 
	}
}

function setFormData(f,s){
    var dat=s+"";
    var tmp="";
    var name="";
    var type="";
    var val="";
    var obj=null;
    var skip=false;

    for(var i=0; i<f.length; i++){//reset form to defaults
        if(f.elements[i].type=="radio"){
            obj = eval('f.'+f.elements[i].name);
			for(var n=0; n < obj.length; n++){
			    obj[n].checked=false;
			    //obj[n].click();
        	}
        }else if(f.elements[i].type=="checkbox"){
            obj = eval('f.'+f.elements[i].name);
            if(obj.length!=null){
    			for(var n=0; n < obj.length; n++){
   				    obj[n].checked=false;
	        	}
            }else{
                f.elements[i].checked=false;
            }
        }else if(f.elements[i].type=="select"){
            f.elements[i].selectedIndex=0;
        }else if(f.elements[i].type=='button' || f.elements[i].type=='submit'){
            //do nothing
        }else{
            f.elements[i].value="";
        }
    }
    
    for(var i=0; i<f.length; i++){
        dat=s+"";
        //skip=false;
        while(dat.indexOf("{~")>=0){
            //if(skip) break;
            tmp=dat.substring(dat.indexOf("{~")+2,dat.indexOf("~}"));
            dat=dat.substring(dat.indexOf("~}")+1,dat.length);
            name=tmp.substring(0,tmp.indexOf("^"));
            type=tmp.substring(tmp.indexOf("^")+1,tmp.lastIndexOf("^"));
            val=tmp.substring(tmp.lastIndexOf("^")+1,tmp.length);
            if(f.elements[i].name.toUpperCase()==name.toUpperCase() && f.elements[i].type==type){
                if(f.elements[i].type=="radio"){
                    obj = eval('f.'+f.elements[i].name);
        			for(var n=0; n < obj.length; n++){
        				if(obj[n].value==val){
        				    obj[n].checked=true;
        				    obj[n].click();
		        			break;
				        }
		        	}
                }else if(f.elements[i].type=="checkbox" ){
                    obj = eval('f.'+f.elements[i].name);
                    if(obj.length!=null){
            			for(var n=0; n < obj.length; n++){
            				if(obj[n].value==val){
            				    obj[n].checked=true;
		            			break;
				            }
    		        	}
                    }else{
                        f.elements[i].checked=true;
                    }
                }else if(f.elements[i].type=="select"){
                    for(var j=0;j<f.elements[i].options.length;j++){
                        if(f.elements[i].options[j].value==val){
                            f.elements[i].options[j].selected=true;
                        }
                    }
                }else{
                    f.elements[i].value=val;
                }
                //skip=true;
            }

        }
    }
}
