var tt_tags={debug:0,always_add_sid:false,link_to:function(obj,evt,SID,SID_param_name,FS_param_name,URI_path_root,enter_frameset,leave_frameset,in_opener){if(!evt)evt=window.event;if(evt){var rightclick;var key;if(evt.keyCode&&evt.keyCode!=13)return true;if(evt.which)rightclick=(evt.which==3);else if(evt.button)rightclick=(evt.button==2);if(tt_tags.debug)alert('Rightclick: '+rightclick);if(rightclick)return true;}
var obj_type=null;var uri=null;if(typeof(obj)=='string'){uri=obj;obj_type='uri';}else{if(typeof(obj.href)!='undefined'){uri=obj.href;obj_type='a';}else{if(typeof(obj.action)!='undefined'){uri=obj.action;obj_type='form';}else{return false;}}}
if(uri.match(/^#/)){window.location.href=uri;return true};var uriPattern=/^(([^:/?#]+):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?$/;var r=uri.match(uriPattern);if(!r){if(tt_tags.debug)alert('Could not parse uri!');return true};var scheme=r[2]||(r[1]?'':null);var authority=r[4]||(r[3]?'':null);var path=r[5];var query=r[7]||(r[6]?'':null);var fragment=r[9]||(r[8]?'':null);if(tt_tags.debug)
alert(obj_type+"\n"+
scheme+"\n"+
authority+"\n"+
path+"\n"+
query+"\n"+
fragment+"\n"+
uri);uri=uri.split('#').shift();var in_application_owned_frameset=0;if((parent)&&(parent.frames.length>0)&&(parent.location.hostname==window.location.hostname)){in_application_owned_frameset=1;}
var protocol_change=(scheme!=location.protocol.replace(/[:\/]*$/,""));if(tt_tags.debug)alert("protocol_change: "+protocol_change);if(obj_type!='uri'&&((leave_frameset&&!in_application_owned_frameset)||(!enter_frameset&&!in_opener&&(protocol_change==false&&scheme=='http')))&&!tt_tags.always_add_sid){return true;}
var href;var scheme_authority=scheme+"://"+authority;if(!URI_path_root.match(/^\//))URI_path_root='/'+URI_path_root;var derefer=false;if(!leave_frameset&&enter_frameset||(protocol_change==true&&in_application_owned_frameset&&!obj.target)){derefer=true;if(tt_tags.debug)alert('derefer: '+derefer);}
if(query&&query.search(/(\?|&|^)controller=/)!=-1){if(derefer){href=scheme_authority+
path+"?"+
"controller="+FS_param_name+"&"+
query.replace(/(^|&)controller=/,"$1targetcontroller=");}else{href=uri;}
var re=new RegExp('(^|&)'+SID_param_name+'=[^&]*($|&)','g');if(SID)href=href.replace(re,"$2")+"&"+SID_param_name+"="+SID;if(fragment)href=href+"#"+fragment;}else{if(derefer){var patharray=path.split("/");if(!patharray[0])patharray.shift();var path_rootarray=URI_path_root.split("/");if(!path_rootarray[0])path_rootarray.shift();if(!path_rootarray[-1])path_rootarray.pop();for(var i=0;i<path_rootarray.length+1;i++){patharray.shift();}
var controller=patharray.shift();var controller_event=patharray.shift();href=scheme_authority+
URI_path_root+"application/"+
FS_param_name+"/"+controller_event+"/targetcontroller/"+controller+"/"+patharray.join("/");}else{href=scheme_authority+path;}
var re=new RegExp('/'+SID_param_name+'/[^/]*','g');if(SID)href=href.replace(re,"").replace(/\/+\s*$/,'')+'/'+SID_param_name+"/"+SID;if(fragment)href=href+"#"+fragment;}
if(derefer&&tt_tags["hook_derefer"]!=null){href=tt_tags.hook_derefer(href);if(tt_tags.debug)alert("HREF: "+href);}
if(tt_tags.debug)alert("HREF: "+href);if(obj_type=='form'){obj.action=href;if(!obj.target&&!enter_frameset&&derefer)obj.target='_parent';if(tt_tags.debug)alert('Form');return true;}
if(obj.target){if(tt_tags.debug)alert('follow link');obj.href=href;return true;}else{if(tt_tags.debug)alert('don\'t follow link - opener: '+opener+' / enter_frameset: '+enter_frameset+' / derefer: '+derefer+' / window: '+window+' / parent: '+parent);(in_opener?opener:(((enter_frameset&&enter_frameset!='reload')||derefer==false)?window:parent)).location.href=href;if(obj_type=='a'){obj.onclick=function(){return false;};};return false;}},always_in_frameset:function(SID,SID_param_name,FS_param_name,URI_path_root,domain,https_domain)
{if(FS_param_name&&(!parent.frames.length||(parent.location.hostname!=https_domain&&parent.location.hostname!=domain))){if(tt_tags.debug)alert("reload in frameset. parent.frames.length: "+parent.frames.length+" / parent.location.hostname: "+parent.location.hostname+" / https_domain: "+https_domain+" / domain: "+domain);tt_tags.link_to(window.location,null,SID,SID_param_name,FS_param_name,URI_path_root,1,0);}},hook_derefer:null};