 var f=new Object();
 var a_days=s_weekdays.split(',');
 var a_months=s_months.split(',');

  
 function try_first_fields_focus(){
   var f = document.forms[0];
   if(f){
     for(fe=0;fe<f.elements.length;fe++){
       if( 'select-one,select-multi,text,password,file,radio,checkbox,submit,button'.indexOf(f.elements[fe].type) != -1){
 if(f.elements[fe].focus)
   f.elements[fe].focus();
 return;
}
     }
   }
 }
 
function stopSomething(e)
{
        if(!e) var e = window.event;
        e.cancelBubble = true;
        if(e.stopPropagation) e.stopPropagation();
}



 function hi_submit(sSrcAction){

   if(f){
     ftarget=f.target;
     faction=f.action;
     fmethod=f.method;

     f.action=abs_root + sSrcAction;
     f.target='hidden_post_frame';
     f.method='post';

     if(faction.substr(0,7)=='delete_'){
       if(window.confirm(s_delete_message))
         do_submit(f);
     }else{
         do_submit(f);
     }

     f.target=ftarget;
     f.action=faction;
     f.method= fmethod;
   }
   
   return false;
 }
 
 function hi_submit_orderblock(sSrcAction){

   if(f){
     ftarget=f.target;
     faction=f.action;
     fmethod=f.method;

     f.action=abs_root + sSrcAction;
     f.target='orderblock';
     f.method='post';

     if(faction.substr(0,7)=='delete_'){
       if(window.confirm(s_delete_message))
         do_submit(f);
     }else{
         do_submit(f);
     }

     f.target=ftarget;
     f.action=faction;
     f.method= fmethod;
   }
   
   return false;
 }

 function general_initialize(){
   f = document.forms["idsform"];
	attach_profession_dropdown_actions();
    //grayScaleImages();
	//grayScaleObjects();
 } 

 
function grayScaleObjects(){
  for(d=0;d<document.all.length;d++){
    var tmpObject = document.all[d];
	
	colorAtts=new Array();
	colorAtts=["borderColor","fontColor","color","bgColor"];


	for(ca=0;ca<colorAtts.length;ca++){
	  colorAt=colorAtts[ca];
	  eval("if(tmpObject."+colorAt+"&&tmpObject."+colorAt+".length==7)tmpObject."+colorAt+"=GrayScaleColor(tmpObject."+colorAt+");");
    }
	
	colorStlyeAts=new Array();
	colorStlyeAts = ["style.backgroundColor","style.color","style.borderColor"];

	for(ca=0;ca<colorAtts.length;ca++){
	  colorAt=colorAtts[ca];
	  eval("if(tmpObject."+colorAt+"&&tmpObject."+colorAt+".length==7)tmpObject."+colorAt+"=GrayScaleColor(tmpObject."+colorAt+");");
    }
	
  }
}

function d2h(d) {return d.toString(16);}
function h2d(h) {return parseInt(h,16);} 

function GrayScaleColor(color1){
  color1+="";
  if(color1.length==7)
    color1=color1.substr(1,6);

  if(color1.length==6)
    color1=yiq(h2d(color1.substr(0,2)),h2d(color1.substr(2,2)),h2d(color1.substr(4,2)));

  return color1;
}

function grayScaleImages(){
  var oImages = document.getElementsByTagName("IMG");

  for(i=0;i<oImages.length;i++){
    var tmpImage = oImages[i];
    if(document.body.filters)
	  tmpImage.style.filter ="progid:DXImageTransform.Microsoft.BasicImage(grayscale=1)"

  }
}

function yiq(r,g,b) 
{
  c1=parseInt(((r*0.299)+(g*0.587)+(b*0.114)));
  
    return "#"+d2h(c1)+d2h(c1)+d2h(c1)+"";
} 

function attach_profession_dropdown_actions()
 {
	var dropdowns = document.getElementsByTagName('select');
	var profession_dropdown = null;
	
	for(var i=0; i<dropdowns.length; i++)
	{
		if(dropdowns[i].name == 'rlb_user_profession_id')
		{
			profession_dropdown = dropdowns[i];
		}
	}

	var textboxes = document.getElementsByTagName('input');
	var profession_input = null;
	var freetext_id = null;
	
	freetext_id = document.getElementById('freetext_id');
	
	for(var j=0; j<textboxes.length; j++)
	{	
		if(textboxes[j].name == 'ftx_user_profession_other')
		{
			profession_input = textboxes[j];
		}
	}
	
	
	if(profession_dropdown != null && profession_input != null && freetext_id != 0 && freetext_id != null && freetext_id != '')
	{
		if(profession_dropdown.value == freetext_id.value)
		{
			profession_input.parentNode.parentNode.style.visibility = 'visible';
		}
		else
		{
			profession_input.parentNode.parentNode.style.visibility = 'hidden';
		}
		
		profession_dropdown.onchange = function()
		{
			if(profession_dropdown.value == freetext_id.value)
			{
				profession_input.parentNode.parentNode.style.visibility = 'visible';
			}
			else
			{
				profession_input.parentNode.parentNode.style.visibility = 'hidden';
				profession_input.value = '';
			}
		}
	}	
 }

 function handle_keypress(e){

   if(e.which)
     kcval=e.which;
   else
     kcval=e.keyCode;

   // enter pressed
   if(e && kcval=='13')
     return handle_text_field_enter(e);
 }

 function handle_text_field_enter(e){
   if(e.currentTarget)
     start_element= e.currentTarget.name; 
   else
     start_element= e.srcElement.name; 

   b_start_submit_search=0;

   for(ifx=0;ifx<f.elements.length;ifx++){
     el1=f.elements[ifx];

     // start looking for submit butten after currently pressed field
     if(start_element==el1.name)
        b_start_submit_search=1;

     if(b_start_submit_search){
       if(el1.type=='submit'){
         saction=el1.attributes["onclick"].value;
         eval(saction);


         e.cancleBubble = true;
         e.returnValue = false;

         if(form_submit( f ))
           do_submit(f);

         return false;
         break;
       }
     }

   }
 }

 function submit_form( page_action, b_form_check, sSrcAction ){
   if(!page_action && f.elements["page_action"] )
     page_action = f.elements["page_action"].value;

   if(f){
     if(sSrcAction)
       f.action=abs_root + sSrcAction;
     if(f.elements["page_action"])
       f.elements["page_action"].value=page_action;

     if( !b_form_check || validate_form( f )){
       if(page_action.substr(0,7)=='delete_'){
         
          if(window.confirm(s_delete_message))
            do_submit(f);

         }
         else{
           do_submit(f);
         }

     }
   }
 }

 function do_submit(f){
   //disable_submit_buttons(f);
   f.submit();
 }

 function disable_submit_buttons(f){
   switch_submit_buttons(f, false);
 }

  function enable_submit_buttons(f){
   switch_submit_buttons(f, true);
 }
 
