
function cpaint(){this.version='2.0.3';var config=new Array();config['debugging']=-1;config['proxy_url']='';config['transfer_mode']='GET';config['async']=true;config['response_type']='OBJECT';config['persistent_connection']=false;config['use_cpaint_api']=true;var stack_count=0;this.capable=test_ajax_capability();this.set_debug=function(){if(typeof arguments[0]=='boolean'){if(arguments[0]===true){config['debugging']=1;}else{config['debugging']=0;}}else if(typeof arguments[0]=='number'){config['debugging']=Math.round(arguments[0]);}}
this.set_proxy_url=function(){if(typeof arguments[0]=='string'){config['proxy_url']=arguments[0];}}
this.set_transfer_mode=function(){if(arguments[0].toUpperCase()=='GET'||arguments[0].toUpperCase()=='POST'){config['transfer_mode']=arguments[0].toUpperCase();}}
this.set_async=function(){if(typeof arguments[0]=='boolean'){config['async']=arguments[0];}}
this.set_response_type=function(){if(arguments[0].toUpperCase()=='TEXT'||arguments[0].toUpperCase()=='XML'||arguments[0].toUpperCase()=='OBJECT'||arguments[0].toUpperCase()=='E4X'||arguments[0].toUpperCase()=='JSON'){config['response_type']=arguments[0].toUpperCase();}}
this.set_persistent_connection=function(){if(typeof arguments[0]=='boolean'){config['persistent_connection']=arguments[0];}}
this.set_use_cpaint_api=function(){if(typeof arguments[0]=='boolean'){config['use_cpaint_api']=arguments[0];}}
function test_ajax_capability(){var cpc=new cpaint_call(0,config,this.version);return cpc.test_ajax_capability();}
this.call=function(){var use_stack=-1;if(config['persistent_connection']==true&&__cpaint_stack[0]!=null){switch(__cpaint_stack[0].get_http_state()){case-1:use_stack=0;debug('no XMLHttpObject object to re-use for persistence, creating new one later',2);break;case 4:use_stack=0
debug('re-using the persistent connection',2);break;default:debug('the persistent connection is in use - skipping this request',2);}}else if(config['persistent_connection']==true){use_stack=0;__cpaint_stack[use_stack]=new cpaint_call(use_stack,config,this.version);debug('no cpaint_call object available for re-use, created new one',2);}else{use_stack=stack_count;__cpaint_stack[use_stack]=new cpaint_call(use_stack,config,this.version);debug('no cpaint_call object created new one',2);}
if(use_stack!=-1){__cpaint_stack[use_stack].set_client_callback(arguments[2]);if(config['proxy_url']!=''){__cpaint_stack[use_stack].call_proxy(arguments);}else{__cpaint_stack[use_stack].call_direct(arguments);}
stack_count++;debug('stack size:'+__cpaint_stack.length,2);}}
var debug=function(message,debug_level){var prefix='[CPAINT Debug] ';if(debug_level<1){prefix='[CPAINT Error] ';}
if(config['debugging']>=debug_level){alert(prefix+message);}}}
var __cpaint_stack=new Array();var __cpaint_transformer=new cpaint_transformer();function cpaint_call(){var version=arguments[2];var config=new Array();config['debugging']=arguments[1]['debugging'];config['proxy_url']=arguments[1]['proxy_url'];config['transfer_mode']=arguments[1]['transfer_mode'];config['async']=arguments[1]['async'];config['response_type']=arguments[1]['response_type'];config['persistent_connection']=arguments[1]['persistent_connection'];config['use_cpaint_api']=arguments[1]['use_cpaint_api'];var httpobj=false;var client_callback;var stack_id=arguments[0];this.set_client_callback=function(){if(typeof arguments[0]=='function'){client_callback=arguments[0];}}
this.get_http_state=function(){var return_value=-1;if(typeof httpobj=='object'){return_value=httpobj.readyState;}
return return_value;}
this.call_direct=function(call_arguments){var url=call_arguments[0];var remote_method=call_arguments[1];var querystring='';var i=0;if(url=='SELF'){url=document.location.href;}
if(config['use_cpaint_api']==true){for(i=3;i<call_arguments.length;i++){if((typeof call_arguments[i]=='string'&&call_arguments[i]!=''&&call_arguments[i].search(/^\s+$/g)==-1)&&!isNaN(call_arguments[i])&&isFinite(call_arguments[i])){querystring+='&cpaint_argument[]='+encodeURIComponent(JSON.stringify(Number(call_arguments[i])));}else{querystring+='&cpaint_argument[]='+encodeURIComponent(JSON.stringify(call_arguments[i]));}}
querystring+='&cpaint_response_type='+config['response_type'];if(config['transfer_mode']=='GET'){if(url.indexOf('?')!=-1){url=url+'&cpaint_function='+remote_method+querystring;}else{url=url+'?cpaint_function='+remote_method+querystring;}}else{querystring='cpaint_function='+remote_method+querystring;}}else{for(i=3;i<call_arguments.length;i++){if(i==3){querystring+=encodeURIComponent(call_arguments[i]);}else{querystring+='&'+encodeURIComponent(call_arguments[i]);}}
if(config['transfer_mode']=='GET'){url=url+querystring;}}
get_connection_object();debug('opening connection to "'+url+'"',1);httpobj.open(config['transfer_mode'],url,config['async']);if(config['transfer_mode']=='POST'){try{httpobj.setRequestHeader('Content-Type','application/x-www-form-urlencoded');}catch(cp_err){debug('POST cannot be completed due to incompatible browser. Use GET as your request method.',0);}}
httpobj.setRequestHeader('X-Powered-By','CPAINT v'+version+' ::http://sf.net/projects/cpaint');httpobj.onreadystatechange=callback;if(config['transfer_mode']=='GET'){httpobj.send(null);}else{debug('sending query:'+querystring,1);httpobj.send(querystring);}
if(config['async']==true){callback();}}
this.call_proxy=function(call_arguments){var proxyscript=config['proxy_url'];var url=call_arguments[0];var remote_method=call_arguments[1];var querystring='';var i=0;var querystring_argument_prefix='cpaint_argument[]=';if(config['use_cpaint_api']==false){querystring_argument_prefix='';}
for(i=3;i<call_arguments.length;i++){if(config['use_cpaint_api']==true){if((typeof call_arguments[i]=='string'&&call_arguments[i]!=''&&call_arguments[i].search(/^\s+$/g)==-1)&&!isNaN(call_arguments[i])&&isFinite(call_arguments[i])){querystring+=encodeURIComponent(querystring_argument_prefix+JSON.stringify(Number(call_arguments[i]))+'&');}else{querystring+=encodeURIComponent(querystring_argument_prefix+JSON.stringify(call_arguments[i])+'&');}}else{querystring+=encodeURIComponent(querystring_argument_prefix+call_arguments[i]+'&');}}
if(config['use_cpaint_api']==true){querystring+=encodeURIComponent('&cpaint_function='+remote_method);querystring+=encodeURIComponent('&cpaint_responsetype='+config['response_type']);}
if(config['transfer_mode']=='GET'){proxyscript+='?cpaint_remote_url='+encodeURIComponent(url)
+'&cpaint_remote_query='+querystring
+'&cpaint_remote_method='+config['transfer_mode']
+'&cpaint_response_type='+config['response_type'];}else{querystring='cpaint_remote_url='+encodeURIComponent(url)
+'&cpaint_remote_query='+querystring
+'&cpaint_remote_method='+config['transfer_mode']
+'&cpaint_response_type='+config['response_type'];}
get_connection_object();debug('opening connection to proxy "'+proxyscript+'"',1);httpobj.open(config['transfer_mode'],proxyscript,config['async']);if(config['transfer_mode']=='POST'){try{httpobj.setRequestHeader('Content-Type','application/x-www-form-urlencoded');}catch(cp_err){debug('POST cannot be completed due to incompatible browser. Use GET as your request method.',0);}}
httpobj.setRequestHeader('X-Powered-By','CPAINT v'+version);httpobj.onreadystatechange=callback;if(config['transfer_mode']=='GET'){httpobj.send(null);}else{debug('sending query:'+querystring,1);httpobj.send(querystring);}
if(config['async']==false){callback();}}
this.test_ajax_capability=function(){return get_connection_object();}
var get_connection_object=function(){var return_value=false;var new_connection=false;if(config['persistent_connection']==false){debug('Using new connection object',1);new_connection=true;}else{debug('Using shared connection object.',1);if(typeof httpobj!='object'){debug('Getting new persistent connection object.',1);new_connection=true;}}
if(new_connection==true){try{httpobj=new XMLHttpRequest();}catch(e1){try{httpobj=new ActiveXObject('Msxml2.XMLHTTP');}catch(e){try{httpobj=new ActiveXObject('Microsoft.XMLHTTP');}catch(oc){httpobj=null;}}}
if(!httpobj){debug('Could not create connection object',0);}else{return_value=true;}}
if(httpobj.readyState!=4){httpobj.abort();}
return return_value;}
var callback=function(){var response=null;if(httpobj.readyState==4&&httpobj.status==200){debug(httpobj.responseText,1);debug('using response type '+config['response_type'],2);switch(config['response_type']){case'XML':debug(httpobj.responseXML,2);response=__cpaint_transformer.xml_conversion(httpobj.responseXML);break;case'OBJECT':response=__cpaint_transformer.object_conversion(httpobj.responseXML);break;case'TEXT':response=__cpaint_transformer.text_conversion(httpobj.responseText);break;case'E4X':response=__cpaint_transformer.e4x_conversion(httpobj.responseText);break;case'JSON':response=__cpaint_transformer.json_conversion(httpobj.responseText);break;default:debug('invalid response type \''+response_type+'\'',0);}
if(response!=null&&typeof client_callback=='function'){client_callback(response,httpobj.responseText);}
remove_from_stack();}else if(httpobj.readyState==4&&httpobj.status!=200){debug('invalid HTTP response code \''+Number(httpobj.status)+'\'',0);}}
var remove_from_stack=function(){if(typeof stack_id=='number'&&__cpaint_stack[stack_id]&&config['persistent_connection']==false){__cpaint_stack[stack_id]=null;}}
var debug=function(message,debug_level){var prefix='[CPAINT Debug] ';if(config['debugging']<1){prefix='[CPAINT Error] ';}
if(config['debugging']>=debug_level){alert(prefix+message);}}}
function cpaint_transformer(){this.object_conversion=function(xml_document){var return_value=new cpaint_result_object();var i=0;var firstNodeName='';if(typeof xml_document=='object'&&xml_document!=null){for(i=0;i<xml_document.childNodes.length;i++){if(xml_document.childNodes[i].nodeType==1){firstNodeName=xml_document.childNodes[i].nodeName;break;}}
var ajax_response=xml_document.getElementsByTagName(firstNodeName);return_value[firstNodeName]=new Array();for(i=0;i<ajax_response.length;i++){var tmp_node=create_object_structure(ajax_response[i]);tmp_node.id=ajax_response[i].getAttribute('id')
return_value[firstNodeName].push(tmp_node);}}else{debug('received invalid XML response',0);}
return return_value;}
this.xml_conversion=function(xml_document){return xml_document;}
this.text_conversion=function(text){return decode(text);}
this.e4x_conversion=function(text){text=text.replace(/^\<\?xml[^>]+\>/,'');return new XML(text);}
this.json_conversion=function(text){return JSON.parse(text);}
var create_object_structure=function(stream){var return_value=new cpaint_result_object();var node_name='';var i=0;var attrib=0;if(stream.hasChildNodes()==true){for(i=0;i<stream.childNodes.length;i++){node_name=stream.childNodes[i].nodeName;node_name=node_name.replace(/[^a-zA-Z0-9_]*/g,'');if(typeof return_value[node_name]!='object'){return_value[node_name]=new Array();}
if(stream.childNodes[i].nodeType==1){var tmp_node=create_object_structure(stream.childNodes[i]);for(attrib=0;attrib<stream.childNodes[i].attributes.length;attrib++){tmp_node.set_attribute(stream.childNodes[i].attributes[attrib].nodeName,stream.childNodes[i].attributes[attrib].nodeValue);}
return_value[node_name].push(tmp_node);}else if(stream.childNodes[i].nodeType==3){return_value.data=decode(String(stream.firstChild.data));}}}
return return_value;}
var decode=function(rawtext){var plaintext='';var i=0;var c1=0;var c2=0;var c3=0;var u=0;var t=0;while(i<rawtext.length){if(rawtext.charAt(i)=='\\'&&rawtext.charAt(i+1)=='u'){u=0;for(j=2;j<6;j+=1){t=parseInt(rawtext.charAt(i+j),16);if(!isFinite(t)){break;}
u=u*16+t;}
plaintext+=String.fromCharCode(u);i+=6;}else{plaintext+=rawtext.charAt(i);i++;}}
if(plaintext!=''&&plaintext.search(/^\s+$/g)==-1&&!isNaN(plaintext)&&isFinite(plaintext)){plaintext=Number(plaintext);}
return plaintext;}}
function cpaint_result_object(){this.id=0;this.data='';var __attributes=new Array();this.find_item_by_id=function(){var return_value=null;var type=arguments[0];var id=arguments[1];var i=0;if(this[type]){for(i=0;i<this[type].length;i++){if(this[type][i].get_attribute('id')==id){return_value=this[type][i];break;}}}
return return_value;}
this.get_attribute=function(){var return_value=null;var id=arguments[0];if(typeof __attributes[id]!='undefined'){return_value=__attributes[id];}
return return_value;}
this.set_attribute=function(){__attributes[arguments[0]]=arguments[1];}}
Array.prototype.______array='______array';var JSON={org:'http://www.JSON.org',copyright:'(c)2005 JSON.org',license:'http://www.crockford.com/JSON/license.html',stringify:function(arg){var c,i,l,s='',v;var numeric=true;switch(typeof arg){case'object':if(arg){if(arg.______array=='______array'){for(i in arg){if(i!='______array'&&(isNaN(i)||!isFinite(i))){numeric=false;break;}}
if(numeric==true){for(i=0;i<arg.length;++i){if(typeof arg[i]!='undefined'){v=this.stringify(arg[i]);if(s){s+=',';}
s+=v;}else{s+=',null';}}
return'['+s+']';}else{for(i in arg){if(i!='______array'){v=arg[i];if(typeof v!='undefined'&&typeof v!='function'){v=this.stringify(v);if(s){s+=',';}
s+=this.stringify(i)+':'+v;}}}
return'{'+s+'}';}}else if(typeof arg.toString!='undefined'){for(i in arg){v=arg[i];if(typeof v!='undefined'&&typeof v!='function'){v=this.stringify(v);if(s){s+=',';}
s+=this.stringify(i)+':'+v;}}
return'{'+s+'}';}}
return'null';case'number':return isFinite(arg)?String(arg):'null';case'string':l=arg.length;s='"';for(i=0;i<l;i+=1){c=arg.charAt(i);if(c>=' '){if(c=='\\'||c=='"'){s+='\\';}
s+=c;}else{switch(c){case'\b':s+='\\b';break;case'\f':s+='\\f';break;case'\n':s+='\\n';break;case'\r':s+='\\r';break;case'\t':s+='\\t';break;default:c=c.charCodeAt();s+='\\u00'+Math.floor(c/16).toString(16)+
(c%16).toString(16);}}}
return s+'"';case'boolean':return String(arg);default:return'null';}},parse:function(text){var at=0;var ch=' ';function error(m){throw{name:'JSONError',message:m,at:at-1,text:text};}
function next(){ch=text.charAt(at);at+=1;return ch;}
function white(){while(ch!=''&&ch<=' '){next();}}
function str(){var i,s='',t,u;if(ch=='"'){outer:while(next()){if(ch=='"'){next();return s;}else if(ch=='\\'){switch(next()){case'b':s+='\b';break;case'f':s+='\f';break;case'n':s+='\n';break;case'r':s+='\r';break;case't':s+='\t';break;case'u':u=0;for(i=0;i<4;i+=1){t=parseInt(next(),16);if(!isFinite(t)){break outer;}
u=u*16+t;}
s+=String.fromCharCode(u);break;default:s+=ch;}}else{s+=ch;}}}
error("Bad string");}
function arr(){var a=[];if(ch=='['){next();white();if(ch==']'){next();return a;}
while(ch){a.push(val());white();if(ch==']'){next();return a;}else if(ch!=','){break;}
next();white();}}
error("Bad array");}
function obj(){var k,o={};if(ch=='{'){next();white();if(ch=='}'){next();return o;}
while(ch){k=str();white();if(ch!=':'){break;}
next();o[k]=val();white();if(ch=='}'){next();return o;}else if(ch!=','){break;}
next();white();}}
error("Bad object");}
function assoc(){var k,a=[];if(ch=='<'){next();white();if(ch=='>'){next();return a;}
while(ch){k=str();white();if(ch!=':'){break;}
next();a[k]=val();white();if(ch=='>'){next();return a;}else if(ch!=','){break;}
next();white();}}
error("Bad associative array");}
function num(){var n='',v;if(ch=='-'){n='-';next();}
while(ch>='0'&&ch<='9'){n+=ch;next();}
if(ch=='.'){n+='.';while(next()&&ch>='0'&&ch<='9'){n+=ch;}}
if(ch=='e'||ch=='E'){n+='e';next();if(ch=='-'||ch=='+'){n+=ch;next();}
while(ch>='0'&&ch<='9'){n+=ch;next();}}
v=+n;if(!isFinite(v)){error("Bad number");}else{return v;}}
function word(){switch(ch){case't':if(next()=='r'&&next()=='u'&&next()=='e'){next();return true;}
break;case'f':if(next()=='a'&&next()=='l'&&next()=='s'&&next()=='e'){next();return false;}
break;case'n':if(next()=='u'&&next()=='l'&&next()=='l'){next();return null;}
break;}
error("Syntax error");}
function val(){white();switch(ch){case'{':return obj();case'[':return arr();case'<':return assoc();case'"':return str();case'-':return num();default:return ch>='0'&&ch<='9'?num():word();}}
return val();}};var isIE=(navigator.appName.indexOf("Microsoft") !=-1);
var isNS=(navigator.appName.indexOf("Netscape") !=-1);
if(! window.Node)
{
var Node={
ELEMENT_NODE:		1,
ATTRIBUTE_NODE:		2,
TEXT_NODE:			3,
COMMENT_NODE:		8,
DOCUMENT_NODE:		9,
DOCUMENT_FRAGMENT_NODE:	11
}
}
String.prototype.ltrim=function()
{
for (var i=0;i < this.length;i++)
if(this.charAt(i) !=' ')
return this.substr(i);
return '';
}
String.prototype.rtrim=function()
{
for (var i=this.length - 1;i >=0;i--)
if(this.charAt(i) !=' ')
return this.substr(0, i+1);
return '';
}
String.prototype.trim=function()
{
return this.rtrim().ltrim();
}
String.prototype.remove_unicode=function()
{
var result=this;
var replacements={"\u0300" :"'",
"\u0301" :"'",
"\u2018" :"'",
"\u2019" :"'",
"\u201A" :"'",
"\u201B" :"'",
"\u201C" :'"',
"\u201D" :'"',
"\u201E" :'"',
"\u2032" :"'",
"\u2033" :'"'};
for (var i in replacements)
result=result.replace(i, replacements[i], 'g');
for (var i=0;i < result.length;i++)
if(result.charCodeAt(i) > 255)
result=result.replace(result.charAt(i), '?', 'g');
return result;
}
var cp=new cpaint();
if(cp.capable !=true)
alert('your browser does not support the features on this page');
cp.set_response_type('XML');
cp.set_transfer_mode('POST');
cp.set_debug(0);
function CallCounter()
{
this.value=0;
CallCounter.prototype.increment=function()
{
this.value++;
document.body.style.cursor='wait'
}
CallCounter.prototype.decrement=function()
{
this.value=(this.value > 1) ? this.value - 1 :0;
if(! this.value)
document.body.style.cursor='';
}
CallCounter.prototype.set=function(value)
{
if(value < 0)
return false;
this.value=value;
document.body.style.cursor=(this.value) ? 'wait' :'';
}
CallCounter.prototype.busy=function(){return (this.value > 0)};
}
var ajax_entry='/ajax.php';
var ajax_call_counter=new CallCounter();
function global_init()
{
}
function check_auth(result, raw_result)
{
return true;
}
function get_from_url(param)
{
var url=window.location.pathname;
var params=url.split('/');
params=params[params.length - 1];
params=params.split(',');
if(params[0]==param)
return params[1];
else
return null;
}
function encode_array(arr)
{
if(! arr)
return;
var encoded='';
for (var i=0;i < arr.length;i++)
{
if(typeof(arr[i])=='Array')
{
for (var j=0;j < arr[i].length;j++)
{
encoded+=arr[i][j];
if(j !=arr[i].length - 1)
encoded+='$';
}
}
else
{
encoded+=arr[i];
}
if(i !=arr.length - 1)
encoded+='#';
}
return encoded;
}
function enable_button(enable, btn, html_btn_id, timeout)
{
if(! btn)
if(html_btn_id)
var btn=document.getElementById(html_btn_id);
else
return;
if(enable)
btn.style.display='block';
else
{
btn.style.display='none';
if(timeout)
window.setTimeout("enable_button(true, null, '"+btn.id+"');clearTimeout()", timeout*1000)
}
}
function select_checkbox(chkbox)
{
var name=chkbox.name;
if(chkbox.checked)
{
var all=document.getElementsByName(name);
for (var i=0;i < all.length;i++)
if(all[i] !=chkbox)
all[i].checked=false;
}
}
function show_tab(tab_id, tab, display)
{
var tabs=document.getElementById('tab_content').childNodes;
for (var i=0;i < tabs.length;i++)
{
if(tabs[i].nodeType==Node.ELEMENT_NODE)
tabs[i].style.display='none';
}
document.getElementById(tab_id).style.display=(display) ? display :'block';
tabs=document.getElementsByName('tab_name')
for (var i=0;i<tabs.length;i++)
tabs[i].className='';
tab.className='active_tab';
}
function set_title(button)
{
var tab_title=document.getElementById('tab_title');
if(tab_title)
tab_title.firstChild.nodeValue=button.firstChild.nodeValue;
}
function TalentMgr()
{
function toggle_level(table_hid)
{
if(! table_hid) table_hid='talent_search';
this.type=document.getElementsByName('level')[0].value;
var selects=document.getElementById(table_hid).getElementsByTagName('select');
for (var i=0;i < selects.length;i++)
{
if(selects[i].name.indexOf('level')==-1 && selects[i].id.indexOf('filter')==-1 && selects[i].id.indexOf('profile')==-1)
if(selects[i].id.indexOf(this.type) !=-1)
selects[i].style.display='inline';
else
selects[i].style.display='none';
}
this.select_id(document.getElementById(this.type+'_0'), true);
this.select_id(document.getElementById(this.type+'_1'), true);
this.select_id(document.getElementById(this.type+'_2'), true);
this.request_data();
}
function select_id(select, no_refresh)
{
var selected=get_selected_options(select);
var pos=select.id.split('_')[1];
this.ids[pos]=selected[0].value;
if(! no_refresh)
this.request_data();
}
function select_group(select)
{
var selected=get_selected_options(select);
this.group_id=selected[0].value;
this.request_data();
}
function select_profile(select)
{
ajax_call_counter.increment();
var selected=get_selected_options(select);
this.profile_id=selected[0].value;
this.ids=['', '', ''];
cp.call(ajax_entry, 'setProfile', refresh_form, this.profile_id);
}
function refresh_form(result, raw_result)
{
if(! check_auth(result, raw_result))
return;
var selects={'clusters' :document.getElementsByName('sel_clusters'),
'competences' :document.getElementsByName('sel_competences'),
'indicators' :document.getElementsByName('sel_indicators')};
for (var type in selects)
{
for (var i=0;i < selects[type].length;i++)
del_options(selects[type][i]);
var opts_ids=Array();
var opts_labels=Array();
extract_options(result, type, opts_ids, opts_labels, null, 32);
add_options(selects[type][0], opts_ids, opts_labels);
add_options(selects[type][1], opts_ids, opts_labels);
add_options(selects[type][2], opts_ids, opts_labels);
}
var holder=document.getElementById('holder');
holder.innerHTML='';
ajax_call_counter.decrement();
}
function request_data()
{
var ids=Array();
for (var i=0;i < this.ids.length;i++)
if(this.ids[i] !='') ids.push(this.ids[i]);
if(!this.profile_id)
{
var selected=get_selected_options(document.getElementById('profile_id'));
this.profile_id=selected[0].value;
}
var ids=encode_array(ids);
var group_id=document.getElementById('filter_sel_geog').value;
if(ids.length)
{
cp.call(ajax_entry, 'filterUsersWithScores', this.show_results, this.type, ids, group_id, this.profile_id);
ajax_call_counter.increment();
}
}
function show_results(result, raw_result)
{
if(! check_auth(result, raw_result))
return;
var holder_hid='holder';
var holder=document.getElementById(holder_hid);
var html=unescape(arguments[1].replace(/\\/g, '%'));
html=html.slice(html.indexOf('<table'), html.lastIndexOf('</table>')+8);
holder.innerHTML=html;
ajax_call_counter.decrement();
}
TalentMgr.prototype.toggle_level=toggle_level;
TalentMgr.prototype.select_id=select_id;
TalentMgr.prototype.select_group=select_group;
TalentMgr.prototype.select_profile=select_profile;
TalentMgr.prototype.request_data=request_data;
TalentMgr.prototype.show_results=show_results;
TalentMgr.prototype.ids=['', '', ''];
TalentMgr.prototype.type='competences';
}
var talentMgr=new TalentMgr();
function show_tip(event, text)
{
if(show_tip.tip)
var tip=show_tip.tip;
else
{
var tip=document.createElement('div');
tip.appendChild(document.createTextNode(text));
tip.style.position='absolute';
tip.style.zIndex='999';
tip.style.backgroundColor='#f0f0f0';
tip.style.border='1px gray solid';
tip.style.padding='3px';
tip.onclick=hide_tip;
}
tip.style.display='block';
tip.style.top=(event.clientY+20)+'px';
tip.style.left=(event.clientX+10)+'px';
if(! show_tip.tip)
{
document.body.appendChild(tip);
show_tip.tip=tip;
}
var timeout_id=window.setTimeout(hide_tip, 5000);
hide_tip.target=tip;
if(hide_tip.timeout_id)
window.clearTimeout(hide_tip.timeout_id);
hide_tip.timeout_id=timeout_id;
}
function hide_tip(event)
{
if(hide_tip.timeout_id)
{
window.clearTimeout(hide_tip.timeout_id);
hide_tip.timeout_id=null;
}
hide_tip.target.style.display='none';
}
function show_msg(text, msg, html_msg_id)
{
if(! msg)
if(html_msg_id)
var msg=document.getElementById(html_msg_id);
else
return;
if(msg.hasChildNodes())
msg.firstChild.nodeValue=text;
else
{
var text_node=document.createTextNode(text);
msg.appendChild(text_node);
}
}
function toggle_display(e, visible_value)
{
if(! e.style)
e=document.getElementById(e);
var value=get_css_property(e, 'display');
if(value=='none')
e.style.display=(visible_value) ? visible_value :'';
else
e.style.display='none';
}
function toggle_menu(title, display)
{
var parent=title.parentNode;
var lis=parent.getElementsByTagName('li');
var new_display;
if(get_css_property(lis[lis.length - 1], 'display')=='none')
new_display=(display) ? display :'list-item';
else
new_display='none';
for (var i=0;i < lis.length;i++)
if(title !=lis[i])
lis[i].style.display=new_display;
}
function get_css_property(element, property)
{
var value=null;
if(element.currentStyle)
value=get_current_style_property(element, property);
else
value=window.getComputedStyle(element, "").getPropertyValue(property);
return value;
}
function get_current_style_property(element, property)
{
var value=null;
var cur_style=element.currentStyle;
switch (property)
{
case 'display':		value=cur_style.display;
break;
case 'color':		value=cur_style.color;
break;
case 'background-color':	value=cur_style.backgroundColor;
break;
case 'margin':		value=cur_style.margin;
break;
case 'padding':		value=cur_style.padding;
break;
}
return value;
}
function edit_note(note_id)
{
document.getElementById('note_new_body').style.display='block';
document.getElementById('btn_note_edit').style.display='none';
document.getElementById('btn_note_save').style.display='inline';
if(note_id)
{
var tarea=document.getElementById('note_new_body').getElementsByTagName('textarea')[0];
tarea.value=document.getElementById('note_'+note_id).firstChild.nodeValue;
save_note.note_id=note_id;
}
}
function save_note(about_id, author_id, note_type)
{
document.getElementById('note_new_body').style.display='none';
document.getElementById('btn_note_edit').style.display='inline';
document.getElementById('btn_note_save').style.display='none';
var about_id=document.getElementById('about_id').value;
var author_id=document.getElementById('author_id').value;
var note_type=document.getElementById('note_type').value;
var tarea=document.getElementById('note_new_body').getElementsByTagName('textarea')[0];
if(tarea.value.length > 0)
if(save_note.note_id)
cp.call(ajax_entry, 'updateNote', prepare_notes, save_note.note_id, note_type, tarea.value);
else
cp.call(ajax_entry, 'addNote', prepare_notes, about_id, author_id, note_type, tarea.value);
save_note.note_id=null;
tarea.value='';
}
function delete_note(note_id)
{
cp.call(ajax_entry, 'deleteNote', prepare_notes, note_id);
}
function prepare_notes(result, raw_result)
{
if(! check_auth(result, raw_result))
return;
location.reload();
}
function refresh_notes(result)
{
}
function validate_user()
{
var input_name=document.getElementsByName('name')[0];
var input_firstname=document.getElementsByName('firstname')[0];
var input_password=document.getElementsByName('password')[0];
var input_email=document.getElementsByName('email')[0];
var input_selftest=document.getElementsByName('selftest')[0];
var select_profile_id=document.getElementsByName('profile_id')[0];
var ok=true;
if(! input_name.value.length || input_name.value=='?')
{
input_name.value='?';
ok=false;
}
if(! input_firstname.value.length || input_firstname.value=='?')
{
input_firstname.value='?';
ok=false;
}
if(! input_password.value.length || input_password.value=='?')
{
input_password.value='?';
ok=false;
}
if(! input_email.value.length || input_email.value=='?')
{
input_email.value='?';
ok=false;
}
if(input_selftest.checked && !select_profile_id.options[select_profile_id.selectedIndex].value.length)
{
document.getElementById('err_selftest').style.display='block';
ok=false;
}
else
document.getElementById('err_selftest').style.display='none';
try{
var hrm_parc=document.getElementById('role_hrm_parc').value;
var hrm_country=document.getElementById('role_hrm_country').value;
var roles=document.getElementsByName('roles[]');
var unit=document.getElementsByName('group_geog_id')[0];
var units_selected=get_selected_options_values(unit);
var unit_sel=units_selected[0];
var counter=0;
var counter2=0;
for(var i=0;i<roles.length;i++){
if((roles[i].value==hrm_parc || roles[i].value==hrm_country) && roles[i].checked==true && unit_sel==''){
counter+=1;
ok=false;
}
else if(roles[i].value==hrm_country && roles[i].checked==true && unit_sel !=''){
var linked=document.getElementById('linked_'+unit_sel).value;
if(isNaN(linked) || parseInt(linked) < 1){
counter2+=1;
ok=false;
}
}
}
if(counter)
document.getElementById('err_unit_roles').style.display='block';
else
document.getElementById('err_unit_roles').style.display='none';
if(counter2)
document.getElementById('err_unit_linked').style.display='block';
else
document.getElementById('err_unit_linked').style.display='none';
}
catch(e){}
return ok;
}
function validate_indicator()
{
var input_name=document.getElementsByName('name')[0];
if(! input_name.value.length || input_name.value=='?')
{
input_name.value='?';
return false;
}
else
return true;
}
function validate_cluster()
{
var input_name=document.getElementsByName('name')[0];
if(! input_name.value.length || input_name.value=='?')
{
input_name.value='?';
return false;
}
else
return true;
}
function validate_competence()
{
var input_name=document.getElementsByName('name')[0];
if(! input_name.value.length || input_name.value=='?')
{
input_name.value='?';
return false;
}
else
return true;
}
function validate_profile()
{
var input_name=document.getElementsByName('name')[0];
if(! input_name.value.length || input_name.value=='?')
{
input_name.value='?';
return false;
}
else
return true;
}
function validate_custom_group()
{
var input_name=document.getElementsByName('name')[0];
if(! input_name.value.length || input_name.value=='?')
{
input_name.value='?';
return false;
}
else
return true;
}
function validate_set()
{
var input_name=document.getElementsByName('name')[0];
if(! input_name.value.length || input_name.value=='?')
{
input_name.value='?';
return false;
}
else
return true;
}
function toggle_group_assignment(chkbox)
{
var user_id=chkbox.id.split('_')[1];
var group_id=document.getElementsByName('group_id')[0].value;
if(chkbox.checked)
cp.call(ajax_entry, 'addToGroup', check_auth, user_id, group_id);
else
cp.call(ajax_entry, 'delFromGroup', check_auth, user_id, group_id);
}
function toggle_mail_assignment(chkbox)
{
var user_id=chkbox.id.split('_')[1];
cp.call(ajax_entry, 'sendMailTo', check_auth, user_id, chkbox.checked);
}
function change_logs_status(button)
{
if(button.name=='l_all')
{
document.getElementById('l_all').style.display='inline';
document.getElementById('l_fin').style.display='none';
document.getElementById('l_pen').style.display='none';
}
else if(button.name=='l_fin')
{
document.getElementById('l_all').style.display='none';
document.getElementById('l_fin').style.display='inline';
document.getElementById('l_pen').style.display='none';
}
else if(button.name=='l_pen')
{
document.getElementById('l_all').style.display='none';
document.getElementById('l_fin').style.display='none';
document.getElementById('l_pen').style.display='inline';
}
}
function add_row(which)
{
var table;
var holder;
var suffix;
if(which.name=='add_row_a')
suffix='a';
else if(which.name=='add_row_b')
suffix='b';
else if(which.name=='add_row_c')
suffix='c';
table='pdp_werkplan_'+suffix;
holder='werkplan_'+suffix+'_holder';
display_added_row.holder=holder;
var counter_holder=document.getElementById(holder);
var counter=counter_holder.getElementsByTagName('input')[0].value;
counter=parseInt(counter);
if(counter !=='0'){
counter_holder.getElementsByTagName('input')[0].value=counter+1;
cp.call(ajax_entry, 'addRow', display_added_row, table, counter);
}
}
function display_added_row(res)
{
var holder_hid=display_added_row.holder;
var holder=document.getElementById(holder_hid);
var html=unescape(arguments[1].replace(/\\/g, '%'));
html=html.slice(html.indexOf('<!-- start -->'), html.lastIndexOf('<!-- end -->')+12);
var nowy=document.createElement("div");
nowy=holder.appendChild(nowy);
nowy.innerHTML=html;
}
function del_row(which)
{
var table;
var suffix;
var holder;
if(which.name=='del_row_a')
suffix='a';
else if(which.name=='del_row_b')
suffix='b';
else if(which.name=='del_row_c')
suffix='c';
table='pdp_werkplan_'+suffix;
holder='werkplan_'+suffix+'_holder';
display_deleted_row.holder=holder;
var counter_holder=document.getElementById(holder);
var counter=counter_holder.getElementsByTagName('input')[0].value;
counter=parseInt(counter);
if(counter !==0){
counter_holder.getElementsByTagName('input')[0].value=counter - 1;
cp.call(ajax_entry, 'deleteRow', display_deleted_row, table);
}
}
function display_deleted_row(res)
{
var holder_hid=display_deleted_row.holder;
var holder=document.getElementById(holder_hid);
var html=unescape(arguments[1].replace(/\\/g, '%'));
html=html.slice(html.indexOf('<!-- start -->'), html.lastIndexOf('<!-- end -->')+12);
var holder_html=holder.innerHTML;
if(holder_html){
var div=holder.getElementsByTagName('div');
holder.removeChild(div[div.length - 1]);
}
}
function select_all_checkboxes(name)
{
var inputs=document.getElementsByName(name);
for(var i=0;i < inputs.length;i++)
inputs[i].checked=true;
}
function select_all_indicators()
{
var inputs=document.getElementsByName('indsel');
for(var i=0;i < inputs.length;i++)
inputs[i].checked=true;
refresh_selected_indicators();
}
function deselect_all_indicators()
{
var inputs=document.getElementsByName('indsel');
for(var i=0;i < inputs.length;i++)
inputs[i].checked=false;
refresh_selected_indicators();
}
function check_selected_indicators()
{
var inputs=document.getElementsByName('indsel');
var assign=Array();
var unassign=Array();
var result=new Object();
check_selected_indicators.checked=0;
for(var i=0;i < inputs.length;i++)
if(inputs[i].checked)
{
assign.push(inputs[i].value);
check_selected_indicators.checked++;
}
else
unassign.push(inputs[i].value);
result.assign=assign;
result.unassign=unassign;
return result;
}
function refresh_selected_indicators()
{
ajax_call_counter.increment();
var inputs=document.getElementsByName('indsel');
var indicators_ids=check_selected_indicators();
var group_indicator_id=document.getElementById('sel_indgrp').value;
cp.call(ajax_entry, 'refreshSelectedIndicators', selected_indicators_refreshed, indicators_ids.assign, indicators_ids.unassign, group_indicator_id);
}
function selected_indicators_refreshed(result, raw_result)
{
if(! check_auth(result, raw_result))
return;
ajax_call_counter.decrement();
}
function refresh_indicators_group()
{
ajax_call_counter.increment();
var group_indicator_id=document.getElementById('sel_indgrp').value;
cp.call(ajax_entry, 'refreshIndicatorsGroup', indicators_group_refreshed, group_indicator_id);
}
function indicators_group_refreshed(result, raw_result)
{
if(! check_auth(result, raw_result))
return;
var holder=document.getElementById('indgrp_holder');
var html=unescape(arguments[1].replace(/\\/g, '%'));
html=html.slice(html.indexOf('<!-- start -->'), html.lastIndexOf('<!-- end -->')+12);
holder.innerHTML=html;
ajax_call_counter.decrement();
}
function mail_change_list_visibility()
{
var holder=document.getElementById('mail_users_to_hide');
try
{
if(holder.style.display=='none')
document.getElementById('mail_users_to_hide').style.display='block';
else
document.getElementById('mail_users_to_hide').style.display='none';
}
catch(e){}
}

