var closeImage  = 'zoom_out.gif';
var openImage   = 'zoom_in.gif';
var loadingImage= 'loading.gif';
var imagePath   = '/ctic/Layouts/Images/';

function XgetRealId(idString){

return idString.split('#').join('');

}

//-------------------------------------------------------------------------------------

function XchangeImage(callerObjectImage, openClose){
    
    if(callerObjectImage.src){ //possible image
    
    imgBits = callerObjectImage.src.split('/');
    
        if(imgBits[imgBits.length - 1] == closeImage || imgBits[imgBits.length - 1] == openImage){

            callerObjectImage.src = imagePath+openClose;
        
        }
    }
    
}

//-------------------------------------------------------------------------------------

function XselectList(){
    //alert(jsonHashData);

this.markedVar;
this.fieldCalled;

this.render = function(fieldId, jsonHashData, jsonMarked){  

this.markedVar = jsonMarked;
this.fieldCalled = fieldId;
//alert(this.markedVar);
    fieldNow = document.getElementById(XgetRealId(this.fieldCalled));

        if(fieldNow){
            
                    $.each( jsonHashData, function(sValue, sText){
                            
                    var newElem = document.createElement("option");
                    newElem.text = sText;
                    newElem.value = sValue;
                    fieldNow.options.add(newElem);
                    
                    });
                    
                    this.setMarked();
        }
 }
    

        this.setMarked = function (){
            
            fieldNow = document.getElementById(XgetRealId(this.fieldCalled));
        //alert(fieldNow);
            
        tmpx = '';
                for(xx=0; xx<fieldNow.options.length; xx++){
                    
                        for(sel=0; sel<this.markedVar.length; sel++){
                                             
                            tmpx = tmpx + this.markedVar[sel].toString() + ':';               
                                if(fieldNow.options[xx].value.toString() == this.markedVar[sel].toString()){
                                    
                                    fieldNow.options[xx].selected = true;
                                }
                            
                        }
                    
                }
            //alert(tmpx);
        }

}

//-------------------------------------------------------------------------------------

function XshowFromServer(containerId, callerObjectImage, serverScript, clearHtmlBefore){

    tempContainer = document.getElementById(XgetRealId(containerId));
    
    if(!tempContainer.serverAction){
    tempContainer.serverAction = serverScript;
    $(containerId).html('');
    }

            if($(containerId).html()==''){ //
            
            $(containerId).html('<div align="center"><img src="'+imagePath+loadingImage+'"></div>');
                
                if(callerObjectImage != ''){
                XchangeImage(callerObjectImage, closeImage);
                }
                
            }else if(!clearHtmlBefore){
                
            $(containerId).fadeOut("slow", function(){ $(containerId).html(''); });
            
                if(callerObjectImage != ''){
                XchangeImage(callerObjectImage, openImage);
                }
            
            return false;
            
            }
            
            $.get(serverScript, function(data){
                                                                     //alert(data);
                                                    $(containerId).html(data);                                                              
                                                    $(containerId).fadeIn("slow");
                                                    
                                                    });

            return true;

}
//-------------------------------------------------------------------------------------
function Xreload(containerId){
    
    
    tempContainer = document.getElementById(XgetRealId(containerId));
    
    if(tempContainer.serverAction){ 
    $(containerId).html('');
    XshowFromServer(containerId, '', tempContainer.serverAction);
    }
    
    
}
//-------------------------------------------------------------------------------------
function XDeleteRecord(containerId, callerObjectImage, serverScript){

temp = document.getElementById(XgetRealId(containerId));
    
    if(XPromt('delete record?')){
    $(containerId).html('');
        if(XshowFromServer(containerId, '', serverScript)){ //calling delete script
        
            if(temp.serverAction){
            $(containerId).html('');    
            tempAction = temp.serverAction;
            temp.serverAction = false;
            XshowFromServer(containerId, '', tempAction); //calling previous script
            }
            
        }
        
    }

}


//-------------------------------------------------------------------------------------
function XPromt(message){
    
return confirm(message);
    
}

//-------------------------------------------------------------------------------------
function XDeletePlain(destination){
    
    if(XPromt('delete record?')){
        if(XPromt("Last warning:\n\ndelete record?")){
    window.location = destination;
        }
    }

}
//-------------------------------------------------------------------------------------

function XshowHide(containerId, callerObjectImage){

    if(!callerObjectImage.XnextAction){
    callerObjectImage.XnextAction = "open";
    }
    
    openclose = closeImage;
    
    if(callerObjectImage.XnextAction == 'open'){
    $(containerId).fadeIn("slow");
    callerObjectImage.XnextAction = "close";
    }else{
    $(containerId).fadeOut("close");
    callerObjectImage.XnextAction = "open";
    openclose = openImage;
    }
    
    XchangeImage(callerObjectImage, openclose);
    
}
//-------------------------------------------------------------------------------------

function XapplyCallback(functionName, params){
    
    if(functionName){
        return functionName(params);
    }
return false;   
}

//-------------------------------------------------------------------------------------

function XsubmitForm(formId, serverScript, validate, afterAction, extraParams){
    

    
    if(validate){
        
        if(!XvalidateFields(formId)){
        return false;       
        }
    
    }
    
    //alert($(formId).attr('name'));
    var data = $(formId).formToArray();
    
        $(formId).ajaxError(function(request){
    alert('Problem finding: '+serverScript);
    });
    
    var httpreturned = $.post(serverScript, data, function(data) { 
                                                                            
                                                                                    if(data == 'saved'){
                                                                                    $(formId).fadeOut("slow", XapplyCallback(afterAction, extraParams));
                                                                                    }else{                                                                      
                                                                                    alert('Server returned: '+data);
                                                                                    }
                                                                                    
                                                                                } 
                                                                                
                                                                            );

    
}

//-------------------------------------------------------------------------------------
function XpopUp(theurl, x, y){

xwindow = window.open(theurl, 'winno', 'scrollbars=yes,width='+x+',height='+y); 
xwindow.focus();
}