function switch_submit_buttons(f, bOnOff){
   for(i=0;i<f.elements.length;i++){
     if(f.elements[i] && f.elements[i].type=='submit')
         f.elements[i].disabled=!bOnOff;
   }
 }
 
 
 

 function jump_to_previous_page() {
//   try {
//     var page_selector_el = document.getElementById('rlb_cur_page');

     var page_selector_el = f.elements['rlb_cur_page'];

     if(page_selector_el){
     var si = page_selector_el.selectedIndex;
     if(page_selector_el.options[si - 1].value) {
       page_selector_el.selectedIndex = si - 1;
     }
//   } catch(e) {
     // Failed
//   }
     }
 }
 
 function jump_to_next_page() {
//   try {
     var page_selector_el = f.elements['rlb_cur_page'];

     if(page_selector_el){
     si = page_selector_el.selectedIndex;
     if(page_selector_el.options[si + 1].value) {
       page_selector_el.selectedIndex = si + 1;
     }
//   } catch(e) {
     // Failed
//   }
     }
     

 } 

 function set_filename(obj){
   fileparts=obj.value.replace(/\\/gi, '/').split('/');

   if(obj.name.substr(obj.name.length-10, 10) == '_localfile')
      nw_file_obj_name=('ftx_'+obj.name.substr(0,obj.name.length - 10 )+'_filename');


   if(obj.name.substr(obj.name.length-13,13) == '_externalfile')
      nw_file_obj_name=('ftx_'+obj.name.substr(0,obj.name.length - 13 )+'_filename');

   nw_file_obj=getObject(nw_file_obj_name);


   if(nw_file_obj)
     nw_file_obj.value=fileparts[fileparts.length-1];
   
 }

 function switch_file_source( obj_name ){
   if(f){
     var oc = f.elements['rrd_' + obj_name + '_source'];
     var ol = f.elements[ obj_name + '_localfile'];
     var oe = f.elements[ obj_name + '_externalfile'];

     ol.style.display=(oc[0].checked ? 'inline' : 'none' );
     oe.style.display=(oc[1].checked ? 'inline' : 'none' );
   }
 }


 function set_action( sa, sFormaction ){
  if(!f)
    var f = document.forms[0];
 
   if(f && f.elements["page_action"] && f.elements["page_action"].value){
     f.elements["page_action"].value=sa;

     if(sFormaction != "")
       f.action=abs_root + sFormaction;

  // go to anchor subform
  //     f.action+="#subform_start_"+f.elements["xhi_subform_seq_"+sa].value;
     }
 }



 function set_cal_date( s_formname, i_day ){

   if(f){
     oy= f.elements[s_formname+'_year'];
     om= f.elements[s_formname+'_month'];
     od= f.elements[s_formname+'_day'];

     i_year=oy.options[oy.selectedIndex].value;
     i_month=om.options[om.selectedIndex].value;


     if(!i_day)
       i_day=od.options[od.selectedIndex].value;

     oc=getObject('calendar_'+s_formname);

     oc.innerHTML=build_calendar( s_formname, i_year, i_month, i_day );
   }
    set_datetime( s_formname);
 }

 function build_date( s_formname, i_year, i_month, i_day ){
   s='';

//   s+='<table>';
//   s+='<tr>';
//   s+='<td>';
 //  s+='<input type="hidden" name="'+s_formname+'_dat" value="'+i_year.toString()+'-'+i_month.toString()+'-'+i_day.toString()+'">';

 
    s+='<select name="'+s_formname+'_year" onchange="set_cal_date(\''+s_formname+'\')">';
   for( i=i_year-100;i<i_year+30;i++)
     s+='<option'+ ( i==i_year ? ' selected':'' ) +' value="'+i+'">'+i+'</option>';
   s+='</select>';
 
    s+='<select name="'+s_formname+'_month" onchange="set_cal_date(\''+s_formname+'\')">';
   for( i=0;i<a_months.length;i++)
     s+='<option'+ ( i==( i_month - 1 ) ? ' selected':'' ) +' value="'+(i+1)+'">'+a_months[i]+'</option>';
   s+='</select>';
 
 
   s+='<select name="'+s_formname+'_day" onchange="set_cal_date(\''+s_formname+'\')">';
   for( i=1;i<=31;i++)
     s+='<option'+ ( i== i_day  ? ' selected':'' ) +' value="'+i+'">'+i+'</option>';
   s+='</select>';


//   s+='</td>';
//   s+='</tr>';
//   s+='</table>';

   return s;
 }


function getValFromArray( arrItems, sKey, iReturnCol, iIndexCol ){
// returnCol -1 returns index

  var returnValue = new String();

  if(!iReturnCol)
    iReturnCol = 1;

  if(!iIndexCol)
    iIndexCol = 0;

  if(arrItems && sKey){
    for(icnttmp=0;icnttmp<arrItems.length;icnttmp++){

      if( is_array( arrItems[icnttmp] ) ){
      	//multi dimensional
        if(arrItems[icnttmp][iIndexCol] + "" == sKey + ""){
          if(iReturnCol == -1)
           returnValue = icnttmp;
          else
            returnValue = arrItems[icnttmp][iReturnCol];
          break;	
        }
      }else{

        //single dimensional
        if(arrItems[icnttmp] + "" == sKey + ""){
          if(iReturnCol == -1)
            returnValue = icnttmp;
          else
            returnValue = arrItems[icnttmp];
          break;	
        }        
      }
    }
  }
  return returnValue;	
}