var FVLOGGER_VERSION='1.0';
var FVL_LOG_ON=true;
var FVL_DEFAULT_LOG_LEVEL=FVL_DEBUG;
var FVL_LOG_ID='fvlogger';
var FVL_LOG_ELEMENT='p';
var FVL_DEBUG=0;
var FVL_INFO=1;
var FVL_WARN=2;
var FVL_ERROR=3;
var FVL_FATAL=4;
var FVL_LOG_CLASSES=new Array("debug","info","warn","error","fatal");
function createLogger(){
var logger=document.createElement('div');
logger.id='fvlogger';
logger.className='fvlogger';
var dl=document.createElement('dl');
var params=Array(7);
params[0]=['all', '#fvlogger', showAll, 'all'];
params[1]=['debug', '#fvlogger', showDebug, 'debug'];
params[2]=['info', '#fvlogger', showInfo, 'info'];
params[3]=['warn', '#fvlogger', showWarn, 'warn'];
params[4]=['error', '#fvlogger', showError, 'error'];
params[5]=['fatal', '#fvlogger', showFatal, 'fatal'];
params[6]=['', '#fvlogger', eraseLog, 'clear'];
for (var i=0;i < params.length;i++)
{
var dd=document.createElement('dd');
var a=document.createElement('a');
var text=document.createTextNode(params[i][3]);
dd.className=params[i][0];
a.href=params[i][1];
a.onclick=params[i][2];
a.appendChild(text);
dd.appendChild(a);
dl.appendChild(dd);
}
logger.appendChild(dl);
document.getElementById('main').appendChild(logger);
}
function getLogger(id){
if(arguments.length==0){id=FVL_LOG_ID;}
return document.getElementById(id);
}
function showDebug(){FVL_showMessages(FVL_DEBUG);}
function showInfo(){FVL_showMessages(FVL_INFO);}
function showWarn(){FVL_showMessages(FVL_WARN);}
function showError(){FVL_showMessages(FVL_ERROR);}
function showFatal(){FVL_showMessages(FVL_FATAL);}
function showAll(){FVL_showMessages();}
function eraseLog(){
var debug=getLogger();
if(! debug){return false;}
if(! confirm("Are you sure you wish to erase the log?")){
return false;
}
var ps=debug.getElementsByTagName(FVL_LOG_ELEMENT);
var length=ps.length;
for (var i=0;i < length;i++){debug.removeChild(ps[length - i - 1]);}
return true;
}
function debug(message){FVL_log(""+message, FVL_DEBUG);}
function warn(message){FVL_log(""+message, FVL_WARN);}
function info(message){FVL_log(""+message, FVL_INFO);}
function error(message){FVL_log(""+message, FVL_ERROR);}
function windowError(message, url, line){
FVL_log('Error on line '+line+' of document '+url+':'+message, FVL_FATAL);
return true;
}
if(FVL_LOG_ON){
window.onerror=windowError;
}
function FVL_showMessages(level, hideOthers){
var showAll=false;
if(arguments.length==0){level=FVL_DEFAULT_LOG_LEVEL;showAll=true;}
if(arguments.length < 2){hideOthers=true;}
var debug=getLogger();
if(! debug){return false;}
var ps=debug.getElementsByTagName("p");
if(ps.length==0){return true;}
var l=ps.length;
var lookup=FVL_LOG_CLASSES[level];
for (var i=l - 1;i >=0;i--){
if(hideOthers){hide(ps[i]);}
var c=getNodeClass(ps[i]);
if(c && c.indexOf(lookup) > -1 || showAll){show(ps[i]);}
}
}
function FVL_log(message, level){
if(! FVL_LOG_ON){return false;}
if(arguments.length==1){level=FVL_INFO;}
if(level < FVL_DEFAULT_LOG_LEVEL){return false;}
var div=getLogger();
if(! div){return false;}
var p=document.createElement(FVL_LOG_ELEMENT);
if(p.getAttributeNode("class")){
for (var i=0;i < p.attributes.length;i++){
if(p.attributes[i].name.toUpperCase()=='CLASS'){
p.attributes[i].value=FVL_LOG_CLASSES[level];
}
}
}else{
p.setAttribute("class", FVL_LOG_CLASSES[level]);
}
var text=document.createTextNode(message);
p.appendChild(text);
div.appendChild(p);
return true;
}
function show(target){
target.style.display="";
return true;
}
function hide(target){
target.style.display="none";
return true;
}
function getNodeClass(obj){
var result=false;
if(obj.getAttributeNode("class")){
result=obj.attributes.getNamedItem("class").value;
}
return result;
}
function get_selected_options(select)
{
var selected=Array();
for (var i=0;i < select.options.length;i++)
{
if(select.options[i].selected)
selected.push(select.options[i]);
}
return selected;
}
function get_selected_options_values(select)
{
var selected=Array();
for (var i=0;i < select.options.length;i++)
{
if(select.options[i].selected)
selected.push(select.options[i].value);
}
return selected;
}
function select_competence(select)
{
var competence_id=get_selected_options_values(select)[0];
if(competence_id=='')
cp.call(ajax_entry, 'deselectCompetence', refresh_lists);
else
cp.call(ajax_entry, 'selectCompetence', refresh_lists, competence_id);
try{
var descriptions_ps=document.getElementById('competences_descriptions').getElementsByTagName('p');
for (var i=0;i < descriptions_ps.length;i++)
descriptions_ps[i].style.display='none';
var selected_p=document.getElementById('descr_'+competence_id);
selected_p.style.display='block';
}
catch (e){alert(e);}
}
function assign_items(category, id)
{
var sel_u=get_unassigned_list();
var sel_a=get_assigned_list();
var selected_values=get_selected_options_values(sel_u);
if(!selected_values.length)
return;
var encoded_values=encode_array(selected_values);
var func_name;
switch (category)
{
case 'c':
func_name='assignIndicatorsToCompetence';
break;
case 's':
func_name='assignIndicatorsToSet';
break;
case 'p':
func_name='assignIndicatorsToProfile';
break;
}
cp.call(ajax_entry, func_name, refresh_lists, id, encoded_values, true);
}
function unassign_items(category, id)
{
var sel_u=get_unassigned_list();
var sel_a=get_assigned_list();
var selected_values=get_selected_options_values(sel_a);
if(!selected_values.length)
return;
var encoded_values=encode_array(selected_values);
var func_name;
switch (category)
{
case 'c':
func_name='unassignIndicatorsFromCompetence';
break;
case 's':
func_name='unassignIndicatorsFromSet';
break;
case 'p':
func_name='unassignIndicatorsFromProfile';
break;
}
cp.call(ajax_entry, func_name, refresh_lists, id, encoded_values, true);
}
function refresh_lists(result, raw_result)
{
if(! check_auth(result, raw_result))
return;
var sel_u=get_unassigned_list();
var sel_a=get_assigned_list();
del_options(sel_a);
del_options(sel_u);
var opts_ids=Array();
var opts_labels=Array();
var opts_emph=Array();
extract_options(result, 'assigned', opts_ids, opts_labels, opts_emph, 100);
add_options(sel_a, opts_ids, opts_labels, opts_emph);
opts_ids=Array();
opts_labels=Array();
extract_options(result, 'unassigned', opts_ids, opts_labels, 100);
add_options(sel_u, opts_ids, opts_labels);
}
function extract_options(result, type, opts_ids, opts_labels, opts_emph, max_label_length)
{
var ids=result.getElementsByTagName('ajaxResponse')[0].getElementsByTagName(type)[0].getElementsByTagName('ids')[0].childNodes;
var labels=result.getElementsByTagName('ajaxResponse')[0].getElementsByTagName(type)[0].getElementsByTagName('labels')[0].childNodes;
for (var i=0;i < ids.length;i++)
{
opts_ids[i]=(ids[i].firstChild) ? ids[i].firstChild.nodeValue :'';
opts_labels[i]=(labels[i].firstChild) ? labels[i].firstChild.nodeValue :'';
opts_labels[i]=opts_labels[i].replace(/\\u0026/, '&');
opts_labels[i]=opts_labels[i].replace(/\\u003c/, '<');
opts_labels[i]=opts_labels[i].replace(/\\u003e/, '>');
opts_labels[i]=opts_labels[i].replace(/\\u000a/, "");
opts_labels[i]=opts_labels[i].replace(/\\u000d/, "");
if(max_label_length && opts_labels[i].length > max_label_length)
opts_labels[i]=opts_labels[i].slice(0, max_label_length)+'...';
}
if(! opts_emph)
return;
try{
var emph=result.getElementsByTagName('ajaxResponse')[0].getElementsByTagName(type)[0].getElementsByTagName('emph')[0].childNodes;;
for (var i=0;i < ids.length;i++)
opts_emph[i]=(emph[i].firstChild) ? emph[i].firstChild.nodeValue :'';
}
catch (e){
opts_emph=null;
}
}
function move_selected(from, to)
{
var i=0;
while (i < from.options.length)
{
opt=from.options[i];
if(opt.selected)
{
to.options[to.options.length]=new Option(opt.label, opt.value);
from.remove(i);
}
else
i++;
}
}
function add_options(select, opts_ids, opts_labels, opts_emph)
{
for (var i=0;i < opts_ids.length;i++){
select.options[select.options.length]=new Option(opts_labels[i], opts_ids[i]);
if(opts_emph && Number(opts_emph[i]))
select.options[select.options.length - 1].className='emph';
}
}
function del_options(select)
{
var j=0;
while (j < select.options.length)
select.remove(j);
}
function get_assigned_list(html_holder_id)
{
if(! html_holder_id)
var html_holder_id='assignment_lists';
var lists_holder=document.getElementById(html_holder_id);
return document.getElementById('sel_a');
}
function get_unassigned_list(html_holder_id)
{
if(! html_holder_id)
var html_holder_id='assignment_lists';
var lists_holder=document.getElementById(html_holder_id);
return document.getElementById('sel_u');
}

