


// SAFIR FORM

YAHOO.namespace( 'safir.form' );

YAHOO.safir.form = function(o) {
    this.div = document.getElementById(o.responseEl);
    this.url = o.action;
    this.form = o.formRef;
    this.request;
    this.loading = o.loading;
    if(this.loading == undefined){
    	this.loading = 'true';
    }
}

YAHOO.safir.form.evaluateJs =  function(obj)
    {
        var scriptTags = obj.getElementsByTagName('SCRIPT');
        var string = '';
        var jsCode = '';
        for(var no=0;no<scriptTags.length;no++){
            if(scriptTags[no].src){
                var head = document.getElementsByTagName("head")[0];
                var scriptObj = document.createElement("script");

                scriptObj.setAttribute("type", "text/javascript");
                scriptObj.setAttribute("src", scriptTags[no].src);
            }else{
                if(navigator.userAgent.indexOf("Opera") != -1){
                    jsCode = jsCode + scriptTags[no].text + '\n';
                }
                else
                    jsCode = jsCode + scriptTags[no].innerHTML;
            }
        }
        if(jsCode) YAHOO.safir.form.installScript(jsCode);
    };

YAHOO.safir.form.installScript = function ( script )
    {
        try{
            if (!script)
                return;
            if (window.execScript){
                window.execScript(script)
            }else if(window.jQuery && jQuery.browser.safari){ // safari detection in jQuery
                window.setTimeout(script,0);
            }else{
                window.setTimeout( script, 0 );
            }
        }catch(e){

        }
    };

function encode_utf8( s )
{
  return unescape( encodeURIComponent( s ) );
}

YAHOO.safir.form.evaluateCss = function(obj)
    {
        //obj = DHTMLSuite.getEl(obj);
        var cssTags = obj.getElementsByTagName('STYLE');
        var head = document.getElementsByTagName('HEAD')[0];
        for(var no=0;no<cssTags.length;no++){
            head.appendChild(cssTags[no]);
        }
    };

YAHOO.safir.form.prototype =
{

handleSuccess : function(o){
    if(o.responseText !== undefined){
        this.form.div.innerHTML = o.responseText;
        YAHOO.safir.form.evaluateCss(this.form.div);
        YAHOO.safir.form.evaluateJs(this.form.div);
        if(this.form.loading == 'true'){ 
        	YAHOO.util.Dom.setStyle(this.form.div.id+"UPDIV",'display','none');
        	YAHOO.util.Dom.setStyle("imageLoading",'visibility','hidden');
        }
    }
},

handleFailure : function(o){
    alert("Transaction problem ("+o.status+") or timeOut");
    if(this.form.loading == 'true'){ 
    	YAHOO.util.Dom.setStyle(this.form.div.id+"UPDIV",'display','none');
    	YAHOO.util.Dom.setStyle("imageLoading",'visibility','hidden');
    }
},

    submit : function(){

        var callback = {
          success:this.handleSuccess,
          failure:this.handleFailure,
          argument:['foo','bar'],
          timeout: 600000,
          form:this
        };

        if(this.loading == 'true'){        
        	YAHOO.util.Dom.setStyle("imageLoading",'visibility','visible');
        	
			var upDiv = YAHOO.util.Dom.get(this.div.id+"UPDIV");
			if(upDiv == undefined){
				upDiv = document.createElement('div');
				upDiv.id = this.div.id+"UPDIV";
				document.body.appendChild(upDiv);
				YAHOO.util.Dom.setStyle(upDiv.id,'position','absolute');
				YAHOO.util.Dom.addClass(upDiv.id,'formSubmit');
			}
			YAHOO.util.Dom.setStyle(upDiv.id,'width',YAHOO.util.Dom.getStyle(this.div.id,'width'));
			YAHOO.util.Dom.setStyle(upDiv.id,'height',YAHOO.util.Dom.getStyle(this.div.id,'height'));
			YAHOO.util.Dom.setStyle(upDiv.id,'display','block');
			YAHOO.util.Dom.setX(upDiv.id,YAHOO.util.Dom.getX(this.div.id));
			YAHOO.util.Dom.setY(upDiv.id,YAHOO.util.Dom.getY(this.div.id));
			
        }

        if(this.form != undefined && this.form != ''){
            YAHOO.util.ConnectSafir.setForm(this.form);
        } else {
            if(navigator.userAgent.indexOf("Firefox/2") == -1){
                var url = this.url;
                var ind = url.indexOf("?");
                if(ind != -1){
                	var urls = url.substring(0,ind);
	                var tab = url.substring(ind,url.length).split("&");
	                url = urls;
	                for (var i=0; i<tab.length; i++) {
	                    var tab2= tab[i].split("=");
	                    if(i != 0){
	                        url = url+"&";
	                    }
	                    if(tab2[1] != undefined){
	                    	value = tab2[1];
	                    	if(value.indexOf("%") != -1){
	                    		value = value.replace(/%/g,'%25');
	                    	}
	                    	value = value.replace(/#26/g,'%26');
	                    	value = value.replace(/#3d/g,'%3d');
	                    	url = url+tab2[0]+"="+encode_utf8(value);
	                    }
	                }
                }
                this.url = url;
            }
        }

        this.request = YAHOO.util.ConnectSafir.asyncRequest('POST', this.url, callback, '');
    }
}

function encode_utf8( s )
{
  return unescape( encodeURIComponent( s ) );
}

function pre_encode(val){
	if(val.indexOf("&") != -1){
  		val = val.replace(/&/g,'#26');
  	}
  	if(val.indexOf("=") != -1){
  		val = val.replace(/=/g,'#3d');
  	}
	return val;
}

function ajax_loadContent(div,url){	
    var myForm = new YAHOO.safir.form({responseEl:div,action:url, formRef:'', loading:'true'});
    myForm.submit();    
    querySection = url+'#'+div;
    YAHOO.util.History.navigate("safir", url+'#'+div);  
}

function ajax_loadContentNoHistory(div,url){	
    var myForm = new YAHOO.safir.form({responseEl:div,action:url, formRef:'', loading:'true'});
    myForm.submit();    
}

function ajax_loadContentNoLoadingStatus(div,url){
    var myForm = new YAHOO.safir.form({responseEl:div,action:url, formRef:'', loading:'false'});
    myForm.submit();
    querySection = url+'#'+div;
    YAHOO.util.History.navigate("safir", url+'#'+div);  
}

function copyValue(fromID,toID){
    YAHOO.util.Dom.get(toID).value = YAHOO.util.Dom.get(fromID).value;
}

function expandDiv(divID){
    YAHOO.util.Dom.setStyle("div_"+divID,"display","block");
    YAHOO.util.Dom.setStyle("expand_"+divID,"display","none");
    YAHOO.util.Dom.setStyle("collapse_"+divID,"display","block");
}
function collapseDiv(divID){
    YAHOO.util.Dom.setStyle("div_"+divID,"display","none");
    YAHOO.util.Dom.setStyle("expand_"+divID,"display","block");
    YAHOO.util.Dom.setStyle("collapse_"+divID,"display","none");

}