function is_array( arr ){
  return ( arr && arr.constructor == Array );
}

 function build_calendar( s_formname, i_year, i_month, i_day ){
   f = document.forms[0];

   var curdate = new Date(i_year+'/'+i_month+'/1');
   var startdate=new Date(curdate.getTime() - ( (curdate.getDay()) * 24 * 60 * 60 * 1000));

   sc='';
   sc+='<table cellpadding="2" cellspacing="2" border="0" style="width:180px">';
   sc+='<tr>';
   for(d=0;d<7;d++){
     sc+='<th class="calender_header">'+a_days[d]+'</th>';
   }
   s+='</tr>';
   idays=0;
   maxweek=5;
   b_firstday_written=0;
   for(w=0;w<=maxweek;w++){
     sc+='<tr>';
     for( d=0; d< 7; d++  ){
         loopdate=new Date( startdate.getTime() + ( (d+w*7) * 24 * 60 * 60 * 1000 ) );
         b_selected_day=(loopdate.getMonth()==i_month-1 && loopdate.getDate()==i_day);

         sc+='<td align="right" class="calender_day">';
         if(loopdate.getMonth()==i_month-1){


           b_firstday_written=1;
           sc+='<a href="javascript:set_cal_date(\''+s_formname+'\', '+loopdate.getDate()+')" class="'+(b_selected_day ? 'calender_day_selected' : 'calender_day_not_selected' )+'">';
           sc+=loopdate.getDate();
           idays++;
           sc+='</a>';
         }else
           sc+='&nbsp;';
         sc+='</td>';
     }
     sc+='</tr>';
   }

   sc+='</table>';


   if(f){
     if(i_day>idays)
       i_day=1;

     f.elements[s_formname+"_dat"].value = i_year+'-'+i_month+'-'+i_day;
     set_count_selectbox(s_formname+"_day", i_day, idays);
   }
   return sc;
 }
 
 function set_count_selectbox( s_formname, i_curday, i_maxday ){

    if(f){
      dd=f.elements[s_formname];
      dd.options.length=i_maxday;

      for(di=0;di<i_maxday;di++){
        dd.options[di].value=di+1;
        dd.options[di].text=di+1;
      }
      dd.selectedIndex=i_curday-1;
    }
 }

 function build_time( s_formname, s_time, b_12hour_system ){
   var s = new String();

   a_time=s_time.split(":");
   ih=a_time[0];
   im=a_time[1];
   is=a_time[2];

//   s+='<input type="hidden" name="'+s_formname+'_tim" value="'+s_time+'">';

   maxh=(b_12hour_system?12:24);

   s+='<select name="'+s_formname+'_hou" onchange="set_time(\''+s_formname+'\')">';
   for(h=0;h<maxh;h++)
     s+='<option value="'+h+'"'+( (ih==h&&!b_12hour_system) || (ih%12==h&&b_12hour_system) ?' selected':'')+'>'+((h==0&&b_12hour_system)?12:h)+'</option>';
   s+='</select>:';

   s+='<select name="'+s_formname+'_min" onchange="set_time(\''+s_formname+'\')">';
   for(m=0;m<60;m++)
     s+='<option value="'+m+'"'+(im==m?' selected':'')+'>'+(m<10?'0':'')+m+'</option>';
   s+='</select>:';

   s+='<select name="'+s_formname+'_sec" onchange="set_time(\''+s_formname+'\')">';
   for(sc=0;sc<60;sc++)
     s+='<option value="'+sc+'"'+(is==sc?' selected':'')+'>'+(sc<10?'0':'')+sc+'</option>';
   s+='</select>';

   if(b_12hour_system){
     s+='<select name="'+s_formname+'_ampm" onchange="set_time(\''+s_formname+'\')">';
     s+='<option value="time_suffix_am"'+(Math.floor(ih/12)==0?' selected':'')+'>'+time_suffix_am+'</option>';
     s+='<option value="time_suffix_pm"'+(Math.floor(ih/12)==1?' selected':'')+'>'+time_suffix_pm+'</option>';
     s+='</select>';
   }
   document.writeln(s);
 }

 function set_time( s_formname ){

    if(f){
      oth=f.elements[s_formname+"_hou"];
      otm=f.elements[s_formname+"_min"];
      ots=f.elements[s_formname+"_sec"];
      ota=f.elements[s_formname+"_ampm"];

      ihr=oth.options[oth.selectedIndex].value*1;
      imn=otm.options[otm.selectedIndex].value*1;
      isc=ots.options[ots.selectedIndex].value*1;

      if(ota && ota.options[ota.selectedIndex].value=="time_suffix_pm")
        ihr+=12;

      f.elements[s_formname+"_tim"].value=ihr+":"+imn+":"+isc;
    }
    set_datetime( s_formname);
 }

 function set_datetime( s_formname ){
    if(f && f.elements[s_formname]){

      f.elements[s_formname].value="";
      if(f.elements[s_formname+"_dat"])
        f.elements[s_formname].value+=f.elements[s_formname+"_dat"].value;

      //set space split char
      if(f.elements[s_formname+"_dat"] && f.elements[s_formname+"_tim"])
        f.elements[s_formname].value+=" ";

      if(f.elements[s_formname+"_tim"])
        f.elements[s_formname].value+=f.elements[s_formname+"_tim"].value;
      
    }
 }

     function getObject(n, d) {
       var p,i,x; 
       if(!d) 
         d=document;

       if((p=n.indexOf("?"))>0&&parent.frames.length) {
        d=parent.frames[n.substring(p+1)].document; 
        n=n.substring(0,p);
       }
       if(!(x=d[n])&&d.all) 
         x=d.all[n]; 

       if(d.forms)
         for (i=0;!x&&i<d.forms.length;i++) 
           x=d.forms[i][n];

       for(i=0;!x&&d.layers&&i<d.layers.length;i++) 
         x=getObject(n,d.layers[i].document);

       if(!x && document.getElementById) 
         x=document.getElementById(n); 

       return x;
      }
   


 
 function set_navigation_select_box(){
   arr_nav_selbox_items_copy=top.arr_tmp;
   var s_sub_nav='';
   for(i=0;i<arr_nav_selbox_items_copy.length;i++){
     s_sub_nav+='<a href="javascript:go_page(\''+arr_nav_selbox_items_copy[i][0]+'\')">'+arr_nav_selbox_items_copy[i][1]+'</a>';
     if(i+1<arr_nav_selbox_items_copy.length)
       s_sub_nav+='';
   }
  oSub=getObject("lbl_topbar_subnav");
  if(oSub)
    oSub.innerHTML=s_sub_nav;

//   var nav_selbox = f.elements["navigation_select_box"];
//   if(arr_nav_selbox_items_copy.length>0 && nav_selbox){
//     clear_select_box(nav_selbox);     
//     for(i=0;i<arr_nav_selbox_items_copy.length;i++)
//       add_item_select_box(nav_selbox, arr_nav_selbox_items_copy[i][0], arr_nav_selbox_items_copy[i][1] );
//   }
 }

 function go_page(shref){
   var cf = parent.frames["content"];
   if(cf)
    cf.location.href=shref;

 }

 function set_form_vars(arr_vars){

   if(f)
    for(i=0;i<arr_vars.length;i++){
      f.elements[arr_vars[i][0]].value=arr_vars[i][1];

}
 }


 function clear_select_box(dd){
   for(di=0;di<dd.length;di++)
     dd.options[di]=null;
   dd.options.length=0;
 }

 function add_item_select_box(dd, val, soption){
   dd.options.length++;
   dd.options[dd.options.length-1].text=soption;
   dd.options[dd.options.length-1].value=val;
 }

 function b_form_validation_enabled(f){
   if(typeof FormValidationDisabled!='undefined'&&FormValidationDisabled)
     return false;

   bval=true;

   //exceptions:
   if(f.elements["page_action"].value=="new_prompt_submit")
     bval=false;

   return bval;
 }

 function form_submit( f ){
   reset_page();
   //disable_submit_buttons(f);

   return validate_form( f );
 }

 function reset_page(){
   //will be called at unload
 }

 function validate_form( f ){
   var req_check_mr_done = Array();
   var req_check_mr_is_empty = Array();

    //get subform sequence to validate
   if(f.elements["xhi_subform_seq_" + f.elements["page_action"].value] && f.elements["xhi_subform_seq_" + f.elements["page_action"].value]){
     b_only_validate_subform=1;
     i_subform_seq=f.elements["xhi_subform_seq_" + f.elements["page_action"].value].value;
   }else{
      b_only_validate_subform=0;
   }

   var b_form_ok = true;
   b_fve=b_form_validation_enabled(f)
   b_subform_validation=0;

     for(fe=0;b_fve&&fe<f.elements.length;fe++){
       el = f.elements[fe];
       nam  = f.elements[fe].name;
       
       if(f.elements[fe].text)
         val = f.elements[fe].text;
       else
         val = f.elements[fe].value;

       eltyp = f.elements[fe].type;
       typ=nam.substring(1,3);
       b_required=nam.substring(0,1) != 'f';

       // start subform validation
       if(b_only_validate_subform && nam=="xhi_subform_start_"+i_subform_seq)
         b_subform_validation=1;

       // end subform validation
       if(nam == "xhi_subform_seq_" + f.elements["page_action"].value)
         b_subform_validation=0;

       b_checkfield=1;

       // only check 'xxx_' syntax fields
       if(nam.substr(3,1) != '_')  
         b_checkfield=0;

       // do not check next field types
       skip_field_types="hidden:submit:button";
       if( skip_field_types.indexOf(eltyp) != -1 && !(typ=='mc'||typ=='ms') )
         b_checkfield=0;

       // unset all error messenges
       if(b_checkfield)
         set_form_field_on_error( el, 0 );


       if(!(b_only_validate_subform && b_subform_validation))
         b_checkfield=0;

       // force mail check
       if(!(b_required  || typ == 'em'))
         b_checkfield=0;

       
       if( b_checkfield ){
         b_field_ok=true;

         switch(typ){
           case "rd":
             if(!is_checked_radio_fam(f, el.name)){
               b_field_ok=false;
               set_form_field_on_error( el, !b_field_ok );
             }
             break;
           case "su":
             if(nam.substr( 4, nam.length -4)==f.elements['page_action'].value)
               b_fve=0;
             break;
           case "pd":
           case "pw":
             rt_st="_retype";
             if(nam.substr( nam.length-rt_st.length, rt_st.length) ==  "_retype" && ( is_empty(val) || f.elements[nam.substr(0, nam.length-7 )].value != val ) ){
               b_field_ok=false;
               set_form_field_on_error( el, !b_field_ok );

             }

             break;
           case "disabled___________dt":
             if(!is_date(val))
               b_field_ok=false;

             set_form_field_on_error( el, !b_field_ok );
             break;	
           case "em":
             if( !  ( is_email(val) || (!b_required && val == '')  ) )
               b_field_ok=false;
             set_form_field_on_error( el, !b_field_ok );
             break;
           case "bt":
             if(!el.checked)
               b_field_ok=false;
             set_form_field_on_error( el, !b_field_ok );
             break;
           case "lb":
             if(el.selectedIndex==-1||el.options[el.selectedIndex].value.length==0)
               b_field_ok=false;
               break;
           case "ms":
           case "mc":

               if(val.length==0)       
                 b_field_ok=false;
                 set_form_field_on_error( el, !b_field_ok );
             break;
           case "mr":
		      // when required, when of the fields must be selected

			  if(b_required && !req_check_mr_done[nam]){ //only first time
			    req_check_mr_done[nam]=true;
			    req_check_mr_is_empty[nam]=true;
				for(mri=0;tmp_el=f.elements[nam][mri];mri++){
				  if(tmp_el.checked){
				    req_check_mr_is_empty[nam]=false;
					break;
					}
				}
			
			  }
			  
			 if(b_required && req_check_mr_is_empty[nam]){
			       b_field_ok = false;
			 }else{
  			   if(el.checked && val.length==0)
                 b_field_ok=false;
			 }
			   
			 set_form_field_on_error( el, !b_field_ok );
			   
		     break;
           case "nu":
           case "pn":
           case "ur":
           case "tx":
           case "tb":
             if(is_empty(val)){
               b_field_ok=false;
               set_form_field_on_error( el, !b_field_ok );
             }

             break;
         }
         if(!b_field_ok)
           b_form_ok=false;

       }


   }
   

   
   // clear radio array
   arr_handled_radios=new Array();
   arr_handled_radios_result=new Array();
   return b_form_ok; 
  }

  var arr_handled_radios=new Array();
  var arr_handled_radios_result=new Array();

  function is_checked_radio_fam(f, nam ){
    // check radio once
    if(!in_array( arr_handled_radios, nam ) ){
      arr_handled_radios[arr_handled_radios.length]=nam;
      tmpi=arr_handled_radios_result.length;
      arr_handled_radios_result[tmpi]=0;


      el=f.elements[nam];
      for(rd=0;rd<el.length;rd++)
        if(el[rd].checked){
          arr_handled_radios_result[tmpi]=1;
          return 1;
        }
    }

    return arr_handled_radios_result[getValFromArray( arr_handled_radios, nam, -1 )];
  }

  function set_form_field_on_error( el, true_or_false ){
    var d=document;
    if(el){
      if(!el.type == 'radio'){
        if(true_or_false)
          el.className = el.className.replace(/form_field_valid/gi,'form_field_invalid');
        else
          el.className = el.className.replace(/form_field_invalid/gi,'form_field_valid');
      }
      var err_text=d.getElementById("lbl_form_error_field_"+nam);

      if(err_text)
        err_text.style.visibility=(true_or_false?"visible":"hidden"); 
     }
  }

  function is_empty( val ){
    return (val.length==0);
  }

  function is_email( val ){
    return !((val.length < 6) || (val.indexOf('@') < 1) || (val.indexOf('.') < 1));
  }
 
  function is_date(datestr) {
    var dd, mm, yyyy, da, td, cd, cm, cy;
    
    // Make sure there's a '-' character in the string
    if (!datestr.indexOf('-') > 0) return false;
    // Split string into array
    da = datestr.split('-');
    // Make sure there's three parts in the array
    if (da.length != 3) return false;
    // Load into local vars
    dd = da[0]; mm = da[1]; yyyy = da[2];
    // Make sure these are numbers  
    if(isNaN(dd))   return false;
    if(isNaN(mm))   return false;
    if(isNaN(yyyy)) return false;    

    // Check day
    if (!(dd.length >= 1) && (dd.length <= 2)) return false;
    // Check month
    if (!(mm.length >= 1) && (mm.length <= 2))  return false;
    // Check year
    if (!(yyyy.length == 4)) return false;
    
     // Parse as numbers
    dd = parseInt(dd, 10);    mm = parseInt(mm, 10);    yyyy = parseInt(yyyy, 10);
    
    // Year must be between 1753 and 9999
    if(!((yyyy >= 1753) && (yyyy <= 9999))) return false;
    
    // Got (d)d-(m)m-yyyy format for sure
    // Create date
    td = new Date(yyyy, mm - 1, dd);
    cd = td.getDate();   cm = td.getMonth() + 1;   cy = td.getFullYear();
    
    // Check if date is the same as it seems (31-09 != 01-10)!
    if(!((cd == dd) && (cm == mm) && (cy == yyyy))) return false;
   
    return true;
  }

  function setBoxSelectionItem(sFieldName, sVal, true_or_false){
    var f = document.forms[0];
    var el = f.elements[sFieldName];
    var tmpItems = new Array();
    var newitemarray = new Array();
    if(el){
      tmpItems=el.value.split("|");

      //add when not available
      if(true_or_false){
        if(!in_array(tmpItems, sVal)){
          el.value+=sVal+"|";
        }

	  // delete when available
      }else{
        if(in_array(tmpItems, sVal)){
          t=0;
		  for(g=0;g<tmpItems.length;g++){
		    if(tmpItems[g]!=sVal){
  		      newitemarray[t]=tmpItems[g];
  		      t++;
  		    }
          }
          el.value=newitemarray.join("|");
		}
      }

	}
   }

      function getCheckBoxSelection( sFieldName, arrSelected, arrList, sStyle )      {
        var s = new String();
        var sSelectedIndexes=new String();

        for(i=0;i<arrList.length;i++){
          curval=arrList[i][0];
          curdescription=arrList[i][1];
          b_is_selected=in_array( arrSelected, curval );

          s+="<input type='checkbox' onclick='setBoxSelectionItem(\""+sFieldName+"\", \""+curval+"\", this.checked)' style='"+sStyle+"' value='on'"+(b_is_selected?" checked":"")+"> "+curdescription+"<br />";
          if(b_is_selected)
            sSelectedIndexes+=curval+"|";
        }
        s+="<input type='hidden' name='"+sFieldName+"' value='"+sSelectedIndexes+"'>";

		return s;
        
      }

      function getDoubleSelection( sFieldName, arrSelected, arrList, sStyle ){
        
        var s = new String();
        var sSelected = new String();
        var selectedoptions = new String();
        var unselectedoptions = new String();
        var sSelectedIndexes = new String();

        sFieldName=sDDPrefix+sFieldName;

        for(ilist=0;ilist<arrList.length;ilist++){
          val = arrList[ilist][0];
          des = arrList[ilist][1];

          soption = "<option value='"+val+"'"+sSelected+">"+des+"</option>";
          if(in_array( arrSelected, val )){
            selectedoptions += soption;
            if(sSelectedIndexes.length>0)
              sSelectedIndexes += "|"
            sSelectedIndexes += val;
          }else
            unselectedoptions += soption;
        }
        hiddenFieldName = sFieldName.substr( sDDPrefix.length, sFieldName.length - sDDPrefix.length );

        sDataBox = "<input type='hidden' name='"+hiddenFieldName+"' value='"+sSelectedIndexes+"'>";
        s += sDataBox;

		s += "<table class='multiselection_boxes'>";
        s += "<tr>";
        s += "<td align='center'><span id='options_selected_header'>"+s_active+"</span></td></tr>";  
		s += "<tr><td>"
		s += get_multiplebox(sFieldName,selectedoptions,sStyle);
		s += "</td>";
        s += "</tr>";
		s += "<tr><td style='text-align: center;'>";
		s += "<input type='button' value='&nbsp;&uarr;&nbsp;' onclick='startAction(getObject(\""+sFieldName+nsddstring+"\"))'>&nbsp;&nbsp;";
        
        // >
        s += "<input type='button' value='&nbsp;&darr;&nbsp;' onclick='startAction(getObject(\""+sFieldName+"\"))'>";
		s += "</td></tr>";
		s += "<tr>";
        s += "<td align='center'><span id='options_unselected_header'>"+s_inactive+"</span></td></tr><td>";
		s += get_multiplebox(sFieldName+nsddstring,unselectedoptions,sStyle);
        s += "</td></tr>";
		s += "</table>";
		
		/*
        s += "<table class='multiselection_boxes'>";
        s += "<tr>";
        s += "<td align='center'><span id='options_selected_header'>"+s_active+"</span></td>";
        s += "<td align='center'>&nbsp;</td>";
        s += "<td align='center'><span id='options_unselected_header'>"+s_inactive+"</span></td>";
        s += "</tr>";

        s += "<tr>";
        // <span style='font-size:28px;color:green;'>V</span>
        s += "<td>";
        s += get_multiplebox(sFieldName,selectedoptions,sStyle);
        s += "</td>";
		
        s += "<td align='center'>";
        
        // < 
        s += "<input type='button' value='&nbsp;&lt;&nbsp;' onclick='startAction(getObject(\""+sFieldName+nsddstring+"\"))'><br><br>";
        
        // >
        s += "<input type='button' value='&nbsp;&gt;&nbsp;' onclick='startAction(getObject(\""+sFieldName+"\"))'>";

        s +="</td>";

        // <span style='font-size:28px;color:red;'>X</span>
        s += "<td>";
        s += get_multiplebox(sFieldName+nsddstring,unselectedoptions,sStyle);
        s += "</td>";
        
        s += "</tr>";
        s += "</table>";
		*/
        return s;
      }

      function get_multiplebox( sFieldName, sOptionString, sStyle ){
        var ssel = new String("");
        if(!sStyle)
          sStyle='';

        ssel += "<select name='"+sFieldName+"' style='"+sStyle+"' multiple='true' onDblClick='startAction(this)' class='double_selection_drop_down'>";
        ssel += sOptionString;
        ssel += "</select>";
        return ssel;
      }

      function in_array( arrSource, vItem ){
        for( aindex=0;aindex<arrSource.length;aindex++){
          if( arrSource[aindex] + "" == vItem + ""){
            return true;
            break;
          }

        }
        return false;
      }

    //addition to double dropdowns, unselected field(right box)
     var nsddstring = new String("__dddns");
     var ddstring = new String("__ddd");
     var sDDPrefix = "xhi_selection_";

     function getObject(n, d) { //v4.0
       var p,i,x; 
       if(!d) 
         d=document;

       if((p=n.indexOf("?"))>0&&parent.frames.length) {
        d=parent.frames[n.substring(p+1)].document; 
        n=n.substring(0,p);
       }
       if(!(x=d[n])&&d.all) 
         x=d.all[n]; 

       if(d.forms)
         for (i=0;!x&&i<d.forms.length;i++) 
           x=d.forms[i][n];

       for(i=0;!x&&d.layers&&i<d.layers.length;i++) 
         x=getObject(n,d.layers[i].document);

       if(!x && document.getElementById) 
         x=document.getElementById(n); 

       return x;
      }

   
      function startAction(objSource){


        if(objSource && objSource.selectedIndex != -1){
    
          var objName = new String(objSource.name);

          bLeftBoxClicked = true;
          if( objName.substr( objName.length - nsddstring.length, nsddstring.length ) == nsddstring )
            bLeftBoxClicked = false;

          //box unselected items clicked(right)          
          if(bLeftBoxClicked)
            sDesObject = objName + nsddstring;
          //box selected items clicked(left)
          else
            sDesObject = objName.substr(0, objName.length - nsddstring.length);


          var objDes = getObject(sDesObject);
          var arrSelectedOptions = new Array(objSource.options.length, 2);
          var iselindex = new Number();
         
          for(seloption=0;seloption<objSource.options.length;seloption++)
            if(objSource.options[seloption].selected == true){
              arrSelectedOptions[iselindex] = [objSource[seloption].value, objSource[seloption].text];
              iselindex++;
            }

          for(seloption=0;seloption<iselindex;seloption++){
            sOptionValue = arrSelectedOptions[seloption][0];
            sOptionText = arrSelectedOptions[seloption][1];

            if(objDes)
              addToDD(objDes, sOptionValue, sOptionText );
          
            removeFromDD( objSource, sOptionValue );
            }

            //create index data array
           var sSelectedIndexes = new String();

           if(!bLeftBoxClicked)
             objSource = objDes;

           for(seloption=0;seloption<objSource.options.length;seloption++){
              
              if(sSelectedIndexes.length>0)
                sSelectedIndexes += "|";
              sSelectedIndexes += objSource[seloption].value;
              }

           document.forms[0].elements[objSource.name.substr( sDDPrefix.length, objSource.name.length - sDDPrefix.length )].value = sSelectedIndexes;
         }


      }
      function removeFromDD( objElement, iIdToRemove ){
        for(ioptions=0;ioptions<objElement.options.length;ioptions++)
          if(objElement.options[ioptions].value == iIdToRemove)
            objElement.options[ioptions] = null;
         
      }

      function getValFromDD( objElement, iIdToGet ){
        vReturnVal = false;
        for(ioptions=0;ioptions<objElement.options.length;ioptions++)
          if(objElement.options[ioptions].value + "" == iIdToGet + ""){
            vReturnVal = objElement.options[ioptions].text;
            break;
          }
        return vReturnVal;
      }

      function isInDD( objElement, idToCheck ){
      	return getValFromDD( objElement, idToCheck ) != false;
      }

      function addToDD( objElement, sNewValue, sNewText, bAllowDouble ){
        if(objElement){
          //do not allow multiple values is allowDouble Param is set
          if(isInDD(objElement, sNewValue) && !bAllowDouble)
            return;

          objElement.options.length++;
          if(objElement.options.length==1){
             objElement.options[0].value = sNewValue;
             objElement.options[0].text = sNewText; 
          }else{
            bElementInserted = false;
            for(ioptions=objElement.options.length-2;ioptions>=0;ioptions--){
              objElement.options[ioptions+1].value = objElement.options[ioptions].value
              objElement.options[ioptions+1].text = objElement.options[ioptions].text
              if(objElement.options[ioptions].text < sNewText){
                objElement.options[ioptions+1].value = sNewValue;
                objElement.options[ioptions+1].text = sNewText;
                bElementInserted = true;
                break;
              }
              
            }
            if(!bElementInserted){
             objElement.options[0].value = sNewValue;
             objElement.options[0].text = sNewText; 
            }
              
          }
        }
      }
      
      function moveAllOptions( objSourceId, objDestinationId ){
        var objSource = getObject(objSourceId);
        var objDestination = getObject(objDestinationId);

        if(objSource && objDestination ){

          for(ilistmv=0;ilistmv<objSource.options.length;ilistmv++)
            addToDD( objDestination, objSource[ilistmv].value, objSource[ilistmv].text )

          for(ilistmv=0;ilistmv<objSource.options.length;ilistmv++){
            alert("remov:" + objSource[ilistmv].text);
            removeFromDD( objSource, objSource[ilistmv].value );
          }

        }
      }