var lowest_score=0.0;
function validate_score(input)
{
var text=input.value;
var space_pos=text.lastIndexOf(' ');
if(space_pos > 0)
text=text.slice(0, space_pos);
if(space_pos==0)
text=text.slice(1);
while (text.length > 0 && isNaN(Number(text)))
text=text.slice(0, text.length - 1);
if(text.length > 0)
{
var dot_pos=text.indexOf('.');
if(dot_pos < 0)
dot_pos=text.length;
var fract_digit=text.slice(dot_pos+1);
text=text.slice(0, dot_pos+3);
}
if(input.value !=text)
input.value=text;
}
function fill_in_one(ind_id)
{
var inputs=document.getElementsByTagName('input');
var scores=Array();
for (i in inputs){
if(inputs[i].type=='text'){
var this_ind_id=inputs[i].name.slice(inputs[i].name.indexOf('[')+1, inputs[i].name.indexOf(']'));
if(this_ind_id==ind_id)
scores.push(inputs[i]);
}
}
var filled=Array();
var filled_index=Array();
for (var i=0;i < scores.length;i++)
if(scores[i].value.length > 0){
filled.push(scores[i]);
filled_index.push(i);
}
if(filled.length==0 || filled.length==scores.length)
return;
for (var i=0;i < scores.length;i++){
if(scores[i].value.length==0){
scores[i].value=Number(lowest_score)+(filled[0].value - lowest_score)/(filled_index[0]+1)*(i+1);
validate_score(scores[i]);
}
}
}
function fill_in_all()
{
var total=document.getElementsByName('total')[0].value;
var cur_total=0.;
var n_empty=0;
var inputs=document.getElementsByTagName('input');
var scores=Array();
for (i in inputs){
if(inputs[i].type=='text'){
var indicator_id=inputs[i].name.slice(inputs[i].name.indexOf('[')+1, inputs[i].name.indexOf(']'));
if(! scores[indicator_id])
scores[indicator_id]=Array();
scores[indicator_id].push(inputs[i]);
}
}
for (i in scores)
if(typeof(scores[i])==typeof(Array())){
var value=scores[i][scores[i].length - 1].value;
if(value.length)
cur_total+=parseFloat(value);
else
n_empty++;
}
if(! n_empty)
return false;
var max=(total - cur_total)/n_empty;
max=Math.round(100*max)/100.;
var rest=total - cur_total - n_empty*max;
rest=Math.round(100*rest)/100.;
for (i in scores)
if(typeof(scores[i])==typeof(Array())){
scores[i][scores[i].length - 1].value=max+rest;
rest=0;
fill_in_one(i);
}
return false;
}
function clear_all()
{
var inputs=document.getElementsByTagName('input');
for (var i=0;i < inputs.length;i++)
if(inputs[i].name && inputs[i].name.indexOf('score') !=-1)
inputs[i].value=null;
return false;
}
function mark_change(event, id)
{
if(event.keyCode < 37 || event.keyCode > 40)
show_msg('!', null, 'msg_'+id)
}
function save_text(id)
{
var text=document.getElementById('text'+id).value;
text=text.remove_unicode();
document.getElementById('text'+id).value=text;
if(!ajax_entry)
window.alert("Remote entry point not set");
cp.call(ajax_entry, 'saveText', check_result, id, text);
show_msg('...', null, 'msg_'+id)
}
function check_result(result, raw_result)
{
if(! check_auth(result, raw_result))
return;
var id=result.getElementsByTagName('ajaxResponse')[0].getElementsByTagName('id')[0].firstChild.nodeValue;
var text='';
if(result.getElementsByTagName('ajaxResponse')[0].getElementsByTagName('text')[0].firstChild)
text=result.getElementsByTagName('ajaxResponse')[0].getElementsByTagName('text')[0].firstChild.nodeValue;
text=text.replace(/\\u0026/g, '&');
text=text.replace(/\\u003c/g, '<');
text=text.replace(/\\u003e/g, '>');
text=text.replace(/\\u000a/g, "\n");
text=text.replace(/\\u000d/g, "\r");
document.getElementById('text'+id).value=text;
show_msg('ok', null, 'msg_'+id)
}
function request_data()
{
ajax_call_counter.increment();
var holder_hid=document.getElementById('destination_hid').value;
var filter_type=document.getElementById('filter_type').getAttribute('value');
var table_type=document.getElementById('table_type').getAttribute('value');
var textfield=document.getElementById('keyword');
if(textfield.value)
{
var text=textfield.value.trim();
textfield.value=text;
}
else
var text='';
if(text.length==1 && text.charAt(0)==' ')
text='';
if(filter_type.indexOf('user') !=-1 || filter_type=='access_log')
{
var groups_ids=Array(4);
var role_id;
groups_ids[0]=get_selected_options_values(document.getElementById('filter_sel_geog'))[0];
groups_ids[1]=get_selected_options_values(document.getElementById('filter_sel_sect'))[0];
groups_ids[2]=get_selected_options_values(document.getElementById('filter_sel_func'))[0];
groups_ids[3]=get_selected_options_values(document.getElementById('filter_sel_cust'))[0];
groups_ids=encode_array(groups_ids);
role_id=get_selected_options_values(document.getElementById('filter_sel_role'))[0];
}
switch (filter_type)
{
case 'user':
show_users.destination_hid=holder_hid;
cp.call(ajax_entry, 'filterUsers', show_users, text, groups_ids, role_id, false, table_type);
break;
case 'user_tests_done':
show_users.destination_hid=holder_hid;
cp.call(ajax_entry, 'filterUsers', show_users, text, groups_ids, role_id, true, table_type);
break;
case 'user_custom_group':
var cust_group_id=document.getElementsByName('group_id')[0].value;
show_users.destination_hid=holder_hid;
cp.call(ajax_entry, 'filterCustomGroupUsers', show_users, cust_group_id, text, groups_ids, role_id);
break;
case 'user_mail':
var tests_to_do=document.getElementById('tests_to_do').checked;
show_users.destination_hid=holder_hid;
cp.call(ajax_entry, 'filterMailUsers', show_users, text, groups_ids, role_id, tests_to_do);
break;
case 'user_logs':
var logs_type=document.getElementById('logs_type').getAttribute('name');
show_users.destination_hid=holder_hid;
cp.call(ajax_entry, 'filterUsersLogs', show_users, text, groups_ids, role_id, logs_type);
break;
case 'user_logs_rev':
var logs_type=document.getElementById('logs_type').getAttribute('name');
show_users.destination_hid=holder_hid;
cp.call(ajax_entry, 'filterUsersLogsReverse', show_users, text, groups_ids, role_id, logs_type);
break;
case 'indicator':
show_indicators.destination_hid=holder_hid;
cp.call(ajax_entry, 'filterIndicators', show_indicators, text, table_type);
break;
case 'competence':
show_competences.destination_hid=holder_hid;
cp.call(ajax_entry, 'filterCompetences', show_competences, text, table_type);
break;
case 'access_log':
show_access_log.destination_hid=holder_hid;
cp.call(ajax_entry, 'filterAccessLog', show_access_log, text, groups_ids, role_id, table_type);
break;
case 'user_pdp_logs':
show_users.destination_hid=holder_hid;
cp.call(ajax_entry, 'filterPDPLogs', show_users, text, groups_ids, role_id, false, table_type);
break;
}
if(textfield.value !=text)
textfield.value=text;
}
function show_users(result, raw_result)
{
if(! check_auth(result, raw_result))
return;
var holder_id=show_users.destination_hid;
var holder=document.getElementById(holder_id);
var html=unescape(arguments[1].replace(/\\/g, '%'));
html=html.slice(html.indexOf('<!-- start -->'), html.lastIndexOf('<!-- end -->')+12);
holder.innerHTML=html;
ajax_call_counter.decrement();
}
function show_indicators(result, raw_result)
{
if(! check_auth(result, raw_result))
return;
var holder_id=show_indicators.destination_hid;
var holder=document.getElementById(holder_id);
var html=unescape(arguments[1].replace(/\\/g, '%'));
html=html.slice(html.indexOf('<!-- start -->'), html.lastIndexOf('<!-- end -->')+12);
holder.innerHTML=html;
ajax_call_counter.decrement();
}
function show_competences(result, raw_result)
{
if(! check_auth(result, raw_result))
return;
var holder_id=show_competences.destination_hid;
var holder=document.getElementById(holder_id);
var html=unescape(arguments[1].replace(/\\/g, '%'));
html=html.slice(html.indexOf('<table'), html.lastIndexOf('</table>')+8);
holder.innerHTML=html;
ajax_call_counter.decrement();
}
function show_access_log(result, raw_result)
{
if(! check_auth(result, raw_result))
return;
var holder_id=show_access_log.destination_hid;
var holder=document.getElementById(holder_id);
var html=unescape(arguments[1].replace(/\\/g, '%'));
html=html.slice(html.indexOf('<!-- start -->'), html.lastIndexOf('<!-- end -->')+12);
holder.innerHTML=html;
ajax_call_counter.decrement();
}
function add_relation(user_id, tester_id, holder_hid)
{
var relation_id=document.getElementById('relation_id').value;
if(holder_hid)
{
show_relations_table.destination_hid=holder_hid;
cp.call(ajax_entry, 'addUserRelation', show_relations_table, user_id, tester_id, relation_id, true);
}
else
cp.call(ajax_entry, 'addUserRelation', check_auth, user_id, tester_id, relation_id, false);
}
function del_relation(ur_id, holder_hid)
{
if(holder_hid)
{
show_relations_table.destination_hid=holder_hid;
cp.call(ajax_entry, 'delUserRelation', show_relations_table, ur_id, true);
}
else
cp.call(ajax_entry, 'delUserRelation', check_auth, ur_id, false);
}
function set_relations_types(holder_hid)
{
var holder=document.getElementById(holder_hid);
var tbody=holder.getElementsByTagName('tbody')[0];
var radios=tbody.getElementsByTagName('input');
var checked=Array();
for (var i=0;i < radios.length;i++)
if(radios[i].checked)
checked.push(radios[i]);
var urs_ids=Array();
var types=Array();
for (var i=0;i < checked.length;i++)
{
var radio_hid=checked[i].getAttribute('id');
urs_ids.push(radio_hid.split('_')[2]);
types.push(radio_hid.split('_')[1]);
}
urs_ids=encode_array(urs_ids);
types=encode_array(types);
cp.call(ajax_entry, 'setRelationsTypes', check_auth, urs_ids, types);
}
function show_relations_table(result, raw_result)
{
if(! check_auth(result, raw_result))
return;
var holder_hid=show_relations_table.destination_hid;
if(! holder_hid)
return;
var holder=document.getElementById(holder_hid);
var html=unescape(arguments[1].replace(/\\/g, '%'));
html=html.slice(html.indexOf('<!-- start -->'), html.lastIndexOf('<!-- end -->')+12);
holder.innerHTML=html;
}
function set_relation_type(input)
{
var relation_id=input.id.split('_')[1];
var ur_id=input.id.split('_')[2];
cp.call(ajax_entry, 'setRelationType', check_auth, ur_id, relation_id);
}
function get_logs(holder_hid, which)
{
show_logs.destination_hid=holder_hid;
cp.call(ajax_entry, 'getLogs', show_logs, which);
}
function show_logs(result, raw_result)
{
if(! check_auth(result, raw_result))
return;
var holder_hid=show_logs.destination_hid;
var holder=document.getElementById(holder_hid);
var html=unescape(arguments[1].replace(/\\/g, '%'));
html=html.slice(html.indexOf('<table'), html.lastIndexOf('</table>')+8);
holder.innerHTML=html;
}

