function ContactingComcenter(){var num_bad_reloads=0;var num_chk_changes=0;var tracking_valid=-10;var debug=false;this.align_with_tracking=true;this.track_doc_timestamp=null;this.cache=parent.cache.comcenter;if(contacting_dating_application_meta)this.meta=contacting_dating_application_meta;{var lb=YAHOO.com.YUILightBox.lightbox_short_message_form;var cb=function(t,a,o){var value=contacting_standard_lib.find_field('short_message').value;var cache_key="id_"+contacting_standard_lib.find_field('short_message_recipient_id').value;if(value)this.cache.msg_draft[cache_key]=value;};lb.hideEvent.subscribe(cb,this,true);}
this.chkChanges=function()
{num_chk_changes++;if(this.cache.invalid_session!=null&&this.cache.invalid_session!=this.meta.session_id){this.updateTrackingDoc();this.cache.invalid_session=null;this.log('New SID assigned! We revitalize the loop!');}
if(this.cache.invalid_session==null){window.setTimeout("contacting_comcenter.chkChanges()",1000);}else{return;}
var track=parent.frames["tracking"];try{track.URL;if(typeof(track.changes)=="undefined")throw"invalid";if(track.invalid)throw"invalid";if(track.changes&&this.track_doc_timestamp!=null&&this.track_doc_timestamp==track.timestamp)throw"invalid";tracking_valid=1;this.log('tracking doc valid');}catch(e){if(tracking_valid>=0)tracking_valid=-10;tracking_valid++;this.log('tracking doc invalid - tracking_valid: '+tracking_valid);}
if(tracking_valid==1&&(track.changes||this.align_with_tracking)){this.align_with_tracking=track.changes=false;num_bad_reloads=0;if(track.sessionid==null){this.cache.invalid_session=this.meta.session_id;this.log('session invalid - abort');return;}
if(typeof(track.announcement)!="undefined"&&track.announcement)
this.setAnnouncement(track.announcement);if(document.getElementById('comcenter_html_loaded')!=null){this.lockGUI();this.changeLists(track.users,track.messages,track.invitations,track.sessionid,track.filter_type);this.completed_contacts=track.completed_contacts;if(typeof(track.accepted_invitation)!="undefined"&&track.accepted_invitation)
this.acceptChat(track.accepted_invitation[0],track.accepted_invitation[1],track.accepted_invitation[2]);this.unlockGUI();this.log('gui updated');}
if(this.track_doc_timestamp==null||track.timestamp>this.track_doc_timestamp)this.cache.last_track_doc_update=new Date().getTime();this.track_doc_timestamp=track.timestamp;this.log('tracking evaluated');}else if(tracking_valid<=0){if(tracking_valid==0&&num_bad_reloads<300&&this.meta.session_id){num_bad_reloads++;this.log('trying to recover... (num_bad_reloads: '+num_bad_reloads+', tracking_valid: '+tracking_valid);this.updateTrackingDoc();}}else{if(this.cache.last_track_doc_update!=null&&(((new Date().getTime())-this.cache.last_track_doc_update)>=(20*1000))){this.log('regular track doc update scheduled ('+
'now: '+(new Date().getTime())+' - last doc update: '+this.cache.last_track_doc_update+')');this.updateTrackingDoc();}}};this.changeLists=function(users,messages,invitations,sessionid,filter_type)
{this.userList=users;this.messageList=messages;this.invitationList=invitations;this.sessionId=sessionid;this.filterType=filter_type;var doc=window.document;this.showUserlist();this.changeList(doc.forms.concom.userlist,this.userList,0);this.changeList(doc.forms.concom.invitationlist,this.invitationList,1,doc.chatinv_news);this.changeList(doc.forms.concom.messagelist,this.messageList,1,doc.sms_news);doc.forms.concom.userlist.selectedIndex=-1;doc.forms.concom.invitationlist.selectedIndex=-1;doc.forms.concom.messagelist.selectedIndex=-1;this.selectUser();this.selectMessage();this.selectInvitation();if(this.filterType)
this.setFilter();};this.lockGUI=function(unlock)
{if(unlock==null)unlock=false;for(var i;i<document.forms.concom.elements.length;i++){document.forms.concom.elements[i].disabled=(unlock?false:true);}};this.unlockGUI=function()
{this.lockGUI(true);};this.showUserlist=function()
{if(document.getElementById('comcenter_html_loaded')==null)return;var config;if((config=this.cache.display_userlist)!=null){var hide=false;if(config=='off'){hide=true;}else{hide=true;this.log('ack userlist display constraints: '+config);var track_timestamp=new Date((parent.frames["tracking"].timestamp*1000));var dow=track_timestamp.getDay();var h=track_timestamp.getHours();var m=track_timestamp.getMinutes();this.log('track timestamp: '+YAHOO.lang.JSON.stringify([dow,h,m]));var constraints=this.cache.display_userlist_parsed=this.cache.display_userlist_parsed||this.parseTimeConstraints(config);for(var i=0;i<constraints.length;i++){var c=constraints[i];this.log("checking cond: "+YAHOO.lang.JSON.stringify(c));var begin=c[0];var end=c[1];if((begin[0]<=dow&&dow<=end[0])&&(begin[0]!=dow||((h==begin[1]&&m>=begin[2])||(h>begin[1])))&&(end[0]!=dow||((h==end[1]&&m<=end[2])||(h<end[1])))){hide=false;break;}}
this.log('hide: '+hide);}
if(hide){YAHOO.util.Dom.addClass('comcenter_userlist','hide');if(document.getElementById('comcenter_userlist_teaser')!=null)YAHOO.util.Dom.removeClass('comcenter_userlist_teaser','hide');}else{YAHOO.util.Dom.removeClass('comcenter_userlist','hide');if(document.getElementById('comcenter_userlist_teaser')!=null)YAHOO.util.Dom.addClass('comcenter_userlist_teaser','hide');}}};this.parseTimeConstraints=function(constraints)
{var cons_str=constraints;var cons=(cons_str.search(/;/)!=-1)?cons_str.split(";"):new Array(cons_str);this.log(YAHOO.lang.JSON.stringify(cons));var cons_parsed=[];for(var i=0;i<cons.length;i++){var con=(cons[i].search(/-/)!=-1)?cons[i].split("-"):new Array(cons[i]);if(con[1]==null)con[1]=con[0];this.log(YAHOO.lang.JSON.stringify(con));con[0]=(con[0].search(/:/))!=-1?con[0].split(":"):new Array(con[0],0,0);con[1]=(con[1].search(/:/))!=-1?con[1].split(":"):new Array(con[1],23,59);if(isNaN(con[0][0])&&con[0][0]=='*'){for(var j=0;j<7;j++){con[0][0]=con[1][0]=j;cons_parsed.push([this.parseIntArray(con[0]),this.parseIntArray(con[1])]);}}else{cons_parsed.push([this.parseIntArray(con[0]),this.parseIntArray(con[1])]);}}
this.log('parseTimeConstraints result: '+YAHOO.lang.JSON.stringify(cons_parsed));return cons_parsed;};this.parseIntArray=function(a)
{var ai=[];for(var i=0;i<a.length;i++){ai.push(parseInt(a[i]));}
return ai;}
this.selectUser=function()
{var field=window.document.forms.concom.userlist;var index=field.selectedIndex;if(index<0){if((id=this.cache.selected_user)==null)return;this.selectOption(field,id);}else{this.cache.selected_user=this.toId(field);}};this.selectMessage=function()
{var field=window.document.forms.concom.messagelist;var index=field.selectedIndex;var index_reversed;if(index<0){if((index_reversed=this.cache.selected_message)==null)return;index=field.options.length-1-index_reversed;field.selectedIndex=index;}else{this.cache.selected_message=index_reversed=this.reverseIndex(field);if(this.messageList[index_reversed]&&this.messageList[index_reversed][3]){this.updateTrackingDoc({'SMS.id':index_reversed});this.messageList[index_reversed][3]=0;}
this.changeList(field,this.messageList,1,window.document.sms_news);}
var msg=this.messageList[index_reversed];var msg_txt=msg[2];window.document.concom.message.value=msg_txt!=''?msg_txt:msg[4]+' hat dir zugeblinzelt!';};this.selectInvitation=function()
{var field=window.document.forms.concom.invitationlist;var index=field.selectedIndex;var index_reversed;if(index<0){if((index_reversed=this.cache.selected_invitation)==null)return;index=field.options.length-1-index_reversed;field.selectedIndex=index;}else{this.cache.selected_invitation=index_reversed=this.reverseIndex(field);if(this.invitationList[index_reversed]&&this.invitationList[index_reversed][3]){this.updateTrackingDoc({'ChatInv.id':index_reversed,'read':1});this.invitationList[index_reversed][3]=0;}
this.changeList(field,this.invitationList,1,window.document.chatinv_news);}};this.changeList=function(obj,infos,reverse,newpic)
{var i;var start=obj.options.length;var gap=obj.options.length-infos.length;if(gap<0){for(i=0;i<-gap;i++){obj.options[obj.options.length]=new Option;}}else if(gap>0){for(i=0;i<gap;i++){obj.options[(obj.options.length-1)]=null;}}
var set_new=0;for(i=0;i<obj.options.length;i++){var j=i;if(reverse)j=obj.options.length-1-i;var newtext=infos[i][1];if(infos[i][3]==1){newtext=newtext+" (neu)";set_new=1;}
if(obj.options[j].value!=infos[i][0]||obj.options[j].text!=newtext){obj.options[j].text=newtext;obj.options[j].value=infos[i][0];}}
if(set_new){if(newpic&&newpic.src!=this.meta.URI_path_root+"image/Symbol/new.gif")
newpic.src=this.meta.URI_path_root+"image/Symbol/new.gif";}else{if(newpic&&newpic.src!=this.meta.URI_path_root+"image/Symbol/nix.gif")
newpic.src=this.meta.URI_path_root+"image/Symbol/nix.gif";}};this.setFilter=function()
{var field=window.document.concom.filter_type;if(field&&this.filterType)this.selectOption(field,this.filterType);};this.selectFilter=function()
{var field=window.document.concom.filter_type;this.updateTrackingDoc({'filter_type':this.toId(field)});};this.openChat=function(user_id,channel_id){if(this.isOnline(user_id)){var url=this.meta.URI_path_root+
"application/Community/chat_frameset/Session.id/"+
this.sessionId+"/Channel.id/"+channel_id;var window_name="contacting_chat_channel_"+channel_id;var myheight=400;var mywidth=400;if(screen.availHeight<myheight)height=screen.availHeight-50;if(screen.availWidth<mywidth)width=screen.availWidth-50;var win=window.open(url,window_name,"width="+mywidth+",height="+myheight+",scrollbars");win.focus();}else{(new YAHOO.Contacting.ui()).showInfo("Chatten nicht möglich:<br><br>Der andere Chatteilnehmer ist nicht mehr eingeloggt.");}}
this.acceptInvitation=function()
{var field=window.document.forms.concom.invitationlist;var index=field.selectedIndex;if(index>=0&&field.options[index]){var index_reversed=this.reverseIndex(field);this.openChat(this.toId(field),this.invitationList[index_reversed][2]);}
return false;};this.acceptChat=function(invitation_id,user_id,channel_id)
{var lb=YAHOO.com.YUILightBox['lightbox_accept_chat'];if(lb.cfg.getProperty("visible"))return;var user_info=this.getUserInfo(user_id);if(user_info==null)return;var nickname=user_info[1];var accept_href="javascript: contacting_comcenter.openChat("+user_id+", "+channel_id+"); YAHOO.com.YUILightBox[ 'lightbox_accept_chat' ].hide();";var info='Die eingeladene Person ('+nickname+') ist deiner Chat-Einladung gefolgt und wartet bereits im "Unter 4 Augen"-Chatraum auf dich. Bitte folge nachfolgendem Link, um dein Chat-Fenster zu öffnen:<br><br><a href="'+accept_href+'">Chat-Fenster öffnen</a>';var cb;cb=function(t,a,o){lb.hideEvent.unsubscribe(cb,this);this.updateTrackingDoc({'ChatInv.id':invitation_id,'set_back_accepted':1})};lb.hideEvent.subscribe(cb,this,true);(new YAHOO.Contacting.ui()).showLightbox('lightbox_accept_chat',info);};this.setAnnouncement=function(announcement)
{var lb=YAHOO.com.YUILightBox.lightbox_announcement;if(lb.cfg.getProperty("visible"))return;var cb;cb=function(t,a,o){lb.hideEvent.unsubscribe(cb,this);this.updateTrackingDoc({'announcement_timestamp':announcement.timestamp});};lb.hideEvent.subscribe(cb,this,true);(new YAHOO.Contacting.ui()).showLightbox('lightbox_announcement',announcement.text);};this.showProfile=function(selection){var id=this.promptSelection(selection);if(!id)return false;(new YAHOO.Contacting.ui()).xload_profile_to_panel(id);if(typeof(CockpitShowExclusive)!='undefined')CockpitShowExclusive.show('cockpit_minimized');return false;};this.showContactForm=function(selection){var id=typeof(selection)=='object'?this.promptSelection(selection):selection;if(id==false)return false;if(this.contactingAllowed(id)==false)return false;contacting_standard_lib.find_field('short_message_recipient_id').value=id;var cache_key="id_"+id;var text=this.cache.msg_draft[cache_key];if(text)contacting_standard_lib.find_field('short_message').value=text;var user_info=this.getUserInfo(id);(new YAHOO.Contacting.ui()).showLightbox('lightbox_short_message_form',user_info[3]);if(typeof(CockpitShowExclusive)!='undefined')CockpitShowExclusive.show('cockpit_minimized');return false;};this.sendShortMessage=function(){var form=document.forms.short_message_form;var url='application/?controller=Customer&event=send_short_message&FRAMEWORK_STATE=json';(new YAHOO.Contacting.ui()).xload(url,null,null,this._sendShortMessage_cb,null,form);return false;};this._sendShortMessage_cb=function(response){if(response.error!=null)return;var cache_key="id_"+contacting_standard_lib.find_field('short_message_recipient_id').value;contacting_comcenter.cache.msg_draft[cache_key]=document.forms.short_message_form.short_message.value='';};this.sendBlink=function(selection){var id=typeof(selection)=='object'?this.promptSelection(selection):selection;if(id==false)return false;if(this.contactingAllowed(id,true)==false)return false;var url='application/Customer/send_short_message/short_message_recipient_id/'+id+'/FRAMEWORK_STATE/json';(new YAHOO.Contacting.ui()).xload(url);return false;};this.sendChatInvitation=function(selection){var id=typeof(selection)=='object'?this.promptSelection(selection):selection;if(id==false)return false;if(this.contactingAllowed(id)==false)return false;var url='application/Customer/send_chat_invitation/recipient_id/'+id+'/FRAMEWORK_STATE/json';(new YAHOO.Contacting.ui()).xload(url);return false;};this.contactingAllowed=function(id,relaxed){if(!this.isOnline(id)){(new YAHOO.Contacting.ui()).showInfo('Die Person ist nicht mehr eingeloggt!');return false;}
if(relaxed==true)return true;if(this.isCompletedContact(id))return true;var info='',title=null;if(this.isPm(id)){if(this.meta.pm)return true;info=this.meta.pm_teaser;title='Diese Kontaktfunktion ist Premium-Mitgliedern vorbehalten!'}else{info='Die Person kann keine Nachrichten empfangen. Sie besitzt keine Premium-Mitgliedschaft!<br><br>Du kannst der Person aber zublinzeln. Jetzt <a href="javascript: contacting_comcenter.sendBlink('+id+'); void(0);"">zublinzeln</a>!';}
(new YAHOO.Contacting.ui()).showInfo(info,title);return false;};this.isCompletedContact=function(id){for(var i=0;i<=this.completed_contacts.length;i++){if(this.completed_contacts[i]==id)return true;}
return false;};this.isPm=function(id){var user_info=this.getUserInfo(id);return user_info[4];};this.promptSelection=function(selection){if(selection.selectedIndex<0){(new YAHOO.Contacting.ui()).showInfo('Bitte erst einen Eintrag in der Liste dar&uuml;ber per Maus-Klick ausw&auml;hlen und dann diese Funktion bet&auml;tigen!');return false;}
return this.toId(selection);}
this.displayCounter=function(counter)
{var counterstring=String(counter);var i=0;var numbers=new Array("","");while(i<counterstring.length){numbers[i+2-counterstring.length]=counterstring.substr(i,++i);}
window.document.counter10.src=this.meta.URI_path_root+"image/Symbol/digits/digit_"+numbers[0]+".gif";window.document.counter1.src=this.meta.URI_path_root+"image/Symbol/digits/digit_"+numbers[1]+".gif";};this.preloadImages=function()
{var images=new Array("image/Symbol/digits/digit.gif","image/Symbol/new.gif");for(var i=0;i<10;i++){images.push("image/Symbol/digits/digit_"+i+".gif");}
for(var i=0;i<images.length;i++){(new Image).src=this.meta.URI_path_root+images[i];}};this.toId=function(selection)
{return selection.options[selection.selectedIndex].value;};this.isInList=function(list,id)
{var flag=false;for(var i=0;i<list.length;i++){if(list[i][0]==id)flag=true;}
return flag;};this.isOnline=function(user_id){return this.isInList(this.userList,user_id);};this.reverseIndex=function(selection){return(selection.options.length-1-selection.selectedIndex);};this.getUserInfo=function(user_id){list=this.userList;for(var i=0;i<list.length;i++){if(list[i][0]==user_id)return list[i];}
return null;};this.selectOption=function(field,value){for(var i=0;i<field.options.length;i++){if(field.options[i].value==value)field.selectedIndex=i;}};this.updateTrackingDoc=function(parameters){var url=this.meta.URI_path_root+"comserv/tracking?Session.id="+this.meta.session_id;if(parameters!=null){for(var p in parameters)url=url+'&'+p+'='+parameters[p];}
this.log("updateTrackingDoc - set url to: "+url);parent.frames['tracking'].invalid=1;parent.frames['tracking'].location.href=url;};this.log=function(text,cat,src){if(debug)YAHOO.log(text,cat,src);};};YAHOO.register("communication",ContactingComcenter,{version:"1.0",build:"1"});