/*----------------------------------------------------------------------------\
|                                Table Sort                                   |
|-----------------------------------------------------------------------------|
|                         Created by Erik Arvidsson                           |
|                  (http://webfx.eae.net/contact.html#erik)                   |
|                      For WebFX (http://webfx.eae.net/)                      |
|-----------------------------------------------------------------------------|
| A DOM 1 based script that allows an ordinary HTML table to be sortable.     |
|-----------------------------------------------------------------------------|
|                  Copyright (c) 1998 - 2002 Erik Arvidsson                   |
|-----------------------------------------------------------------------------|
| This software is provided "as is", without warranty of any kind, express or |
| implied, including  but not limited  to the warranties of  merchantability, |
| fitness for a particular purpose and noninfringement. In no event shall the |
| authors or  copyright  holders be  liable for any claim,  damages or  other |
| liability, whether  in an  action of  contract, tort  or otherwise, arising |
| from,  out of  or in  connection with  the software or  the  use  or  other |
| dealings in the software.                                                   |
| - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
| This  software is  available under the  three different licenses  mentioned |
| below.  To use this software you must chose, and qualify, for one of those. |
| - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
| The WebFX Non-Commercial License          http://webfx.eae.net/license.html |
| Permits  anyone the right to use the  software in a  non-commercial context |
| free of charge.                                                             |
| - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
| The WebFX Commercial license           http://webfx.eae.net/commercial.html |
| Permits the  license holder the right to use  the software in a  commercial |
| context. Such license must be specifically obtained, however it's valid for |
| any number of  implementations of the licensed software.                    |
| - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
| GPL - The GNU General Public License    http://www.gnu.org/licenses/gpl.txt |
| Permits anyone the right to use and modify the software without limitations |
| as long as proper  credits are given  and the original  and modified source |
| code are included. Requires  that the final product, software derivate from |
| the original  source or any  software  utilizing a GPL  component, such  as |
| this, is also licensed under the GPL license.                               |
|-----------------------------------------------------------------------------|
| 1998-??-?? | First version                                                  |
|-----------------------------------------------------------------------------|
| Created 1998-??-?? | All changes are in the log above. | Updated 2001-??-?? |
\----------------------------------------------------------------------------*/


