/**
 * @author amalahovsky
 */
/**
 *   @func  getRbnsContent(methodName,versionName,callback,php2js,eventData)
 *   callback 'callback' function with Ajax class methods  output.
 *
 *   if php2js=true function will return methods returns as json data.
 *
 *   So use php2js=true if want fill select or other js object.
 *   
 *	 eventData variable put as seconf param to callback function 
 *
 */
 var _ajax_handler;

if(_ajax_handler==undefined)
	ajax_handler='/engine/framework/rbns_aux/ajax/ajax_handler.php';
else
	ajax_handler=_ajax_handler;

function getRbnsContent(methodName,versionName,callback,php2js,eventData) {
  	varname='rbnsRes';
  	if(!php2js) php2js=0;
  	
    request=' ;'+methodName+';'+versionName+';'+varname+';'+php2js;


    JsHttpRequest.query(
        ajax_handler+'',
        { call_rbns_object:  request,
          _GET:_get  },
        function(responseJS, responseText) {
           
      		if(typeof(callback)=='function'){
		   		callback(responseJS.rbnsRes,eventData);
		    }else{ 
		   		eval(callback+'(responseJS.rbnsRes,eventData)');
		    }
			if (document.getElementById('debug')) {
				document.getElementById('debug').innerHTML = responseText;
			}	
        },
        true // do not disable caching
    );
    return false;
}



function getRbnsContentToInnerHtml(methodName,versionName,id) {
  	varname='rbnsRes';
  	
  	
    request=' ;'+methodName+';'+versionName+';'+varname+';'+0;


    JsHttpRequest.query(
        ajax_handler+'',
        { call_rbns_object:  request,
          _GET:_get  },
        function(responseJS, responseText) {
			if(document.getElementById(id))
            	document.getElementById(id).innerHTML = responseJS.rbnsRes;
      		if(document.getElementById('debug'))
       			document.getElementById('debug').innerHTML = responseText;
        },
        true // do not disable caching
    );
    return false;
}




var _get=new Object;

function setGet(name,value,defValue){
	if(!value && defValue){
  		_get[name]=defValue;
  	}else{
  		_get[name]=value;
  	}
}

/**
 *   @fucntion getRbnsContent2Var(methodName,versionName,targetVar,php2js)
 *   work us getRbnsContent exlude save result in targetVar instead callback.
 	 
 */

function getRbnsContent2Var(methodName,versionName,targetVar,php2js) {
  varname='rbnsRes';
  if(!php2js) php2js=0;
    request=' ;'+methodName+';'+versionName+';'+varname+';'+php2js;


    JsHttpRequest.query(
        ajax_handler+'',
        { call_rbns_object:  request, _GET:_get  },
        function(responseJS, responseText) {
            targetVar=responseJS.rbnsRes;
      if(document.getElementById('debug'))
       document.getElementById('debug').innerHTML = responseText;
        },
        true // do not disable caching
    );
    return false;
}




function getRbnsContentByForm(formObject,methodName,versionName,callback,php2js,eventData) {
  varname='rbnsRes';
  if(!php2js) php2js=0;
    request=' ;'+methodName+';'+versionName+';'+varname+';'+php2js;


    JsHttpRequest.query(
        ajax_handler+'',
        { call_rbns_object:  request, 
          _GET:_get ,
          q:formObject   },
        function(responseJS, responseText) {
           if(document.getElementById('debug'))
       document.getElementById('debug').innerHTML = responseText;
           if(responseJS.rbnsRes)
		   if(typeof(callback)=='function'){
		   		callback(responseJS.rbnsRes,eventData);
		   }else{ 
		   		eval(callback+'(responseJS.rbnsRes,eventData)');
		   }

        },
        true // do not disable caching
    );
    return false;
}




// html service func
//  use it with  getRbnsContent(...php2js=true) to fill select
function fillSelectByObject(idselect,ob,selectedVal){
  selectEl=document.getElementById(idselect);
  if(ob.length ){
  	clearSelect(selectEl);
    for (var i=0;i<ob.length;i++) {
          addOption(selectEl,i,ob[i],selectedVal);
    }
  }
  else if(ob){
    clearSelect(selectEl);
    for (var k in ob) {
          addOption(selectEl,k,ob[k],selectedVal);
    }
  }

}





function Dump(d,l) {
    if (l == null) l = 1;
    var s = '';
    if (typeof(d) == "object") {
        s += typeof(d) + " {\n";
        for (var k in d) {
            for (var i=0; i<l; i++) s += "  ";
            s += k+": " + Dump(d[k],l+1);
        }
        for (var i=0; i<l-1; i++) s += "  ";
        s += "}\n"
    } else {
        s += "" + d + "\n";
    }
    return s;
}






function setSelected(el,val){

    for(i=0;i<el.options.length;i++){
      if(el.options[i].value==val){

        el.selectedIndex=i;
        break;
      };
  }

}






function clearSelect(el){
    while(el.options.length>0){
            el.remove(0);
    }
   // addOption(el,'');
}


function addOption(sel,value,text,selectedValue ){
    var oOption = document.createElement("OPTION");
    if(text==undefined) { oOption.text=value;}
    else        { oOption.text=text;}
    oOption.value=value;
    if(value==selectedValue) oOption.selected=true;
     try { sel.add(oOption); } catch(e) {
       try { sel.add(oOption,null); } catch(e) {}
     }


}