function bookmark_page()
{
alert('Function not available');
}
function resConfig()
{
this.ready=false;
this.page=null;
this.level='competences';
this.graph_type='slider';
this.slider_type='abs';
this.suffix=null;
function init()
{
this.ready=true;
if(document.getElementById('user_id'))
this.user_id=document.getElementById('user_id').value;
if(document.getElementById('group_id'))
this.group_id=document.getElementById('group_id').value;
this.test_profile_id=(this.has_sel_profile) ? get_selected_options_values(this.get_element('sel_profile_id'))[0] :null;
}
function config(suffix, has_sel_profile, has_graph_type, has_spectrum, spectra_n, has_table, has_graph)
{
this.suffix=suffix;
this.has_sel_profile=has_sel_profile;
this.has_graph_type=has_graph_type;
this.has_spectrum=has_spectrum;
this.n_spectra=spectra_n;
this.has_table=has_table;
this.has_graph=has_graph;
}
resConfig.prototype.init=init;
resConfig.prototype.config=config;
}
new resConfig();
resConfig.prototype.refresh_level=refresh_level;
resConfig.prototype.refresh_graph_type=refresh_graph_type;
resConfig.prototype.refresh_slider_type=refresh_slider_type;
resConfig.prototype.get_hid=get_hid;
resConfig.prototype.get_element=get_element;
resConfig.prototype.toggle_slider_type=toggle_slider_type;
resConfig.prototype.toggle_slider_type_abs=toggle_slider_type_abs;
resConfig.prototype.toggle_slider_type_rel=toggle_slider_type_rel;
resConfig.prototype.set_slider_type=set_slider_type;
resConfig.prototype.select_level=select_level;
resConfig.prototype.select_graph=select_graph;
resConfig.prototype.select_profile=res_select_profile;
resConfig.prototype.check_spectra=check_spectra;
resConfig.prototype.check_sak=check_sak;
resConfig.prototype.prepare=res_prepare;
resConfig.prototype.refresh=res_refresh;
var gfxR=new resConfig();
var gfxD=new resConfig();
var gfxC=new resConfig();
var resCP=new resConfig();
var grpR=new resConfig();
var grpD=new resConfig();
var grpC=new resConfig();
gfxR.config('', false, true, true, 1, true, true);
gfxR.page='results';
gfxD.config('d', false, false, false, 0, true, false);
gfxD.page='data';
gfxC.config('c', false, false, true, 2, true, true);
gfxC.page='comparisons';
resCP.config('', true, true, false, 0, true, true);
resCP.page='career';
grpR.config('', true, true, true, 1, true, true);
grpR.page='results';
grpD.config('d', true, false, false, 0, true, false);
grpD.page='data';
grpC.config('c', true, false, true, 2, true, true);
grpC.page='comparisons';
function get_hid(hid)
{
var suf='';
if(this.suffix)
suf='_'+this.suffix;
return hid+suf;
}
function get_element(hid)
{
var el=document.getElementById(this.get_hid(hid));
return (el) ? el :null;
}
function refresh_level()
{
var select=document.getElementById('sel_level');
var options=select.getElementsByTagName('option');
switch (this.graph_type)
{
case 'slider':
break;
case 'gap':
if(this.level=='indicators')
{
for (var i=0;i < options.length;i++)
options[i].selected=false;
document.getElementById('opt_competences').selected=true;
this.level='competences';
}
break;
case 'quadrant':
if(this.level=='indicators')
{
for (var i=0;i < options.length;i++)
options[i].selected=false;
document.getElementById('opt_competences').selected=true;
this.level='competences';
}
break;
}
}
function refresh_graph_type()
{
switch (this.level)
{
case 'indicators':
if(this.has_graph_type){
this.get_element('btn_quadrant').style.display='none';
this.get_element('btn_gap').style.display='none';
}
document.getElementById('gr_ind').style.display='block';
document.getElementById('gr_com').style.display='none';
document.getElementById('gr_clu').style.display='none';
if(this.has_graph_type){
if(this.graph_type=='quadrant' || this.graph_type=='gap')
this.graph_type='slider';
}
break;
case 'competences':
if(this.has_graph_type){
if(this.get_element('btn_on').value==1)
{
this.get_element('btn_quadrant').style.display='inline';
this.get_element('btn_gap').style.display='inline';
}
}
document.getElementById('gr_com').style.display='block';
document.getElementById('gr_ind').style.display='none';
document.getElementById('gr_clu').style.display='none';
break;
case 'clusters':
if(this.has_graph_type){
if(this.get_element('btn_on').value==1)
{
this.get_element('btn_quadrant').style.display='inline';
this.get_element('btn_gap').style.display='inline';
}
}
document.getElementById('gr_clu').style.display='block';
document.getElementById('gr_ind').style.display='none';
document.getElementById('gr_com').style.display='none';
break;
}
if(! this.has_graph_type)
return;
switch (this.graph_type)
{
case 'slider':
this.get_element('btn_slider').style.backgroundColor='#cb0808';
this.get_element('btn_gap').style.backgroundColor='#cb8b8b';
this.get_element('btn_quadrant').style.backgroundColor='#cb8b8b';
document.getElementById('gr_sli').style.display='block';
document.getElementById('gr_gap').style.display='none';
document.getElementById('gr_kit').style.display='none';
break;
case 'gap':
this.get_element('btn_slider').style.backgroundColor='#cb8b8b';
this.get_element('btn_gap').style.backgroundColor='#cb0808';
this.get_element('btn_quadrant').style.backgroundColor='#cb8b8b';
document.getElementById('gr_gap').style.display='block';
document.getElementById('gr_sli').style.display='none';
document.getElementById('gr_kit').style.display='none';
break;
case 'quadrant':
this.get_element('btn_slider').style.backgroundColor='#cb8b8b';
this.get_element('btn_gap').style.backgroundColor='#cb8b8b';
this.get_element('btn_quadrant').style.backgroundColor='#cb0808';
document.getElementById('gr_kit').style.display='block';
document.getElementById('gr_sli').style.display='none';
document.getElementById('gr_gap').style.display='none';
break;
}
this.refresh_slider_type();
}
function refresh_slider_type()
{
}
function set_slider_type(type)
{
this.slider_type=type;
}
function toggle_slider_type(btn)
{
if(this.slider_type=='rel')
{
this.slider_type='abs';
}
else
{
this.slider_type='rel';
}
this.prepare();
}
function toggle_slider_type_abs(btn)
{
if(this.slider_type=='rel')
{
this.slider_type='abs';
document.getElementById('tab_abs').className='flat_active';
document.getElementById('tab_rel').className='flat';
}
this.prepare();
}
function toggle_slider_type_rel(btn)
{
if(this.slider_type=='abs')
{
this.slider_type='rel';
document.getElementById('tab_rel').className='flat_active';
document.getElementById('tab_abs').className='flat';
}
this.prepare();
}
function res_select_profile(select)
{
if(! this.ready)
this.init();
this.test_profile_id=get_selected_options_values(select)[0];
this.prepare();
}
function select_level(select)
{
if(! this.ready)
this.init();
this.level=get_selected_options_values(select)[0];
this.refresh_graph_type();
this.prepare();
}
function select_graph(type)
{
if(! this.ready)
this.init();
this.graph_type=type;
this.refresh_level();
this.refresh_graph_type();
this.prepare();
}
function check_spectra()
{
this.spectra=Array(this.n_spectra);
for (var i=0;i < this.n_spectra;i++)
{
this.spectra[i]=Array();
var inputs=document.getElementsByName(this.get_hid('inp_'+i));
for (var j=0;j < inputs.length;j++)
{
if(inputs[j].checked)
this.spectra[i].push(inputs[j].value);
}
}
}
function check_sak()
{
var inputs=document.getElementsByName('sak');
this.sak=Array();
for(var i=0;i < inputs.length;i++)
{
if(inputs[i].checked)
this.sak.push(inputs[i].value);
}
}
function res_prepare()
{
if(! this.ready)
this.init();
this.check_spectra();
this.check_sak();
this.refresh.destination_hid=this.get_hid('table_holder');
this.refresh.graph_type=this.graph_type;
this.refresh.graph=this.get_element('graph');
this.refresh.obj=this;
this.refresh.level=this.level;
this.refresh.slider_type=this.slider_type;
this.refresh.user_id=this.user_id;
this.refresh.script_url=this.script_url;
var spectra=Array(2);
spectra[0]=(this.n_spectra > 0) ? encode_array(this.spectra[0]) :'';
spectra[1]=(this.n_spectra > 1) ? encode_array(this.spectra[1]) :'';
ajax_call_counter.increment();
switch (this.page)
{
case 'results':
if(this.user_id)
cp.call(ajax_entry, 'prepareIndividualResults', this.refresh, this.user_id, this.level, this.slider_type, spectra[0], this.sak);
if(this.group_id)
cp.call(ajax_entry, 'prepareGroupResults', this.refresh, this.group_id, this.test_profile_id, this.level, this.slider_type, spectra[0], this.sak);
break;
case 'data':
if(this.user_id)
cp.call(ajax_entry, 'prepareIndividualData', this.refresh, this.user_id, this.level);
if(this.group_id)
cp.call(ajax_entry, 'prepareGroupData', this.refresh, this.group_id, this.test_profile_id, this.level);
break;
case 'comparisons':
if(this.user_id)
cp.call(ajax_entry, 'prepareIndividualComparisons', this.refresh, this.user_id, this.level, this.slider_type, spectra[0], spectra[1], this.sak);
if(this.group_id)
cp.call(ajax_entry, 'prepareGroupComparisons', this.refresh, this.group_id, this.test_profile_id, this.level, this.slider_type, spectra[0], spectra[1], this.sak);
break;
case 'career':
cp.call(ajax_entry, 'prepareCareerResults', this.refresh, this.user_id, this.test_profile_id, this.level, this.slider_type);
break;
}
}
function res_refresh(result, raw_result)
{
if(! check_auth(result, raw_result))
return;
if(res_refresh.obj.has_table)
{
var holder_hid=res_refresh.destination_hid;
var holder=document.getElementById(holder_hid);
var html=unescape(arguments[1].replace(/\\/g, '%'));
html=html.slice(html.indexOf('<table'), html.lastIndexOf('</table>')+8);
holder.innerHTML=html;
}
if(res_refresh.obj.has_graph)
{
var hash=result.getElementsByTagName('ajaxResponse')[0].getElementsByTagName('hash')[0].firstChild.nodeValue;
var graph=res_refresh.graph;
var url;
switch (res_refresh.graph_type)
{
case 'quadrant':
url='/graphs/quad.php?hash='+hash;
break;
case 'gap':
url='/graphs/gap.php?hash='+hash;
break;
case 'slider':
url='/graphs/slider.php?hash='+hash;
break;
}
ajax_call_counter.set(1);
graph.onload=graph.onabort=graph.onerror=function ()
{
this.style.display='block';
document.getElementById('msg2').style.display='none';
if(hash=='no_graph')
{
this.style.display='none';
document.getElementById('msg2').style.display='block';
}
ajax_call_counter.decrement();
this.onload=this.onabort=this.onerror=null;
}
graph.src=url;
}
if(! res_refresh.obj.has_graph)
ajax_call_counter.decrement();
}
function validate_spectrum(chkbox)
{
var name=chkbox.name;
var chkboxes=document.getElementsByName(name);
var n_checked=0;
for (var i=0;i < chkboxes.length;i++)
{
if(chkboxes[i].checked)
n_checked++;
}
return (n_checked > 0);
}
function cmpConfig()
{
this.ready=false;
this.level='competences';
this.graph_type='slider';
this.slider_type='abs';
this.suffix=null;
this.table_type='cmp_table';
this.ind_ids=Array(2);
this.ind_ids[0]=null;
this.ind_ids[1]=null;
function init()
{
this.ready=true;
if(this.has_sel_profile)
this.select_profile(this.get_element('sel_profile_id'), true);
this.ids=Array(4);
this.ids['geog']=Array(2);
this.select_group(this.get_element('sel_geog_l'), true);
if(this.mode !='i_g')
this.select_group(this.get_element('sel_geog_r'), true);
if(this.groups=='sect' || this.groups=='all')
{
this.ids['sect']=Array(2);
this.select_group(this.get_element('sel_sect_l'), true);
if(this.mode !='i_g')
this.select_group(this.get_element('sel_sect_r'), true);
}
if(this.groups=='func' || this.groups=='all')
{
this.ids['func']=Array(2);
this.select_group(this.get_element('sel_func_l'), true);
if(this.mode !='i_g')
this.select_group(this.get_element('sel_func_r'), true);
}
if(this.groups=='cust' || this.groups=='all')
{
this.ids['cust']=Array(2);
this.select_group(this.get_element('sel_cust_l'), true);
if(this.mode !='i_g')
this.select_group(this.get_element('sel_cust_r'), true);
}
}
function config(suffix, groups, mode)
{
this.suffix=suffix;
this.has_sel_profile=true;
this.has_graph_type=false;
this.has_spectrum=true;
this.n_spectra=1;
this.groups=groups;
this.mode=mode;
}
cmpConfig.prototype.init=init;
cmpConfig.prototype.config=config;
}
cmpConfig.prototype.refresh_level=refresh_level;
cmpConfig.prototype.refresh_graph_type=refresh_graph_type;
cmpConfig.prototype.refresh_slider_type=refresh_slider_type;
cmpConfig.prototype.get_hid=get_hid;
cmpConfig.prototype.get_element=get_element;
cmpConfig.prototype.toggle_slider_type=toggle_slider_type;
cmpConfig.prototype.toggle_slider_type_abs=toggle_slider_type_abs;
cmpConfig.prototype.toggle_slider_type_rel=toggle_slider_type_rel;
cmpConfig.prototype.set_slider_type=set_slider_type;
cmpConfig.prototype.select_level=select_level;
cmpConfig.prototype.select_graph=select_graph;
cmpConfig.prototype.select_profile=cmp_select_profile;
cmpConfig.prototype.select_group=cmp_select_group;
cmpConfig.prototype.select_member=cmp_select_member;
cmpConfig.prototype.check_spectra=check_spectra;
cmpConfig.prototype.check_sak=check_sak;
cmpConfig.prototype.prepare=cmp_prepare;
cmpConfig.prototype.prepare_members=cmp_prepare_members;
cmpConfig.prototype.refresh_results=cmp_refresh_results;
cmpConfig.prototype.refresh_members=cmp_refresh_members;
var cmpC=new cmpConfig();
var cmpG=new cmpConfig();
var cmpS=new cmpConfig();
var cmpF=new cmpConfig();
var cmpIG=new cmpConfig();
var cmpII=new cmpConfig();
cmpC.config('c', 'all', 'g_g');
cmpG.config('g', 'geog', 'g_g');
cmpS.config('s', 'sect', 'g_g');
cmpF.config('f', 'func', 'g_g');
cmpIG.config('ig', 'all', 'i_g');
cmpII.config('ii', 'all', 'i_i');
function cmp_select_profile(select, no_refresh)
{
if(! this.ready)
this.init();
this.profile_id=get_selected_options_values(select)[0];
if(this.mode=='i_i' || this.mode=='i_g'){
this.deselect_members();
this.hide_results();
}
if(! no_refresh)
{
this.prepare_members('l');
if(this.mode !=='i_g')
{
this.prepare_members('r');
}
this.prepare();
}
}
function cmp_select_group(select, no_refresh)
{
if(! this.ready)
this.init();
var group_type=select.id.split('_')[1];
var side=select.id.split('_')[2];
var pos=(side=='l') ? 0 :1;
this.ids[group_type][pos]=get_selected_options_values(select)[0];
if(! no_refresh)
{
this.prepare_members(side);
this.prepare();
}
}
function cmp_select_member(btn)
{
if(! this.ready)
this.init();
var side=btn.id.split('_')[1];
var pos=(side=='l') ? 0 :1;
this.ind_ids[pos]=btn.id.split('_')[0];
var name_holder=null;
if(name_holder=document.getElementById('user_name_'+side))
{
var name=btn.firstChild.firstChild.nodeValue;
if(name_holder.firstChild)
name_holder.firstChild.nodeValue=name;
else
name_holder.appendChild(document.createTextNode(name));
}
this.prepare();
}
cmpConfig.prototype.deselect_members=function(){
this.ind_ids[0]=this.ind_ids[1]=null;
var name_holder=document.getElementById('user_name_l');
if(name_holder)
if(name_holder.firstChild)
name_holder.firstChild.nodeValue='';
if(this.mode=='i_g')
return;
name_holder=null;
name_holder=document.getElementById('user_name_r');
if(name_holder)
if(name_holder.firstChild)
name_holder.firstChild.nodeValue='';
}
function cmp_prepare_members(side)
{
if(this.mode=='i_g' || this.mode=='i_i')
{
ajax_call_counter.increment();
this.refresh_members.obj=this;
var pos=(side=='l') ? 0 :1;
cp.call(ajax_entry, 'prepareMembers', cmp_refresh_members, this.profile_id, this.ids['geog'][pos], this.ids['func'][pos], this.ids['sect'][pos], this.ids['cust'][pos], this.mode, side);
}
}
function cmp_prepare()
{
if(! this.ready)
this.init();
if(this.mode=='i_g')
if(! this.ind_ids[0])
return;
if(this.mode=='i_i')
if(! (this.ind_ids[0] && this.ind_ids[1]))
return;
ajax_call_counter.increment();
this.check_spectra();
this.check_sak();
this.refresh_results.obj=this;
var spectrum=encode_array(this.spectra[0]);
switch (this.mode)
{
case 'i_g':
cp.call(ajax_entry, 'prepareCmpIG', this.refresh_results, this.ids['geog'][0], this.ids['func'][0], this.ids['sect'][0], this.ids['cust'][0], this.ind_ids[0], this.profile_id, this.level, spectrum, this.graph_type, this.slider_type, this.sak);
break;
case 'i_i':
var ind_ids=encode_array(this.ind_ids);
cp.call(ajax_entry, 'prepareCmpII', this.refresh_results, ind_ids, this.level, spectrum, this.graph_type, this.slider_type, this.sak);
break;
case 'g_g':
var groups_ids_l=new Array();
var groups_ids_r=new Array();
var groups=new Array('geog','func','sect','cust');
for (var i in groups)
{
if(!!this.get_element('sel_'+groups[i]+'_l'))
groups_ids_l.push(this.ids[groups[i]][0]);
if(!!this.get_element('sel_'+groups[i]+'_r'))
groups_ids_r.push(this.ids[groups[i]][1]);
}
groups_ids_l=encode_array(groups_ids_l);
groups_ids_r=encode_array(groups_ids_r);
cp.call(ajax_entry, 'prepareCmpGG', this.refresh_results, groups_ids_l, groups_ids_r, this.profile_id, this.level, spectrum, this.graph_type, this.slider_type, this.sak);
break;
}
}
function cmp_refresh_members(result, raw_result)
{
if(! check_auth(result, raw_result))
return;
var obj=cmp_refresh_members.obj;
var side=result.getElementsByTagName('ajaxResponse')[0].getElementsByTagName('side')[0].firstChild.nodeValue;
var holder_hid='members_'+side;
var holder=obj.get_element(holder_hid);
var html=unescape(arguments[1].replace(/\\/g, '%'));
html=html.slice(html.indexOf('<!-- start -->'), html.lastIndexOf('<!-- end -->')+12);
holder.innerHTML=html;
ajax_call_counter.decrement();
}
function cmp_refresh_results(result, raw_result)
{
if(! check_auth(result, raw_result))
return;
var obj=cmp_refresh_results.obj;
var holder=obj.get_element('table_holder');
var graph=obj.get_element('graph');
var valid=parseInt(result.getElementsByTagName('valid')[0].firstChild.nodeValue);
if(! valid)
{
holder.style.display='none';
graph.style.display='none';
document.getElementById('msg2').style.display='block';
ajax_call_counter.decrement();
return;
}
var html=unescape(arguments[1].replace(/\\/g, '%'));
html=html.slice(html.indexOf('<!-- start -->'), html.lastIndexOf('<!-- end -->')+12);
holder.innerHTML=html;
holder.style.display='block';
var hash=result.getElementsByTagName('ajaxResponse')[0].getElementsByTagName('hash')[0].firstChild.nodeValue;
var url='/graphs/slider.php?hash='+hash;
ajax_call_counter.set(1);
graph.onload=graph.onabort=graph.onerror=function ()
{
this.style.display='block';
document.getElementById('msg2').style.display='none';
if(hash=='no_graph')
{
this.style.display='none';
document.getElementsByName('to_hide')[0].style.display='none';
document.getElementById('msg2').style.display='block';
}
ajax_call_counter.decrement();
}
graph.src=url;
}
cmpConfig.prototype.hide_results=function(){
var holder=this.get_element('table_holder');
holder.style.display='none'
holder.innerHTML=null;
this.get_element('graph').style.display='none';
}
function check(btn_handle, input_hid, scorebar_hid)
{
var scorebar=document.getElementById(scorebar_hid);
var input=scorebar.getElementsByTagName('input');
for (var i=0;i < input.length;i++)
if(input[i].id==input_hid)
input[i].checked=true;
else
input[i].check=false;
var btn=scorebar.getElementsByTagName('span');
for (var i=0;i < btn.length;i++)
if(btn[i]==btn_handle)
btn[i].className='number_selected';
else
btn[i].className='number';
}
function cmpRows(a, b)
{
if(cmpRows.type=="number")
if(cmpRows.order % 2==0)
return a[cmpRows.col_nr] - b[cmpRows.col_nr];
else
return b[cmpRows.col_nr] - a[cmpRows.col_nr];
if(cmpRows.type=="string")
if(cmpRows.order % 2==0)
return a[cmpRows.col_nr] > b[cmpRows.col_nr] ? 1 :-1;
else
return a[cmpRows.col_nr] < b[cmpRows.col_nr] ? 1 :-1;
}
function sortTable(table_id)
{
if(typeof(arguments[1])=='undefined')
table_id="table";
var rows=document.getElementById(table_id).rows;
var cols_q=rows[rows.length - 1].getElementsByTagName("td").length;
if(typeof(sortTable.order)=="undefined")
{
sortTable.order=Array(cols_q);
for (var i=0;i < cols_q;i++)
sortTable.order[i]=1;
}
else
sortTable.order[arguments[1]]=sortTable.order[arguments[1]]+1;
var data=Array(rows.length - 1);
for (var i=1;i < rows.length;i++)
{
data_row=Array(cols_q);
for (var j=0;j < cols_q;j++)
{
try
{
if(rows[i].cells[j].childNodes[0].nodeValue=="")
{
data_row[j]="-";
}
else
{
data_row[j]=rows[i].cells[j].innerHTML;
}
}
catch(e)
{
data_row[j]="-";
emptyNode=document.createTextNode("-");
rows[i].cells[j].appendChild(emptyNode);
continue;
}
}
data[i - 1]=data_row;
}
cmpRows.order=sortTable.order[arguments[1]];
cmpRows.col_nr=arguments[1];
cmpRows.type=isNaN(data[0][arguments[1]]) ? "string" :"number";
data.sort(cmpRows);
for(var q=2;q < arguments.length;q++)
{
cmpRows.order=sortTable.order[arguments[q]];
cmpRows.col_nr=arguments[q];
cmpRows.type=isNaN(data[0][arguments[q]]) ? "string" :"number";
for(var i=0;i < rows.length;i=i+j)
{
var j=0;
temp=Array();
try
{
while(data[i][arguments[q-1]]==data[i+j][arguments[q-1]])
{
temp[j]=data[i+j];
j++;
}
}
catch(e)
{
temp.sort(cmpRows);
for(var k=0;k < j;k++)
{
data[i+k]=temp[k];
}
break;
}
temp.sort(cmpRows);
for(var k=0;k < j;k++)
{
data[i+k]=temp[k];
}
}
}
for (var i=1;i < rows.length;i++)
{
for (var j=0;j < cols_q;j++)
{
if(data[i-1][j]=="-")
{
rows[i].cells[j].childNodes[0].nodeValue="";
}
else
{
if(table_id=="access_log_table")
{
if(data[i-1][j]=="ONLINE")
{
rows[i].cells[j].style.color="green";
rows[i].cells[j].childNodes[0].nodeValue=data[i - 1][j];
}
if(data[i-1][j]=="OFFLINE")
{
rows[i].cells[j].style.color="red";
rows[i].cells[j].childNodes[0].nodeValue=data[i - 1][j];
}
}
rows[i].cells[j].innerHTML=data[i - 1][j];
}
}
}
}
function print_page(what)
{
ajax_call_counter.increment();
var p=document.getElementById('profile_name');
var sel=document.getElementById('sel_profile_id_'+what);
for (var i=0;i<sel.options.length;i++)
if(sel.options[i].selected)
{
var repl=document.createTextNode(sel.options[i].firstChild.nodeValue);
p.replaceChild(repl, p.firstChild);
}
if(what !='ii')
{
var p=document.getElementById('unit_1');
var sel=document.getElementById('sel_geog_l_'+what);
for (var i=0;i<sel.options.length;i++)
if(sel.options[i].selected)
{
var repl=document.createTextNode(sel.options[i].firstChild.nodeValue);
p.replaceChild(repl, p.firstChild);
}
if(what !='ig')
{
var p=document.getElementById('unit_2');
var sel=document.getElementById('sel_geog_r_'+what);
for (var i=0;i<sel.options.length;i++)
if(sel.options[i].selected)
{
var repl=document.createTextNode(sel.options[i].firstChild.nodeValue);
p.replaceChild(repl, p.firstChild);
}
}
if(what=='f' || what=='c' || what=='ig')
{
var p=document.getElementById('function_1');
var sel=document.getElementById('sel_func_l_'+what);
for (var i=0;i<sel.options.length;i++)
if(sel.options[i].selected)
{
var repl=document.createTextNode(sel.options[i].firstChild.nodeValue);
p.replaceChild(repl, p.firstChild);
}
if(what !='ig')
{
var p=document.getElementById('function_2');
var sel=document.getElementById('sel_func_r_'+what);
for (var i=0;i<sel.options.length;i++)
if(sel.options[i].selected)
{
var repl=document.createTextNode(sel.options[i].firstChild.nodeValue);
p.replaceChild(repl, p.firstChild);
}
}
}
if(what=='s' || what=='c' || what=='ig')
{
var p=document.getElementById('sector_1');
var sel=document.getElementById('sel_sect_l_'+what);
for (var i=0;i<sel.options.length;i++)
if(sel.options[i].selected)
{
var repl=document.createTextNode(sel.options[i].firstChild.nodeValue);
p.replaceChild(repl, p.firstChild);
}
if(what !='ig')
{
var p=document.getElementById('sector_2');
var sel=document.getElementById('sel_sect_r_'+what);
for (var i=0;i<sel.options.length;i++)
if(sel.options[i].selected)
{
var repl=document.createTextNode(sel.options[i].firstChild.nodeValue);
p.replaceChild(repl, p.firstChild);
}
}
}
if(what=='c' || what=='ig')
{
var p=document.getElementById('custom_1');
var sel=document.getElementById('sel_cust_l_'+what);
for (var i=0;i<sel.options.length;i++)
if(sel.options[i].selected)
{
var repl=document.createTextNode(sel.options[i].firstChild.nodeValue);
p.replaceChild(repl, p.firstChild);
}
if(what !='ig')
{
var p=document.getElementById('custom_2');
var sel=document.getElementById('sel_cust_r_'+what);
for (var i=0;i<sel.options.length;i++)
if(sel.options[i].selected)
{
var repl=document.createTextNode(sel.options[i].firstChild.nodeValue);
p.replaceChild(repl, p.firstChild);
}
}
}
}
var sel=document.getElementById('sel_level_'+what);
for (var i=0;i<sel.options.length;i++)
if(sel.options[i].selected && sel.options[i].firstChild.nodeValue=='Indicators')
{
alert('Printing document with "Indicators" option chosen is inadvisable and may cause wrong results!');
}
window.print();
ajax_call_counter.decrement();
}
function print_results_page(what)
{
ajax_call_counter.increment();
var sel=document.getElementById('sel_level'+what);
for (var i=0;i<sel.options.length;i++)
if(sel.options[i].selected && sel.options[i].firstChild.nodeValue=='Indicators')
{
alert('Printing document with "Indicators" option chosen is inadvisable and may cause wrong results!');
}
window.print();
ajax_call_counter.decrement();
}
function he_select_language()
{
ajax_call_counter.increment();
var page_id=document.getElementById('page_id').value;
var lang=get_selected_options_values(document.getElementById('lang_sel'))[0];
cp.call(ajax_entry, 'setHelpEditorContent', he_set_content, page_id, lang);
}
function he_set_content(result, raw_result)
{
if(! check_auth(result, raw_result))
return;
var tarea=document.getElementById('tiny');
var content=result.getElementsByTagName('data')[0].firstChild.data;
content=unescape(content.replace(/\\/g, '%'));
editor_on=document.getElementById('editor_flag').value;
if(editor_on==1)
tinyMCE.setContent(content);
else
tarea.value=content;
ajax_call_counter.decrement();
}