var dom = (document.getElementsByTagName) ? true : false;
var ie5 = (document.getElementsByTagName && document.all) ? true : false;
var arrowUp, arrowDown;

if (ie5 || dom)
	initSortTable();

function initSortTable() 
{
	/* changed this function -- vincent*/

	arrowUp = document.createElement("SPAN");
	arrowUp.innerHTML="&uarr;";
	arrowUp.className = "arrow";

	arrowDown = document.createElement("SPAN");
    arrowDown.innerHTML="&darr;";
	arrowDown.className = "arrow";
}

function sortTable(tableNode, nCol, bDesc, sType) {
	var tBody = tableNode.tBodies[0];
	var trs = tBody.rows;
	var trl= trs.length;
	var a = new Array();
	
	for (var i = 0; i < trl; i++) {
		a[i] = trs[i];
	}
	
	var start = new Date;
	//window.status = "Sorting data...";
	a.sort(compareByColumn(nCol,bDesc,sType));
	//window.status = "Sorting data done";
	
	for (var i = 0; i < trl; i++) {
		tBody.appendChild(a[i]);
		//window.status = "Updating row " + (i + 1) + " of " + trl +
		//				" (Time spent: " + (new Date - start) + "ms)";
	}
	
	// check for onsort
	if (typeof tableNode.onsort == "string")
		tableNode.onsort = new Function("", tableNode.onsort);
	if (typeof tableNode.onsort == "function")
		tableNode.onsort();
}

function CaseInsensitiveString(s) {
	return String(s).toUpperCase();
}

function parseDate(s) {
	return Date.parse(s.replace(/\-/g, '/'));
}

/* alternative to number function
 * This one is slower but can handle non numerical characters in
 * the string allow strings like the follow (as well as a lot more)
 * to be used:
 *    "1,000,000"
 *    "1 000 000"
 *    "100cm"
 */

function toNumber(s) {
    return Number(s.replace(/[^0-9\.]/g, ""));
}

function compareByColumn(nCol, bDescending, sType) {
	var c = nCol;
	var d = bDescending;
	
	var fTypeCast = String;
	
	if (sType == "Number")
		fTypeCast = Number;
	else if (sType == "Date")
		fTypeCast = parseDate;
	else if (sType == "CaseInsensitiveString")
		fTypeCast = CaseInsensitiveString;

	return function (n1, n2) {
		if (fTypeCast(getInnerText(n1.cells[c])) < fTypeCast(getInnerText(n2.cells[c])))
			return d ? -1 : +1;
		if (fTypeCast(getInnerText(n1.cells[c])) > fTypeCast(getInnerText(n2.cells[c])))
			return d ? +1 : -1;
		return 0;
	};
}

function sortColumnWithHold(e) {
	// find table element
	var el = ie5 ? e.srcElement : e.target;
	var table = getParent(el, "TABLE");
	
	// backup old cursor and onclick
	var oldCursor = table.style.cursor;
	var oldClick = table.onclick;
	
	// change cursor and onclick	
	table.style.cursor = "wait";
	table.onclick = null;
	
	// the event object is destroyed after this thread but we only need
	// the srcElement and/or the target
	var fakeEvent = {srcElement : e.srcElement, target : e.target};
	
	// call sortColumn in a new thread to allow the ui thread to be updated
	// with the cursor/onclick
	window.setTimeout(function () {
		sortColumn(fakeEvent);
		// once done resore cursor and onclick
		table.style.cursor = oldCursor;
		table.onclick = oldClick;
	}, 100);
}

function sortColumn(e) {
	var tmp = e.target ? e.target : e.srcElement;
	var tHeadParent = getParent(tmp, "THEAD");
	var el = getParent(tmp, "TD");

  // Never sort on first column!
  if(false && tHeadParent)
  	if(tHeadParent.childNodes[0].childNodes[0] == el)
      return;
	
	if (tHeadParent == null)
		return;
		
	if (el != null) {
		var p = el.parentNode;
		var i;

		// typecast to Boolean
		el._descending = !Boolean(el._descending);

		if (tHeadParent.arrow != null) {
			if (tHeadParent.arrow.parentNode != el) {
				tHeadParent.arrow.parentNode._descending = null;	//reset sort order		
			}
			tHeadParent.arrow.parentNode.removeChild(tHeadParent.arrow);
		}

		if (el._descending)
			tHeadParent.arrow = arrowUp.cloneNode(true);
		else
			tHeadParent.arrow = arrowDown.cloneNode(true);

		el.appendChild(tHeadParent.arrow);

			

		// get the index of the td
		var cells = p.cells;
		var l = cells.length;
		for (i = 0; i < l; i++) {
			if (cells[i] == el) break;
		}

		var table = getParent(el, "TABLE");
		// can't fail
		
		sortTable(table,i,el._descending, el.getAttribute("type"));
	}
}


function getInnerText(el) {
	if (ie5) return el.innerText;	//Not needed but it is faster
	
	var str = "";
	
	var cs = el.childNodes;
	var l = cs.length;
	for (var i = 0; i < l; i++) {
		switch (cs[i].nodeType) {
			case 1: //ELEMENT_NODE
				str += getInnerText(cs[i]);
				break;
			case 3:	//TEXT_NODE
				str += cs[i].nodeValue;
				break;
		}
		
	}
	
	return str;
}

function getParent(el, pTagName) {
	if (el == null) return null;
	else if (el.nodeType == 1 && el.tagName.toLowerCase() == pTagName.toLowerCase())	// Gecko bug, supposed to be uppercase
		return el;
	else
		return getParent(el.parentNode, pTagName);
}
var arr_rates = new Array();
function recalculate_credit_form( obj ){

  if(f){
    //read values
    sr=f.elements['xhi_syscredit_rate'].value;
    icredits=force_number(f.elements['rnu_credits_to_buy'].value);
    ieuros=force_number(f.elements['rnu_credits_to_buy_in_euros'].value);
    sratecode= f.elements['rlb_currency_code'].options[f.elements['rlb_currency_code'].selectedIndex].value;
    irate=getValFromArray(arr_rates, sratecode , 1, 0 );
    iforcurrate=force_number(f.elements['rnu_foreign_currency'].value);

    objname=( obj ? obj.name : '');
      
    switch(objname){
      case 'rlb_currency_code':
      case 'rnu_credits_to_buy_in_euros':
          icredits=Math.round(ieuros/sr*100*100);
          iforcurrate=display_currency(Math.round(ieuros*irate*100)/100);
        break;

      case 'rnu_foreign_currency':
          ieuros=display_currency(Math.round(iforcurrate*(1/irate)*100)/100);
          icredits=Math.round(ieuros/sr*100*100);
        break;
      default:
          ieuros=display_currency(Math.round(sr*icredits/100)/100);
          iforcurrate=display_currency(Math.round(ieuros*irate*100)/100);
         break;
    }


    f.elements['xhi_foreign_currency_rate'].value=irate;

    // set values
    if(objname!='rnu_credits_to_buy')
      f.elements['rnu_credits_to_buy'].value=icredits;

    if(objname!='rnu_credits_to_buy_in_euros')
      f.elements['rnu_credits_to_buy_in_euros'].value=ieuros;

    if(objname!='rnu_foreign_currency')  
      f.elements['rnu_foreign_currency'].value=iforcurrate;

  }
}

function strip_string( sstring, sallow ){
  sn='';

  for(c=0;c<sstring.length;c++){
    if(sallow.indexOf(sstring.substr( c, 1)) > -1 )
      sn+=sstring.substr( c, 1);
  }
  return sn;
}

function force_number( snum ){
 snum=snum.toString().replace(/,/gi,'.');
 snum=strip_string( snum, '1234567890.');
 anum=snum.split('.');
 snewnum='';

 // use last dot only
 for(ipart=0;ipart<anum.length;ipart++){


   if(anum.length-1==ipart && anum.length>1)
     snewnum+='.'+anum[ipart];
   else
     snewnum+=anum[ipart];
 }
 return snewnum;
}

function display_currency( dcur ){
      if(dcur.toString().indexOf('.') == -1){
        dcur=dcur.toString()+'.00';
      } else {
        if(dcur.toString().length-dcur.toString().indexOf('.')== 2)
          dcur=dcur.toString()+'0';
      }
   return dcur;
}

 var mouseX, mouseY;

function getMousePos(e){
  if (!e)
	var e = window.event||window.Event;

	if('undefined'!=typeof e.pageX){
	  mouseX = e.pageX;
	  mouseY = e.pageY;
	}else{
	  mouseX = e.clientX + document.body.scrollLeft;
	  mouseY = e.clientY + document.body.scrollTop;
	}
  }

  if(window.Event && document.captureEvents)
	document.captureEvents(Event.MOUSEMOVE);

  document.onmousemove = getMousePos;

  function tooltip(obj_id, status){
	tmpobj=document.getElementById(obj_id);
	if(tmpobj){
	  if(status){
		tmpobj.style.left=(mouseX-30)+'px';
		tmpobj.style.top=(mouseY+5)+'px';
		tmpobj.style.display='inline';
	  }else{
		tmpobj.style.display='none';
	  }
	}
  }
  
  function show_pdf(pdf_id){

	var objOverlay = document.getElementById('guestbook_sign_grayout');
	var objWindow = document.getElementById('guestbook_sign_window');
	var xx = document.getElementById('xx');
	
	var advertisements = document.getElementsByTagName('a');
	
	for(var i=0; i<advertisements.length; i++)
	{
		if(advertisements[i].className == 'advertisement_link')
		{
			advertisements[i].style.display = 'none';
		}
	}
	
  if(typeof getPageSize == 'function') {
  	var arrayPageSize = getPageSize();
  	var arrayPageScroll = getPageScroll();
  	
  	var xxParent = xx.parentNode;
  	xxParent.removeChild(xx);
  	var newxx = xxParent.appendChild(document.createElement('embed'));
  	
  	newxx.src = "getfile.php?fid="+pdf_id+"#pagemode=none&scrollbar=1&toolbar=1&zoom=100&messages=0&statusbar=0&navpanes=0&searchpane=0";
  	newxx.id = "xx";
  	newxx.width = 700;
  	newxx.height = 600;

  	
  	objOverlay.style.zIndex = '900';	
  	objOverlay.style.height = (arrayPageSize[1] + 'px');
  	objOverlay.style.display = 'block';

  	/* Position the window */
  	var lightboxTop = arrayPageScroll[1] + ((arrayPageSize[3] - 35 - 600) / 2);
  	var lightboxLeft = ((arrayPageSize[0] - 20 - 700) / 2);
  	
  	objWindow.style.top = (lightboxTop < 0) ? "0px" : lightboxTop + "px";
  	objWindow.style.left = (lightboxLeft < 0) ? "0px" : lightboxLeft + "px";
  	objWindow.style.zIndex = '999';	
  	objWindow.style.display = 'block';	
    
    return false;
	}
	
}
  
function _closeSign()
{	
	var objOverlay = document.getElementById('guestbook_sign_grayout');
	var objWindow = document.getElementById('guestbook_sign_window');
		
	objOverlay.style.display = 'none';
	objWindow.style.display = 'none';
	
	var advertisements = document.getElementsByTagName('a');
	
	for(var i=0; i<advertisements.length; i++)
	{
		if(advertisements[i].className == 'advertisement_link')
		{
			advertisements[i].style.display = 'block';
		}
	}
	
	return false;
}
  
function show_tab(tabname, object)
{
	var tabname = tabname;	
	var divs = document.getElementsByTagName('div');
	var tab_field = document.getElementById("tab_"+tabname);
	var last_tab = document.getElementById("last_tab");
		
	for(i=0; i<divs.length; i++)
	{
		if(divs[i].id.substr(0, 4) == 'tab_')
		{
			divs[i].style.display = 'none';
		}

		if(divs[i].id.substr(0, 7) == 'toptab_')
		{
			//divs[i].style.fontWeight = 'normal';
			divs[i].style.color = '#0000EE';
			divs[i].style.textDecoration = 'underline';
		}
	}		
	
	tab_field.style.display = "block";
	object.style.color = 'black';
	object.style.textDecoration = 'none';
	last_tab.value = tabname;

}

function bannerClick(url){
  doClick('','banner',url);
}
 
function brochureUrlClick(brochure_id, url){
  doClick(brochure_id,'brochure_url',url);
}

function doClick(brochure_id, type, url){
  if(!brochure_id)
    brochure_id = '';
  
  if(!type)
    type='banner';
  
  if(!url)
    url='local'
  if(abs_root)
  request_page(abs_root + "scripts/clickcount.php?brochure_id="+escape(brochure_id)+"&type="+escape(type)+"&url="+escape(url));
}

function request_page(src){
  var e = document.createElement("script");
  e.src = src + "&cache=" + new Date().getTime();
  e.type="text/javascript";

  document.getElementsByTagName("head")[0].appendChild(e);
}
/* CUSTOM SCROLLER */
var i = new Number(0);
var interValler= new Array();
var orgText=new Array();
var orgHeight = new Array();
/* CUSTOM SCROLLER FUNCTION */
function startScroll(idObj){
   var to= document.getElementById(idObj);

  if(to&&to.scrollTop!=null){

   if(orgText[idObj]==null){
      orgText[idObj]=to.innerHTML+"<div style='height:"+parseInt(to.offsetHeight/2)+"px;'><!--spacer--></div>";
      to.innerHTML="<div style='height:"+to.offsetHeight+"px;'><!--spacer--></div>"+orgText[idObj];
   }

   if(orgHeight[idObj]==null)
      orgHeight[idObj]=to.scrollHeight-to.offsetHeight;

   interValler[idObj]= window.setInterval("scroll('"+idObj+"')",105);

   }

}
/* CUSTOM SCROLLER FUNCTION */
function scroll(idObj){
   var to= document.getElementById(idObj);
   if(to){
    if((i%orgHeight[idObj])>orgHeight[idObj]-2){
     to.innerHTML+="<br><br>"+orgText[idObj];
    }

    to.scrollTop=i;
    i=i+1;

    // reset after 250 rounds ;)
    if(i>orgHeight[idObj]*250){
       orgText[idObj]=null
       orgHeight[idObj]=null;
       window.clearInterval(interValler[idObj]);
       startScroll(idObj);

       }

    }
}
/* END CUSTOM SCROLLER*/

