/*  agility.js - used to control admin interface  */
var logout_timer=false; // use to control the time out so that user is logged out when appropriate
var current_element=false;
var state_icon_off='../images/status_0.gif'
var state_icon_on='../images/status_1.gif'
var state_icon=''
var oEditor=false;
var tabbing=false;
var sEditor=false;
// catch-all function that can be used to apply dhtml functions as appropriate to the context
function setup_page(){
    //alert("here")
    clearTimeout(logout_timer);
    var el=get_el("bulk_operations");
    if (el){
        eval("adjust_workspace();");
        eval("populate_groups();");
    }

    
    var el=get_el("window_name");
    if (el){
        window.name=el.value
    }
    var el=get_el('text_editor');
    if (el){
        $('admin_command_bar').hide();
    }
    var el=get_el('utility');
    if (el) {
        new Effect.BlindUp('utility');
    }
    
    
    //are we sorting information ?
    var el=get_el('list_div');
    if (el){
        setup_sort_console();
    }
    // load the session timeout parameter
    var el=get_el('session_timeout');
    if (el){
        setup_page_timeout('session_timeout');
    }

    
    
    var el=get_el('database_editor');
    if (el){
        setup_tab_tracking('database_editor');
    }
    // check if we need to initialise the editor
    var el=get_el('text_editor');
    if(el){
        setup_editor();
        var el=get_el('admin_command_bar');
        if (el){
            $('admin_command_bar').show();
        }

    }

    


    fix_height();    
    Event.observe(document,'click',function(event){
    //var el=Event.findElement(event);
    var el=get_el('utility');
    if (el){
        if (!$('utility').visible()){
            current_element=Event.findElement(event);
        }
    }
    })
    var el=get_el('admin_login_dialogue');
    if (el) {
        new Effect.BlindUp('admin_login_dialogue',{
            duration: 0.2,
            afterFinish: function(){
                new Effect.Appear('admin_login_dialogue',{
                    duration:.8,
                    afterFinish: function(){setup_tab_tracking('admin_login_dialogue')}
                    });
            }});
    }

    var el=get_el('personalac');
    if (el){
        eval('setup_personal_ac_form();');
    }
    var el=get_el('banner_form');
    if (el){
        eval('setup_banner_editor();')
    }
    var el=get_el('infocontainer');
    if (el){
     eval('Element.hide(\'infocontainer\');');
    }
    var el=get_el('list_sales_categories');
    if (el){
       Event.observe('list_sales_categories','change',sales_category);
    }
var el=get_el("load_events");
    if (el){
        
        eval(el.value);    
    }   
}

function tickle_session(){
 clearTimeout(logout_timer);
     var el=get_el('session_timeout');
    if (el){
        setup_page_timeout('session_timeout');
    }
    

}
//hide the service menu to make space
function adjust_workspace(){
    //$('logo_area').hide();
    $('tools_menu').hide();
}

//populate_groups: uses ajax to populate the list of groups used for indexing
function populate_groups(){
    //pick up the url for populating groups
    var el=get_el('group_url');
    if (!el){return void[0];}
    var params=$F('group_url')
    var url="../asp/ajax_2008.asp"
    //to debug this uncomment the line below
    //window.location.href=url + '?' + params
    // use ajax to 'get' the information
    ajax_get_url(url,params, 'bulk_groups_panel','')
    // this writes the 'results' to the 'bulk_groups_panel' div
}
//load_index_group: populates the 'members' and 'available' panels
function load_index_group(param_o, param_g){
    var m_params='objectid=' + param_o + '&groupid=' + param_g + '&mode=100&tag=index_group_members'
    var d_params='objectid=' + param_o + '&groupid=' + param_g + '&mode=100&tag=index_group_pool'
    var url="../asp/ajax_2008.asp"
    // use ajax to 'get' the information
    ajax_get_url(url,m_params, 'bulk_members_panel', '');
    ajax_get_url(url,d_params, 'bulk_data_panel', '');
    
    var siblings=$A($(bulk_groups_panel).select('a'));
    var evtoggle=function(e){
        if (e.hasClassName('group_selected')){
            e.toggleClassName('group_selected');
        }
    }
    siblings.each(evtoggle);
    $('group_' + param_g).toggleClassName('group_selected');
    
}

//add_member: takes an item from the pool and adds it to the members, updates db simulataneously and removes from the pool
function add_member(param_o,param_g,param_id){
    var params='objectid=' + param_o + '&groupid=' + param_g + '&mode=100&action=add_to_index&id=' + param_id
    var url="../asp/ajax_2008.asp"
    // use ajax to 'get' the information
    ajax_get_url(url,params, '', '')
    var html='<li style="margin-bottom:.5em;" id="member_' + param_id + '">' + $('pool_' + param_id).innerHTML.toString().replace('add_member','delete_member') + '</li>'
    $('group_members').insert(html);
    Element.remove('pool_' + param_id);
    
}

//delete_member: takes an item from the pool and adds it to the members, updates db simulataneously and removes from the pool
function delete_member(param_o,param_g,param_id){
    var params='objectid=' + param_o + '&groupid=' + param_g + '&mode=100&action=remove_from_index&id=' + param_id
    var url="../asp/ajax_2008.asp"
    // use ajax to 'get' the information
    ajax_get_url(url,params, '', '')
    var html='<li style="margin-bottom:.5em;" id="member_' + param_id + '">' + $('member_' + param_id).innerHTML.toString().replace('delete_member','add_member') + '</li>'
    $('pool_members').insert(html);
    Element.remove('member_' + param_id);
    
}

//setup_tab_tracking: when displaying a form we set a highlight to indicate which 'line' a user has moved focus to
function setup_tab_tracking(param_el){
if (tabbing==true){return void[0]}
    var cls_highlight='highlighted';
    var el=get_el('cls_highlight');
    if (el){
        cls_highlight=$('cls_highlight').value;
    }
    var children=$A($(param_el).select('input.admin_input','select.admin_input','textarea.admin_input'));
    //alert(children.length);
    var evfocus=function(el)
    {   
        //alert(Rico);
         Event.observe(el,'focus',function(){
            var row_name='row_' + el.id;
            var r=get_el(row_name);
            if (r){
                if (!$(row_name).hasClassName(cls_highlight)){
                    $(row_name).toggleClassName(cls_highlight);
                }
            }
         });
         Event.observe(el,'blur',function(){
            var row_name='row_' + el.id;
            var r=get_el(row_name);
            if (r){
                $(row_name).toggleClassName(cls_highlight);
            }
         });
         //Rico.Corner.round(el.id);
    }
    children.each(evfocus);
    var el=get_el("save");
    if (el){
        $('save').focusFirstElement();
    }
    tabbing==true;
}


//setup_editor: loads the fck editor control and attach user stylesheet (if valid)
function setup_editor(){
/* Loads the new FCK Editor  */

    var datasource_name = 'fd_' + $('FCKDATASOURCE').value;
    var prefix=$('fck_base_url').value;
    
    //var sBasePath = document.location.pathname.substring(0,document.location.pathname.lastIndexOf('common')) ;
    var sBasePath = prefix + '/fck/fckeditor/';
    
    oEditor = new FCKeditor('txtHTML') ;
//    oEditor = new FCKeditor('FCKeditor1') ;
    //alert(oFCKeditor);
    oEditor.BasePath	= sBasePath ;
    oEditor.Height	= 300 ;
    //oEditor.Value = $(datasource_name).value
    var toolbar_set=$('html_editor_to_use').value
    var el=get_el("fck_css"); // this parameter set in enhanced_form.inc and can contain a comma delimited list of css files
    if (el){
        buffer=el.value;
        //alert(buffer);
        if (buffer.length!=0){
            //alert(buffer.indexOf(','));
            if (buffer.indexOf(',') > 0){
                var css=buffer.split(",");
                oEditor.Config['EditorAreaCSS'] = css;
            }
            else{
                oEditor.Config['EditorAreaCSS'] =buffer;
            
            }
        }        
    }
    var el=get_el("fck_css_body"); // this parameter set in enhanced_form.inc and sets the element against which all styles are applied when presented in the editor
    if (el){
        buffer=el.value;
        oEditor.Config['BodyId'] = buffer;
    }
    
        
    
    oEditor.ToolbarSet = toolbar_set;
    oEditor.Config['LinkUpload'] = false;
    oEditor.Config['LinkBrowser'] = false;
//    oEditor.Create() ;
    oEditor.ReplaceTextarea() ;
   // oEditor.focus();
  // var vEditor = FCKeditorAPI.GetInstance('FCKeditor1') ;
   // alert(vEditor.GetXHTML(true));
   //alert("here")
   //initFileUploads();
   var el=get_el('second_editor');
    if(el){
        setup_second_editor();
        

    }
   setup_tab_tracking('database_editor');
}




//setup_second_editor: loads second fck editor control and attach user stylesheet (if valid)
function setup_second_editor(){
/* Loads the new FCK Editor  */
//alert("here");
    var datasource_name = 'fd_' + $('secondFCKDATASOURCE').value;
    var prefix=$('fck_base_url').value;
    
    //var sBasePath = document.location.pathname.substring(0,document.location.pathname.lastIndexOf('common')) ;
    var sBasePath = prefix + '/fck/fckeditor/';
    
    sEditor = new FCKeditor('txtSecondHTML') ;
//    oEditor = new FCKeditor('FCKeditor1') ;
    //alert(oFCKeditor);
    sEditor.BasePath	= sBasePath ;
    sEditor.Height	= 300 ;
    //oEditor.Value = $(datasource_name).value
    var toolbar_set=$('html_editor_to_use').value
    var el=get_el("fck_css"); // this parameter set in enhanced_form.inc and can contain a comma delimited list of css files
    if (el){
        buffer=el.value;
        //alert(buffer);
        if (buffer.length!=0){
            //alert(buffer.indexOf(','));
            if (buffer.indexOf(',') > 0){
                var css=buffer.split(",");
                sEditor.Config['EditorAreaCSS'] = css;
            }
            else{
                sEditor.Config['EditorAreaCSS'] =buffer;
            
            }
        }        
    }
    var el=get_el("fck_css_body"); // this parameter set in enhanced_form.inc and sets the element against which all styles are applied when presented in the editor
    if (el){
        buffer=el.value;
        sEditor.Config['BodyId'] = buffer;
    }
    
        
    
    sEditor.ToolbarSet = toolbar_set;
    sEditor.Config['LinkUpload'] = false;
    sEditor.Config['LinkBrowser'] = false;
//    oEditor.Create() ;
    sEditor.ReplaceTextarea() ;
   // oEditor.focus();
  // var vEditor = FCKeditorAPI.GetInstance('FCKeditor1') ;
   // alert(vEditor.GetXHTML(true));
   //alert("here")
   //initFileUploads();
//   setup_tab_tracking('database_editor');
}















function FCKeditor_OnComplete(editorInstance) {
        editorInstance.EditorDocument.attachEvent("onkeyup",monitor_keyup) ;
}

function monitor_keyup(editorInstance){
    var el=get_el('keyup_events');
    if (el){
        eval(el.value)
    }
}

function setCSS(css) {
	try {
		// append stylesheet to alter
		document.getElementsByTagName("head")[0].appendChild(css);
	} catch (e) {
		//setTimeout(function(){setCSS(css)}, 100);
	}
}

//setup the log out timer
function setup_page_timeout(param_el){

    var t = parseInt($F(param_el)) * 60 * 1000;
    logout_timer = setTimeout(logout, t);
}

//logout: forces the user to log on again
function logout(){
    window.focus();
    alert("Sorry but due to inactivity your session has timed out and you must log on again!");
    if (self.opener){
        self.opener.location.href='?action=logout_account' 
        self.close();
    }
    else{
        document.location.href='?action=logout_account'
    }
}


// setup the sorting console
function setup_sort_console(){
    var astring = $F('txt_sequence');
    var elarray = astring.split("$|$");
    var counter = 0;
    var html='';
    
    for (var i=0;i<elarray.length;i++){
        switch(counter){
            case 0: // uid
                var uniqueid=elarray[i]
                counter=1;
            break;
            case 1: // title
                var title=elarray[i]
                counter=2;
            break;
            case 2: //sequence
                var isequence=elarray[i]
//						document.write("<li id='" + uniqueid + "' class='listitem'>" + stitle + "</li>");
                var item_id='s' + uniqueid
                html+="<div  id='" + item_id + "' class='admin_sortitem'><div style='margin-left: 5px;'>" + title + "</div></div>";
                //Rico.Corner.round(item_id, {corners:"all"} );
                counter=0;
            break;
        }
    }
    $('list_div').innerHTML=html;
    var children=$A($('list_div').select('div.admin_sortitem'));
    
    var evClick=function(el)
    {   
        //alert(Rico);
         //alert(el.id); 
         //Rico.Corner.round(el.id);
    }
    children.each(evClick)
    //Rico.Corner.round('s4');
    Sortable.create("list_div",{dropOnEmpty:false,constraint:false, tag: 'div'});
    
}

//update_sort_console: saves the sort order specified by the user when sorting records
function update_sort_console(){
   // $('txt_sequence').value = "";
    		//get elements by clasname
    var classElements = new Array();
    var node = document;
    var retcode='';
    var tag = '*';
    var els = node.getElementsByTagName(tag);
    var elsLen = els.length;
    var pattern = new RegExp("(^|\\s)admin_sortitem(\\s|$)");
    var j=-1;
    for (i=0; i < elsLen; i++) {
    	if ( pattern.test(els[i].className) ) {
    	j++;
    	
    		retcode+= els[i].id.replace('s','') + "$|$" + "$|$" + j.toString() + "$|$";
    	}
    }
    $('txt_sequence').value=retcode;
    $('save').submit();
}



// fix_height; ensure that the main panel and footer fill screen
function fix_height(){
//alert("fix height");
    var h=(document.viewport.getHeight()-73).toString() + 'px';
    var g=(document.viewport.getHeight()-73).toString() + 'px';
    var k=(document.viewport.getHeight()-53).toString() + 'px';
   // alert(document.viewport.getHeight())
    //admin_body
    var el=get_el("admin_body");
    if (el){
        var k=$('admin_body').getStyle('height')
        if (parseInt(k.toString().replace('px',''))< parseInt(g.replace('px',''))){
            $('admin_body').setStyle({height: g});
        }
        else{
            $('admin_body').setStyle({height: 'auto'});
        }
    }
    // main panel 
    var el=get_el('admin_panel')  ;
    if (el) {  
        var b=$('admin_panel').getStyle('height')
        if (parseInt(b.toString().replace('px',''))< parseInt(h.replace('px',''))){
            $('admin_panel').setStyle({height: h});
        }
        else{
            $('admin_panel').setStyle({height: 'auto'});
        }
     }
     //editing area
    var el=get_el('editor_panel')  ;
    if (el) {  
        var b=$('editor_panel').getStyle('height')
        if (parseInt(b.toString().replace('px',''))< parseInt(k.replace('px',''))){
            $('editor_panel').setStyle({height: k});
        }
        else{
            $('editor_panel').setStyle({height: 'auto'});
        }
     }
    // content presentation area
    var el=get_el('admin_workspace');
    if (el){
    var w=(document.viewport.getWidth()-200).toString() + 'px';
    $('admin_workspace').setStyle({width: w});
    }
    
}

//validate_login: validates the user input
function validate_login(){
    if ($F('user_name').blank()){
        show_error_message('Please enter your user name !','error_message_panel');
        $('user_name').focus();
        return false;
    }

    if ($F('password').blank()){
        show_error_message('Please enter your password !','error_message_panel');
        $('password').focus();
        return false;
    }
    $('save').submit();
}

function show_error_message(param_message,param_wrapper, param_div){
var is_div=false;
if (param_div==true){
    is_div=true;
}
var el=get_el('display_error_message');
if (!el){is_div=false}
if (is_div==false){
    alert(param_message);
}else{
        $('display_error_message').innerHTML=param_message;
        //$(param_wrapper).absolutize();
        //$(param_wrapper).setStyle({top: 200, left:400, zIndex:100});
        new Effect.Appear(param_wrapper,{
            duration: 0.5, 
            afterFinish: function(){
            setTimeout(function(){hide_error_message(param_wrapper)},2000);
        }});
}
}
// hide the error message panel
function hide_error_message(param_wrapper){
        new Effect.Fade(param_wrapper);

}


/* ------------ backwards compatability scripts ---------------- */
// window management - for popups and backwards compatability
/* parameters for open new window
        url: url to be opened
        n: name to assign to new window
        f: use default settings? f=0 implies use custom settings
        w: factor to use when calculating window width e.g. w=2 ==> 50% of screen width
        h: factor to use when calculating window height e.g. h=2 ==> 50% of screen height
        t: top in pixels
        l: left position in pixels
        
*/

function show(param_url){
//alert(param_url);
    if (intercept_legacy(param_url)){
        return void[0];
    }
    else{
        open_new_window(param_url, '', 0, 1,1,0,0)
    }
}

function xhtml_open_link(param_url){
        open_new_window(param_url, '', 0, 1,1,0,0)

}
function showsmall(param_url){
    if (intercept_legacy(param_url)){
        return void[0];
    }
    else{
        open_new_window(param_url, '', 0, 2,2,0,0)
    }

}
function showeditor(param_url){
    if (intercept_legacy(param_url)){
        return void[0];
    }
    else{
        open_new_window(param_url, '', 0, 1,1,0,0)
    }
}
function gotopage(param_url){
    window.location.href=param_url;
}

// highlight field is here for backwards compatability
function highlight_field(param_boolean){

}

/* ------------ end backwards compatability scripts ---------------- */


/* ------------ agility 2008 scripts ---------------- */


//position_utility()
function position_utility(){
         
         var l=current_element.cumulativeOffset().left;
         var t=current_element.cumulativeOffset().top;
         var w=document.viewport.getWidth()-420;
         var d_top=document.viewport.getHeight-400;
         if (parseInt(l) > parseInt(w)){
            l=w;
         }
         if (parseInt(t)> parseInt(d_top)){
            t=d_top;
         } 
        $('utility').setStyle({top: t + 'px', left: l + 'px'}); 
        
        
            new Effect.Appear('utility',{afterFinish:function(){$('utility').scrollTo();}});
}

// display a preview of the image
function show_media_preview(param_id, param_image){
    $('preview_image').src=$(param_image).src;
    var i_left=$(param_id).cumulativeOffset().left;
    var i_top=$(param_id).cumulativeOffset().top;
    $('image_utility').setStyle({top: i_top + 'px', left: i_left + 'px'});
    $('image_utility').show();
    return void[0];    
}

//close_image_preview: hide the preview
function close_image_preview(){
    $('image_utility').hide();
    return void[0];    

}
// submit_form: execute the 'save' / 'submission' of a form - we need to do it this way because we're using A tags rather than inputs for the command buttons
function submit_form(param_form){
    var el=get_el("cs_validation");
    if (el){
        //alert("checking for form: " + param_form);
        var f=$(param_form)
        //alert(f);
        var cs_validation=f['cs_validation'];
        //alert(cs_validation);
        eval($(cs_validation).getValue());
    }
    else{
        $(param_form).submit();
    }
}

//close_form: 'cancel' button
function close_form(){
    if (self.opener){
        self.close();
    }
}

// delete: wrapper for deleting an item (displays a javascript 'are you sure' rather than opening a new window)
function agile_delete(param_object, param_record, param_list_type, param_options){
    // param_object == object id param
    // param_record == record id to delete
    //param_list_type == is this a shaped list, and if so which column - to be used to update interface dynamically rather than by reload of the window
    var text='Are you sure you want to delete this record ?'
    //alert('delete_' + param_record);
    var el=get_el('delete_' + param_record); // id of the image whose alt tag contains the 'title' of the record to be deleted
    if (el){
        text='Are you sure you want to delete ' + $(el.id).alt + ' ?';
        //alert(text);
    }
    
    //setup parameters for the call to confirm action
    var c_text=text;
    var c_url='';
    var c_winflag=0;
    var c_ajaxurl='';
    var c_ajaxparams='';
    var c_ajax_target='';
    var c_ajax_function='';
    var c_debug_target='ajax_debug';
    switch(param_list_type.toLowerCase()){
        case 'shape_lhs':
            c_url='../asp/ajax_2008.asp';
            c_winflag=2;
            c_ajaxurl='../asp/ajax_2008.asp';
            c_ajaxparams='objectid=' + param_object + '&recordid=' + param_record + '&action=delete'
            if (arguments.length==4) {
//                alert(param_options);
                c_ajaxparams+=param_options
            }
            c_ajax_target=''
            c_ajax_function='refresh_listing'
            confirm_action(c_text,c_url,c_winflag,c_ajaxurl,c_ajaxparams,c_ajax_target,c_ajax_function)
            break;
        case 'shape_rhs':
            c_url='../asp/ajax_2008.asp';
            c_winflag=2;
            c_ajaxurl='../asp/ajax_2008.asp';
            c_ajaxparams='objectid=' + param_object + '&recordid=' + param_record + '&action=delete'
            if (arguments.length==4) {
//                alert(param_options);
                c_ajaxparams+=param_options
            }
            c_ajax_target=''
            c_ajax_function='refresh_listing'
            confirm_action(c_text,c_url,c_winflag,c_ajaxurl,c_ajaxparams,c_ajax_target,c_ajax_function)
            break;
        case 'list':
            c_url='../asp/ajax_2008.asp';
            c_winflag=2;
            c_ajaxurl='../asp/ajax_2008.asp';
            c_ajaxparams='objectid=' + param_object + '&recordid=' + param_record + '&action=delete'
            //window.location.href='../asp/ajax_2008.asp?' + c_ajaxparams
            //return void[0];
            if (arguments.length==4) {
                //alert(param_options);
                c_ajaxparams+=param_options
            }
            ///window.location.href=c_ajaxurl + '?' + c_ajaxparams
            //return void[0];
            c_ajax_target=''
            c_ajax_function=''
            var row_id='listing_' + param_record
            if (confirm_action(c_text,c_url,c_winflag,c_ajaxurl,c_ajaxparams,c_ajax_target,c_ajax_function)){
                Element.remove(row_id);
            }
            break;
            
        case 'ajax_results':
            c_url='../asp/ajax_2008.asp';
            c_winflag=2;
            c_ajaxurl='../asp/ajax_2008.asp';
            c_ajaxparams='objectid=' + param_object + '&recordid=' + param_record + '&action=delete'
            if (arguments.length==4) {
                //alert(param_options);
                c_ajaxparams+=param_options
            }
            //window.location.href=c_ajaxurl + '?' + c_ajaxparams
            //return void[0];
            c_ajax_target=''
            c_ajax_function=''
            var row_id='listing_' + param_record
            if (confirm_action(c_text,c_url,c_winflag,c_ajaxurl,c_ajaxparams,c_ajax_target,c_ajax_function)){
                Element.remove(row_id);
            }
            break;
            
    }
    //function confirm_action(text,url,winflag,ajax_url,ajax_params,ajax_target,ajax_function, debug_target){
/* winflag indicates one of three options
    0 implies that we redirect to the URL
    1 implies that we open a new window
    2 implies that we use ajax to open the url requested
   */
    
    

}

//delete_media: deletes media record and updates the view accordingly
function delete_media(param_object, param_record){
    var text='are you sure you want to delete this media record ?'
    var el=get_el('media_image_' + param_record); // id of the image whose alt tag contains the 'title' of the record to be deleted
    if (el){
        text='Are you sure you want to delete ' + $(el.id).alt + ' ?';
    }
    
    //setup parameters for the call to confirm action
    var c_text=text;
    var c_url='';
    var c_winflag=0;
    var c_ajaxurl='';
    var c_ajaxparams='';
    var c_ajax_target='';
    var c_ajax_function='';
    var c_debug_target='ajax_debug';
    var row_id="media_row_" + param_record
    c_url='../asp/ajax_2008.asp';
    c_winflag=2;
    c_ajaxurl='../asp/ajax_2008.asp';
    c_ajaxparams='objectid=' + param_object + '&recordid=' + param_record + '&action=delete_media'
    c_ajax_target=''
    c_ajax_function=''
//            confirm_action(c_text,c_url,c_winflag,c_ajaxurl,c_ajaxparams,c_ajax_target,c_ajax_function,c_debug_target)
    if (confirm_action(c_text,c_url,c_winflag,c_ajaxurl,c_ajaxparams,c_ajax_target,c_ajax_function)){
        Element.remove(row_id);
    }
}



function refresh_listing(){
    self.location.reload();
}

/*check_rates_form: ensures that a spreadsheet has been input */
function check_rates_form(){
var progress_bar_url=$F('progress_bar_url');
    if ($F('m_file').blank()){
        show_error_message('Please select a file to upload first!','error_message_panel');
        $('m_file').focus();
        return false;
    }
            var w=380;
            var h=50;
            var winLeft=Math.round((screen.width - w)/2);
            var winTop=Math.round((screen.height - h)/2);
            var sVersion = navigator.appVersion;
             
           if (sVersion.indexOf('MSIE') != -1 && sVersion.substr(sVersion.indexOf('MSIE')+5,1) > 4)
          {
        		var settings="dialogWidth:380px; dialogHeight:50px; center:yes";
        		var x=window.showModelessDialog(progress_bar_url+ '&b=IE',null,settings);
                x.opener=window
            }
            else
            {
        		//var x=window.open(progress_bar_url+ '&b=NN','','width=370,height=115', true);
                var x=window.open(progress_bar_url+ '&b=NN','','width=380px,height=50', true);
        
           }
           
            x.focus()
    
    $('rates_form').submit();
}



/*check_excel_upload_form: ensures that a spreadsheet has been input */
function check_excel_upload_form(){
var progress_bar_url=$F('progress_bar_url');
    if ($F('m_file').blank()){
        show_error_message('Please select a file to upload first!','error_message_panel');
        $('m_file').focus();
        return false;
    }
            var w=380;
            var h=50;
            var winLeft=Math.round((screen.width - w)/2);
            var winTop=Math.round((screen.height - h)/2);
            var sVersion = navigator.appVersion;
             
           if (sVersion.indexOf('MSIE') != -1 && sVersion.substr(sVersion.indexOf('MSIE')+5,1) > 4)
          {
        		var settings="dialogWidth:380px; dialogHeight:50px; center:yes";
        		var x=window.showModelessDialog(progress_bar_url+ '&b=IE',null,settings);
                x.opener=window
            }
            else
            {
        		//var x=window.open(progress_bar_url+ '&b=NN','','width=370,height=115', true);
                var x=window.open(progress_bar_url+ '&b=NN','','width=380px,height=50', true);
        
           }
           
            x.focus()
    
    $('excel_form').submit();
}












/*  check_media: validates the media upload form and posts as required */
function check_media(){
    var progress_bar_url=$F('progress_bar_url');
    if ($F('m_file').blank()){
        show_error_message('Please select a file to upload first!','error_message_panel');
//        alert("please select a file first!");
        $('m_file').focus();
        return false;
    }
    //var x=window.open('../asp/ajax_2008.asp?action=none','media','width=380px,height=50', true);
    $('media_form').target='keyhole'; //window.open('../asp/ajax_2008.asp?action=none','media','width=380px,height=50', true);
// display a window indicating save progress 
            var w=380;
            var h=50;
            var winLeft=Math.round((screen.width - w)/2);
            var winTop=Math.round((screen.height - h)/2);
            var sVersion = navigator.appVersion;
             
           if (sVersion.indexOf('MSIE') != -1 && sVersion.substr(sVersion.indexOf('MSIE')+5,1) > 4)
          {
        		var settings="dialogWidth:380px; dialogHeight:50px; center:yes";
        		var x=window.showModelessDialog(progress_bar_url+ '&b=IE',null,settings);
                x.opener=window
            }
            else
            {
        		//var x=window.open(progress_bar_url+ '&b=NN','','width=370,height=115', true);
                var x=window.open(progress_bar_url+ '&b=NN','','width=380px,height=50', true);
        
           }
           
            x.focus()
   
   

            

    $('media_form').submit();
    

}

//check_media_title: validates the form that is used to change title of a media record
function check_media_title(){
        if ($F('txt_title').blank()){
            alert("Please enter a title for this record !");
            $('txt_title').focus();
            return false;
        }
        $('media_form').target='keyhole';
        $('media_form').submit();
}


/* for user with mutli-part forms (enhanced_form.inc) - performs much the same function as the show_save_progress function but optimised for multipart data*/
function save_editor_contents(){
    var progress_bar_url=$F('progress_bar_url');
    
    $('admin_command_bar').hide();
    var el=get_el('validation_buffer'); //contains ^$ delimited list of items to be validated before the form gets posted
    if (el){
        if (!perform_cs_validation()){
            $('admin_command_bar').show();
            return false;
        }
    }    
    //alert("save_editor_contents");
    var el=get_el('FCKDATASOURCE');
    if (el){    
        var vEditor = FCKeditorAPI.GetInstance('txtHTML') ;
        var datasource_name = 'fd_' + el.value;
        buffer=vEditor.GetXHTML(true);
        if (buffer==null){
            alert("The page did not finish loading, please wait a moment and then click save again!");
            $('admin_command_bar').show();
            return void[0]
            
        }
       $(datasource_name).value=buffer
       //alert($(datasource_name).value);
    }       
   // return void[0]
// display a window indicating save progress 
            var w=380;
            var h=50;
            var winLeft=Math.round((screen.width - w)/2);
            var winTop=Math.round((screen.height - h)/2);
            var sVersion = navigator.appVersion;
             //alert(sVersion);
           if (sVersion.indexOf('MSIE') != -1 && sVersion.substr(sVersion.indexOf('MSIE')+5,1) > 4)
          {
        		var settings="dialogWidth:380px; dialogHeight:50px; center:yes";
        		var x=window.showModelessDialog(progress_bar_url+ '&b=IE',null,settings);
                x.opener=window
            }
            else
            {
        		//var x=window.open(progress_bar_url+ '&b=NN','','width=370,height=115', true);
                var x=window.open(progress_bar_url+ '&b=NN','progress_bar','width=380px,height=50', true);
                setTimeout(close_progress_bar, 4000);
           }
           
            x.focus()
   
   

            

    $('save').submit();

}

//close_progress_bar: temp FIX for chrome/firefox not closing the progress bar window
function close_progress_bar(){
     var x=window.open('','progress_bar','width=380px,height=50', true);
     x.close();
}
//perform_cs_validation: uses the value of validation_buffer to build an array of form elements that must have a valid value before form can be submitted
function perform_cs_validation(){
        var buffer=$('validation_buffer').innerHTML; // structured as type_of_element^text_label^element_name^
        //alert(buffer);
        var array_defs=buffer.split('$');
        //alert(array_defs.length);
        for (var i=0;i < array_defs.length;i++){
            var check_def=array_defs[i].split('^');
            var element_type=check_def[0];
            var element_label=check_def[1];
            var element_name=check_def[2];
            //alert('name: ' + element_name);
            //alert($F(element_name));
            //alert(element_type)
            switch(element_type){
                case "TXT":
                    if ($F(element_name).blank()){
                        
                        alert('Please enter a value for ' + element_label + "!");
                        $(element_name).focus();
                        return false;
                    }
                    break;
                case "LIST":
                    var el=get_el(element_name);
              //      alert(el.selectedIndex);
                    if (el.selectedIndex==-1){
                        show_error_message("Please select a  " + element_label + " from the list provided!",'error_message_panel');
                        //alert('Please select a  ' + element_label + " from the list provided!");
                        $(element_name).focus();
                        return false;
                    }
                    
                    break;
                case "CUSTOMLIST":
                    var el=get_el(element_name);
               //     alert(el.selectedIndex);
                    if (el.selectedIndex==0){
                        show_error_message("Please select a  " + element_label + " from the list provided!",'error_message_panel');
                        //alert('Please select a  ' + element_label + " from the list provided!");
                        $(element_name).focus();
                        return false;
                    }
                    
                    break;
                default:
                
            
            }
        }
        return true;
}


// add_media: toggles the style of the media upload dialogue
function add_media(){
    $('media_listing').toggleClassName('admin_hide');
    $('media_loader').toggleClassName('admin_show');
//media_listing
}

//close_media_manager close the meia manager dialogue
function close_media_manager(){
    new Effect.DropOut('utility');
    $('utility').innerHTML='';
 //   $('utility').hide();
}

//media_title: display dialogue for changing the title of a media object
function media_title(param_object,param_id, param_parent){
            var c_url='../asp/ajax_2008.asp'
            var c_params='&objectid=' + param_object + '&recordid=' + param_id + '&parentid=' + param_parent + '&tag=mediatitle&mode=100'
            var c_target='utility'
            var c_handler='position_utility'
            ajax_get_url(c_url,c_params, c_target, "")
            //return true;

}

function sort_media(param_object,param_record){
    url='../common/sort.asp?objectid=' + param_object + '&contexttag=media&mode=12&contextid=' + param_record + '&recordid=' + param_record
    showeditor(url);

}


//intercept_legacy: use this to manage transition of certain service related functions 
function intercept_legacy(param_url){
        var object_id=0;
        var record_id=0;
        var o_mode=0;
        var o_context='';
        //alert(param_url);
        
        
        //alert("media");
        var p=param_url.toLowerCase().toQueryParams();
        var c_url='../asp/ajax_2008.asp'

        object_id=parseInt(p['objectid']);
        record_id=parseInt(p['recordid']);
        //alert(object_id);
        
        if (object_id==929){
            //window.location.href='../asp/'
        }
        //test the context first
        if (param_url.include('media.asp')){
            o_context='media'
        }
        else {
           if (param_url.include('status.asp')){
            o_context='state'
           }
           else{
               if (param_url.include('check_action.asp')){
                o_context='delete'
               }
               else{
                   if (param_url.include('record_sequence.asp')){
                    o_context='sequence'
                   }
                   else{
                    return false;
                  }
              }
           } 
        }
        
        if (o_context=='media'){
            var c_params='objectid=' + p['objectid'] + '&recordid=' + p['recordid'] + '&mode=4'
            var c_target='utility'
            var c_handler='position_utility'
            ajax_get_url(c_url,c_params, c_target, c_handler)
            return true;
        }
        else{
            if (o_context=='delete'){
                agile_delete(object_id, record_id, '')
                return true;
            }
            else{
                if (o_context=='sequence'){
                    var url=param_url.replace('record_sequence.asp','sort.asp');
                    open_new_window(url, '', 0, 1,1,0,0);
                    return true;
                }
                else
                {
                    //state changes are specific to an object ; this only deals with simple on/off options
                    switch(object_id){
                    
                        case 396: // banner ads 
                            if(current_element.src.include('status_0')){
                                var c_params='objectid=' + p['objectid'] + '&recordid=' + p['recordid'] + '&action=change_state&oldstate=0&newstate=1'
                                state_icon=state_icon_on;
                            }
                            else{
                                var c_params='objectid=' + p['objectid'] + '&recordid=' + p['recordid'] + '&action=change_state&oldstate=1&newstate=0'
                                state_icon=state_icon_off;
                            }
                            current_element.src=state_icon;
                            break;
                        case 515: // headlines 
                            if(current_element.src.include('status_0')){
                                var c_params='objectid=' + p['objectid'] + '&recordid=' + p['recordid'] + '&action=change_state&oldstate=0&newstate=1'
                                state_icon=state_icon_on;
                            }
                            else{
                                var c_params='objectid=' + p['objectid'] + '&recordid=' + p['recordid'] + '&action=change_state&oldstate=1&newstate=0'
                                state_icon=state_icon_off;
                            }
                            current_element.src=state_icon;
                            break;
                        case 965: // useful links
                            if(current_element.src.include('status_0')){
                                var c_params='objectid=' + p['objectid'] + '&recordid=' + p['recordid'] + '&action=change_state&oldstate=0&newstate=1'
                                state_icon=state_icon_on;
                            }
                            else{
                                var c_params='objectid=' + p['objectid'] + '&recordid=' + p['recordid'] + '&action=change_state&oldstate=1&newstate=0'
                                state_icon=state_icon_off;
                            }
                            current_element.src=state_icon;
                            break;
                        case 967: // link groups
                            if(current_element.src.include('status_0')){
                                var c_params='objectid=' + p['objectid'] + '&recordid=' + p['recordid'] + '&action=change_state&oldstate=0&newstate=1'
                                state_icon=state_icon_on;
                            }
                            else{
                                var c_params='objectid=' + p['objectid'] + '&recordid=' + p['recordid'] + '&action=change_state&oldstate=1&newstate=0'
                                state_icon=state_icon_off;
                            }
                            current_element.src=state_icon;
                            break;
                        case 1061: // content management 
                            if(current_element.src.include('status_0')){
                                var c_params='objectid=' + p['objectid'] + '&recordid=' + p['recordid'] + '&action=change_state&oldstate=0&newstate=1'
                                state_icon=state_icon_on;
                            }
                            else{
                                var c_params='objectid=' + p['objectid'] + '&recordid=' + p['recordid'] + '&action=change_state&oldstate=1&newstate=0'
                                state_icon=state_icon_off;
                            }
                            current_element.src=state_icon;
                            break;
                        case 1152: // events
                            if(current_element.src.include('status_0')){
                                var c_params='objectid=' + p['objectid'] + '&recordid=' + p['recordid'] + '&action=change_state&oldstate=0&newstate=1'
                                state_icon=state_icon_on;
                            }
                            else{
                                var c_params='objectid=' + p['objectid'] + '&recordid=' + p['recordid'] + '&action=change_state&oldstate=1&newstate=0'
                                state_icon=state_icon_off;
                            }
                            //alert(c_params)
                            current_element.src=state_icon;
                            break;
                        case 1162: // header images
                            if(current_element.src.include('status_0')){
                                var c_params='objectid=' + p['objectid'] + '&recordid=' + p['recordid'] + '&action=change_state&oldstate=0&newstate=1'
                                state_icon=state_icon_on;
                            }
                            else{
                                var c_params='objectid=' + p['objectid'] + '&recordid=' + p['recordid'] + '&action=change_state&oldstate=1&newstate=0'
                                state_icon=state_icon_off;
                            }
                            current_element.src=state_icon;
                            break;
                      case 1146:
                            if(current_element.src.include('status_0')){
                                var c_params='objectid=' + p['objectid'] + '&recordid=' + p['recordid'] + '&action=change_state&oldstate=0&newstate=1'
                                state_icon=state_icon_on;
                            }
                            else{
                                var c_params='objectid=' + p['objectid'] + '&recordid=' + p['recordid'] + '&action=change_state&oldstate=1&newstate=0'
                                state_icon=state_icon_off;
                            }
                            current_element.src=state_icon;
                            break;
                        case 1153: // venue management 
                            if(current_element.src.include('status_0')){
                                var c_params='objectid=' + p['objectid'] + '&recordid=' + p['recordid'] + '&action=change_state&oldstate=0&newstate=1'
                                state_icon=state_icon_on;
                            }
                            else{
                                var c_params='objectid=' + p['objectid'] + '&recordid=' + p['recordid'] + '&action=change_state&oldstate=1&newstate=0'
                                state_icon=state_icon_off;
                            }
                            current_element.src=state_icon;
                            break;
                        case 1082: // product categories (tbcategory) 
                            if(current_element.src.include('status_0')){
                                var c_params='objectid=' + p['objectid'] + '&recordid=' + p['recordid'] + '&action=change_state&oldstate=0&newstate=1'
                                state_icon=state_icon_on;
                            }
                            else{
                                var c_params='objectid=' + p['objectid'] + '&recordid=' + p['recordid'] + '&action=change_state&oldstate=1&newstate=0'
                                state_icon=state_icon_off;
                            }
                            current_element.src=state_icon;
                            break;
                        case 1083: // products (tbproduct_catalogue) 
                            if(current_element.src.include('status_0')){
                                var c_params='objectid=' + p['objectid'] + '&recordid=' + p['recordid'] + '&action=change_state&oldstate=0&newstate=1'
                                state_icon=state_icon_on;
                            }
                            else{
                                var c_params='objectid=' + p['objectid'] + '&recordid=' + p['recordid'] + '&action=change_state&oldstate=1&newstate=0'
                                state_icon=state_icon_off;
                            }
                            current_element.src=state_icon;
                            break;
                        case 1142: // events and seminars (Torque)
                            if(current_element.src.include('status_0')){
                                var c_params='objectid=' + p['objectid'] + '&recordid=' + p['recordid'] + '&action=change_state&oldstate=0&newstate=1'
                                state_icon=state_icon_on;
                            }
                            else{
                                var c_params='objectid=' + p['objectid'] + '&recordid=' + p['recordid'] + '&action=change_state&oldstate=1&newstate=0'
                                state_icon=state_icon_off;
                            }
                            current_element.src=state_icon;
                            break;
                        case 1145: // event attendees (Torque)
                            if(current_element.src.include('status_0')){
                                var c_params='objectid=' + p['objectid'] + '&recordid=' + p['recordid'] + '&action=change_state&oldstate=0&newstate=1'
                                state_icon=state_icon_on;
                            }
                            else{
                                var c_params='objectid=' + p['objectid'] + '&recordid=' + p['recordid'] + '&action=change_state&oldstate=1&newstate=0'
                                state_icon=state_icon_off;
                            }
                            current_element.src=state_icon;
                            break;
                        default: // all unhandled objects handled here
                            if(current_element.src.include('status_0')){
                                var c_params='objectid=' + p['objectid'] + '&recordid=' + p['recordid'] + '&action=change_state&oldstate=0&newstate=1'
                                state_icon=state_icon_on;
                            }
                            else{
                                var c_params='objectid=' + p['objectid'] + '&recordid=' + p['recordid'] + '&action=change_state&oldstate=1&newstate=0'
                                state_icon=state_icon_off;
                            }
                            current_element.src=state_icon;
                            break;
                            return false; 
                            break;
                    
                    }    
                    var c_target=''
                    var c_handler=''
                    //window.location.href=c_url + '?' + c_params
                    //return false;
                    ajax_get_url(c_url,c_params, c_target, c_handler)
                  }
              }
        }
        return true;
}


//check_other: toggle display of the 'other' data entry field
function check_other(param_list){
//alert('check');
    if ($F(param_list).blank()){
        return false;
    }
    if ($F(param_list)=='other'){
        if ($('other_' + param_list).hasClassName('admin_hide')){
            $(param_list + '_other').value='';
            $('other_' + param_list).toggleClassName('admin_show');
            $(param_list + '_other').focus();
        }
    }
    else{
        if ($('other_' + param_list).hasClassName('admin_show')){
            $('other_' + param_list).toggleClassName('admin_show');
        }
       $('other_' + param_list).hide();
       $(param_list + '_other').value=$F(param_list); 
    }
}



/* ------------ agility 2008 scripts ---------------- */
//enable_tab_tracking: when displaying a form we set a highlight to indicate which 'line' a user has moved focus to
function enable_tab_tracking(param_el){
    var cls_highlight='highlighted';
    var el=get_el('cls_highlight');
    if (el){
        cls_highlight=$('cls_highlight').value;
    }
    var children=$A($(param_el).select('input.input_element','select.input_element','textarea.input_element'));
    //alert(children.length);
    var evfocus=function(el)
    {   
        //alert(Rico);
         Event.observe(el,'focus',function(){
            var row_name='row_' + el.id;
            var r=get_el(row_name);
            if (r){
                if (!$(row_name).hasClassName(cls_highlight)){
                    $(row_name).toggleClassName(cls_highlight);
                }
            }
         });
         Event.observe(el,'blur',function(){
            var row_name='row_' + el.id;
            var r=get_el(row_name);
            if (r){
                $(row_name).toggleClassName(cls_highlight);
            }
         });
         //Rico.Corner.round(el.id);
    }
    children.each(evfocus);
   // $('save').focusFirstElement();
    
}
function open_link(url){
 var settings='Height=' + screen.height + ',Width=' + screen.width + ',Top=0,left=0,scrollbars=yes,resizable=1, location=1,status=1'
 var w=window.open(url,'iitdpopup',settings);    
}

var myGlobalHandlers = {
    onCreate: function(){
     Element.show('infocontainer');
     window.setTimeout('Element.hide(\'infocontainer\');',10000);
    },
    
    onComplete: function() {
        var el=get_el("txtselecteditems");
        if (el){
		$("txtselecteditems").value='0';
        }

        if(Ajax.activeRequestCount == 0){
            Element.hide('infocontainer');
        }
    }
};

Ajax.Responders.register(myGlobalHandlers);


//setup_banner_editor(): ensures that form reflects data entered previously (if applicable) and sets up highlighting of form elements
function setup_banner_editor(){
    //alert("banner")
    Event.observe('list_type','change',function(){
        if ($F('list_type').blank()){
            $('display_internal_links').hide();
            $('display_external_links').hide();
           return void[0];
            
        }
        if (parseInt($F('list_type'))==0){
            $('display_internal_links').show();
            $('display_external_links').hide();
        }
        else{
            $('display_internal_links').hide();
            $('display_external_links').show();
        }
    });
    Event.observe('link_source','change',function(){
        if ($F('link_source').blank()){
            $('display_image_source').hide();
            $('update_image_source').hide();
           return void[0];
            
        }
        if (parseInt($F('link_source'))==0){
            $('update_image_source').show();
            $('display_image_source').hide();
        }
        else{
            $('update_image_source').hide();
            $('display_image_source').show();
        }
        
    });
    Event.observe('list_internal_urls','change',function(){
        $('link_url').value=$F('list_internal_urls')
    });
    // need to populate form based on data entered (if applicable)
   // if (parseInt($F('uid'))!=0){
        //URL of link
        //alert($F('is_internal_link'));
        
        if (parseInt($F('is_internal_link'))==0){
            $('display_internal_links').hide();
            $('display_external_links').show();
        }
        else{
            var el=get_el('list_internal_urls');
            for (var i=0;i<el.options.length;i++){
                if ($F('link_url')==el.options[i].value){
                    el.selectedIndex=i;
                }
            }
            $('display_internal_links').show();
            $('display_external_links').hide();
        
        }
        
        if (parseInt($F('is_local_image'))==0){
            $('display_image_source').show();
            $('update_image_source').hide();
        }
        else{
            $('display_image_source').hide();
            $('update_image_source').show();
        
        }
        if (parseInt($F('uid'))==0){
             $('display_external_links').hide();
             $('display_image_source').hide();
             $('update_image_source').hide();
             $('display_internal_links').hide();
        }
        
        
    //}
    setup_tab_tracking('banner_form');
}

//check_banner: check that banner advertisement is ready to post
function check_banner(){
    //check that the advert has a title, that a valid links has been selected / entered, that a valid image has been selected / entered
    var progress_bar_url=$F('progress_bar_url');
    
    if ($F('txt_title').blank()){
         show_error_message('Please enter the advert text !','error_message_panel');
         $('txt_title').focus();
         return false;
    }
    
    //URL of link
    if ($F('list_type').blank()){
         show_error_message('Please select the type of link !','error_message_panel');
         $('list_type').focus();
         return false;
    
    }
    if (parseInt($F('list_type'))==0 && ($F('link_url').blank())){
         show_error_message('Please select the page that this banner advert will link to !','error_message_panel');
         $('list_internal_urls').focus();
         return false;
    
    }
    if (parseInt($F('list_type'))==1 && ($F('link_url').blank())){
         show_error_message('Please enter the address of the URL that this banner advert will link to !','error_message_panel');
         $('link_url').focus();
         return false;
    
    }
    //source of image
    if ($F('link_source').blank()){
         show_error_message('Please specify if you are uploading an image or using a remote image!','error_message_panel');
         $('link_source').focus();
         return false;
    
    }
    
    if (parseInt($F('link_source'))==0){
        if ((parseInt($F('uid'))==0)&&($F('banner_file').blank())){
         show_error_message('Please upload an image for this advert!','error_message_panel');
         $('banner_file').focus();
         return false;
        }
        if (!$F('banner_file').blank()){
            
            //make sure that the file format is supported
            var s_ext=$F('banner_file').substr($F('banner_file').length-3,3).toLowerCase();
            if ((s_ext!='jpg') && (s_ext!='gif')){
                 show_error_message('Only .GIF or .JPG file formats are supported at this time!','error_message_panel');
                 $('banner_file').focus();
                 return false;
            
            }
         $('is_upload').value='1';
           
        }
        else{
        $('is_upload').value='0';
        }
    }
    else{
        if ($F('source').blank()){
            
         show_error_message('Please the remote address of the image you are using for this advert!','error_message_panel');
         $('source').focus();
         return false;
        }    
        $('is_upload').value='0';
    }
    $('banner_form').target='keyhole'; //window.open('../asp/ajax_2008.asp?action=none','media','width=380px,height=50', true);
// display a window indicating save progress 
            var w=380;
            var h=50;
            var winLeft=Math.round((screen.width - w)/2);
            var winTop=Math.round((screen.height - h)/2);
            var sVersion = navigator.appVersion;
             
           if (sVersion.indexOf('MSIE') != -1 && sVersion.substr(sVersion.indexOf('MSIE')+5,1) > 4)
          {
        		var settings="dialogWidth:380px; dialogHeight:50px; center:yes";
        		var x=window.showModelessDialog(progress_bar_url+ '&b=IE',null,settings);
                x.opener=window
            }
            else
            {
        		//var x=window.open(progress_bar_url+ '&b=NN','','width=370,height=115', true);
                var x=window.open(progress_bar_url+ '&b=NN','','width=380px,height=50', true);
        
           }
           
            x.focus()
   
   

            

    $('banner_form').submit();
    
    
    
}

//check_header_image: validate header image editor dialogue
function check_header_image(){
    var main_image=$F('header_image');
    var progress_bar_url=$F('progress_bar_url');
    if ($F('txt_title').blank()){
         show_error_message("please enter a title for this header image!",'error_message_panel');
        $('txt_title').focus();
        return false;
    }
    //if ($F('txt_line1').blank()){
    //     show_error_message("please enter a value for caption one!",'error_message_panel');
    //    $('txt_line1').focus();
    //    return false;
    //}
    //if ($F('txt_line2').blank()){
    //     show_error_message("please enter a value for caption two!",'error_message_panel');
    //    $('txt_line2').focus();
    //    return false;
    //}
    if (parseInt($F('parentid'))==0){
         show_error_message("please select the page on which this header image will be displayed!",'error_message_panel');
        $('parentid').focus();
        return false;
    }
    var el=get_el('FCKDATASOURCE');
    if (el){    
        var oEditor = FCKeditorAPI.GetInstance('txtHTML');
        var datasource_name = 'fd_description';
        //alert(datasource_name);
       $(datasource_name).value= oEditor.GetXHTML(true);
         
    }       

    //return false;
    $('save').target='keyhole'; 
// display a window indicating save progress 
            var w=380;
            var h=50;
            var winLeft=Math.round((screen.width - w)/2);
            var winTop=Math.round((screen.height - h)/2);
            var sVersion = navigator.appVersion;
             
           if (sVersion.indexOf('MSIE') != -1 && sVersion.substr(sVersion.indexOf('MSIE')+5,1) > 4)
          {
        		var settings="dialogWidth:380px; dialogHeight:50px; center:yes";
        		var x=window.showModelessDialog(progress_bar_url+ '&b=IE',null,settings);
                x.opener=window
            }
            else
            {
        		//var x=window.open(progress_bar_url+ '&b=NN','','width=370,height=115', true);
                var x=window.open(progress_bar_url+ '&b=NN','','width=380px,height=50', true);
        
           }
           
            x.focus()
   
   

            

    $('save').submit();
    
}

//check_job: validate job editor dialogue
function check_job(){
    var progress_bar_url=$F('progress_bar_url');
    if ($F('txt_title').blank()){
        show_error_message("please enter a title for this position!",'error_message_panel');
        $('txt_title').focus();
        return false;
    }
    if ($F('txt_caption_1').blank()){
         show_error_message("please enter the client name or type of client!",'error_message_panel');
        $('txt_caption_1').focus();
        return false;
    }
    if ($F('txt_caption_2').blank()){
         show_error_message("please enter the job reference!",'error_message_panel');
        $('txt_caption_2').focus();
        return false;
    }
    if ($F('txt_caption_3').blank()){
         show_error_message("please enter the location!",'error_message_panel');
        $('txt_caption_3').focus();
        return false;
    }
    if ($F('txt_caption_4').blank()){
         show_error_message("please enter the name of the primary contact!",'error_message_panel');
        $('txt_caption_4').focus();
        return false;
    }
    if ($F('txt_caption_5').blank()){
         show_error_message("please enter the primary contact's email address!",'error_message_panel');
        $('txt_caption_5').focus();
        return false;
    }
    
    var el=get_el('FCKDATASOURCE');
    if (el){    
        var oEditor = FCKeditorAPI.GetInstance('txtHTML');
        var datasource_name = 'fd_description';
        var buffer= oEditor.GetXHTML(true);
        if (buffer.length==0){
         show_error_message("please enter a job description!",'error_message_panel');
        //$('txt_caption_3').focus();
        return false;
        
        }
       $(datasource_name).value= oEditor.GetXHTML(true);
         
    }       

    //return false;
    $('save').target='keyhole'; 
// display a window indicating save progress 
            var w=380;
            var h=50;
            var winLeft=Math.round((screen.width - w)/2);
            var winTop=Math.round((screen.height - h)/2);
            var sVersion = navigator.appVersion;
             
           if (sVersion.indexOf('MSIE') != -1 && sVersion.substr(sVersion.indexOf('MSIE')+5,1) > 4)
          {
        		var settings="dialogWidth:380px; dialogHeight:50px; center:yes";
        		var x=window.showModelessDialog(progress_bar_url+ '&b=IE',null,settings);
                x.opener=window
            }
            else
            {
        		//var x=window.open(progress_bar_url+ '&b=NN','','width=370,height=115', true);
                var x=window.open(progress_bar_url+ '&b=NN','','width=380px,height=50', true);
        
           }
           
            x.focus()
   
   

            

    $('save').submit();
    
}



//check_assignment: validate recent assignment editor dialogue
function check_assignment(){
    var progress_bar_url=$F('progress_bar_url');
    if ($F('txt_title').blank()){
        show_error_message("please enter the name of the Role!",'error_message_panel');
        $('txt_title').focus();
        return false;
    }
    if ($F('sector_id').blank()){
        show_error_message("please select the industry sector!",'error_message_panel');
        $('sector_id').focus();
        return false;
    }
    if ($F('txt_caption_1').blank()){
         show_error_message("please enter the company name or sector name!",'error_message_panel');
        $('txt_caption_1').focus();
        return false;
    }
/*
    if ($F('txt_caption_2').blank()){
         show_error_message("please enter the job reference!",'error_message_panel');
        $('txt_caption_2').focus();
        return false;
    }
    if ($F('txt_caption_3').blank()){
         show_error_message("please enter the location!",'error_message_panel');
        $('txt_caption_3').focus();
        return false;
    }
 */
     if ($F('txt_caption_4').blank()){
         show_error_message("please enter the name of the primary contact!",'error_message_panel');
        $('txt_caption_4').focus();
        return false;
    }
    if ($F('txt_caption_5').blank()){
         show_error_message("please enter the primary contact's email address!",'error_message_panel');
        $('txt_caption_5').focus();
        return false;
    }
    
    var el=get_el('FCKDATASOURCE');
    if (el){    
        var oEditor = FCKeditorAPI.GetInstance('txtHTML');
        var datasource_name = 'fd_description';
        var buffer= oEditor.GetXHTML(true);
        if (buffer.length==0){
         show_error_message("please enter a job description!",'error_message_panel');
        //$('txt_caption_3').focus();
        return false;
        
        }
       $(datasource_name).value= oEditor.GetXHTML(true);
         
    }       

    //return false;
    $('save').target='keyhole'; 
// display a window indicating save progress 
            var w=380;
            var h=50;
            var winLeft=Math.round((screen.width - w)/2);
            var winTop=Math.round((screen.height - h)/2);
            var sVersion = navigator.appVersion;
             
           if (sVersion.indexOf('MSIE') != -1 && sVersion.substr(sVersion.indexOf('MSIE')+5,1) > 4)
          {
        		var settings="dialogWidth:380px; dialogHeight:50px; center:yes";
        		var x=window.showModelessDialog(progress_bar_url+ '&b=IE',null,settings);
                x.opener=window
            }
            else
            {
        		//var x=window.open(progress_bar_url+ '&b=NN','','width=370,height=115', true);
                var x=window.open(progress_bar_url+ '&b=NN','','width=380px,height=50', true);
        
           }
           
            x.focus()
   
   

            

    $('save').submit();
    
}









//check_species: validate species editor dialogue
function check_species(){
    var progress_bar_url=$F('progress_bar_url');
    if ($F('txt_title').blank()){
        show_error_message("please enter the Name!",'error_message_panel');
        $('txt_title').focus();
        return false;
    }
    if ($F('txt_caption_1').blank()){
         show_error_message("please enter the Latin Name!",'error_message_panel');
        $('txt_caption_1').focus();
        return false;
    }
    if ($F('txt_caption_2').blank()){
         show_error_message("please enter the Irish Name!",'error_message_panel');
        $('txt_caption_2').focus();
        return false;
    }
    var el=get_el('FCKDATASOURCE');
    if (el){    
        var oEditor = FCKeditorAPI.GetInstance('txtHTML');
        var datasource_name = 'fd_description';
        var buffer= oEditor.GetXHTML(true);
        //if (buffer.length==0){
        // show_error_message("please enter a description!",'error_message_panel');
        //$('txt_caption_3').focus();
        //return false;
        
        //}
       $(datasource_name).value= oEditor.GetXHTML(true);
         
    }       



    //return false;
    $('save').target='keyhole'; 
// display a window indicating save progress 
            var w=380;
            var h=50;
            var winLeft=Math.round((screen.width - w)/2);
            var winTop=Math.round((screen.height - h)/2);
            var sVersion = navigator.appVersion;
             
           if (sVersion.indexOf('MSIE') != -1 && sVersion.substr(sVersion.indexOf('MSIE')+5,1) > 4)
          {
        		var settings="dialogWidth:380px; dialogHeight:50px; center:yes";
        		var x=window.showModelessDialog(progress_bar_url+ '&b=IE',null,settings);
                x.opener=window
            }
            else
            {
        		//var x=window.open(progress_bar_url+ '&b=NN','','width=370,height=115', true);
                var x=window.open(progress_bar_url+ '&b=NN','','width=380px,height=50', true);
        
           }
           
            x.focus()
   
   

            

    $('save').submit();
    
}

//check_merc_sector: check that title has been entered
function check_merc_sector(){
    var progress_bar_url=$F('progress_bar_url');
    if ($F('txt_title').blank()){
        show_error_message("please enter the Sector Name!",'error_message_panel');
        $('txt_title').focus();
        return false;
    }
    $('save').target='keyhole'; 
// display a window indicating save progress 
            var w=380;
            var h=50;
            var winLeft=Math.round((screen.width - w)/2);
            var winTop=Math.round((screen.height - h)/2);
            var sVersion = navigator.appVersion;
             
           if (sVersion.indexOf('MSIE') != -1 && sVersion.substr(sVersion.indexOf('MSIE')+5,1) > 4)
          {
        		var settings="dialogWidth:380px; dialogHeight:50px; center:yes";
        		var x=window.showModelessDialog(progress_bar_url+ '&b=IE',null,settings);
                x.opener=window
            }
            else
            {
        		//var x=window.open(progress_bar_url+ '&b=NN','','width=370,height=115', true);
                var x=window.open(progress_bar_url+ '&b=NN','','width=380px,height=50', true);
        
           }
           
            x.focus()
   
   

            

    $('save').submit();
    

}

//check_renewal_type: check that title has been entered
function check_renewal_type(){
    var progress_bar_url=$F('progress_bar_url');
    if ($F('txt_title').blank()){
        show_error_message("please enter the Policy type!",'error_message_panel');
        $('txt_title').focus();
        return false;
    }
    var el=get_el('FCKDATASOURCE');
    if (el){    
        var oEditor = FCKeditorAPI.GetInstance('txtHTML');
        var datasource_name = 'fd_description';
        var buffer= oEditor.GetXHTML(true);
        if (buffer.length==0){
         //show_error_message("please enter a description!",'error_message_panel');
        //$('txt_caption_3').focus();
        //return false;
        
        }
       $(datasource_name).value= oEditor.GetXHTML(true);
         
    }       
    
    $('save').target='keyhole'; 
// display a window indicating save progress 
            var w=380;
            var h=50;
            var winLeft=Math.round((screen.width - w)/2);
            var winTop=Math.round((screen.height - h)/2);
            var sVersion = navigator.appVersion;
             
           if (sVersion.indexOf('MSIE') != -1 && sVersion.substr(sVersion.indexOf('MSIE')+5,1) > 4)
          {
        		var settings="dialogWidth:380px; dialogHeight:50px; center:yes";
        		var x=window.showModelessDialog(progress_bar_url+ '&b=IE',null,settings);
                x.opener=window
            }
            else
            {
        		//var x=window.open(progress_bar_url+ '&b=NN','','width=370,height=115', true);
                var x=window.open(progress_bar_url+ '&b=NN','','width=380px,height=50', true);
        
           }
           
            x.focus()
   
   

            

    $('save').submit();
    

}
//check_renewal_option: check that renewal_option has been entered correctly
function check_renewal_option(){
    var progress_bar_url=$F('progress_bar_url');
    if ($F('parentid').blank()){
        show_error_message("please select the Policy type!",'error_message_panel');
        $('parentid').focus();
        return false;
    }
    
    if ($F('txt_title').blank()){
        show_error_message("please enter the option name!",'error_message_panel');
        $('txt_title').focus();
        return false;
    }
    
    if ($F('fee').blank()){
        show_error_message("please enter the price!",'error_message_panel');
        $('fee').focus();
        return false;
    }
    var p=$F('fee')
    if (isNaN(p)){
        show_error_message("please enter only numeric values for the price!",'error_message_panel');
        $('fee').focus();
        return false;
    }
    var el=get_el('FCKDATASOURCE');
    if (el){    
        var oEditor = FCKeditorAPI.GetInstance('txtHTML');
        var datasource_name = 'fd_description';
        var buffer= oEditor.GetXHTML(true);
        if (buffer.length==0){
         show_error_message("please enter a description!",'error_message_panel');
        //$('txt_caption_3').focus();
        return false;
        
        }
       $(datasource_name).value= oEditor.GetXHTML(true);
         
    }       
    
    $('save').target='keyhole'; 
// display a window indicating save progress 
            var w=380;
            var h=50;
            var winLeft=Math.round((screen.width - w)/2);
            var winTop=Math.round((screen.height - h)/2);
            var sVersion = navigator.appVersion;
             
           if (sVersion.indexOf('MSIE') != -1 && sVersion.substr(sVersion.indexOf('MSIE')+5,1) > 4)
          {
        		var settings="dialogWidth:380px; dialogHeight:50px; center:yes";
        		var x=window.showModelessDialog(progress_bar_url+ '&b=IE',null,settings);
                x.opener=window
            }
            else
            {
        		//var x=window.open(progress_bar_url+ '&b=NN','','width=370,height=115', true);
                var x=window.open(progress_bar_url+ '&b=NN','','width=380px,height=50', true);
        
           }
           
            x.focus()
   
   

            

    $('save').submit();
    

}
//check_renewal_marketing: check that renewal_marketing message has been entered correctly
function check_renewal_marketing(){
    var progress_bar_url=$F('progress_bar_url');
    
    if ($F('txt_title').blank()){
        show_error_message("please enter a title!",'error_message_panel');
        $('txt_title').focus();
        return false;
    }
    if ($F('txt_seo_title').blank()){
        show_error_message("please enter an SEO title!",'error_message_panel');
        $('txt_seo_title').focus();
        return false;
    }
    if ($F('txt_seo_description').blank()){
        show_error_message("please enter an abstract!",'error_message_panel');
        $('txt_seo_description').focus();
        return false;
    }
    
    var el=get_el('FCKDATASOURCE');
    if (el){    
        var oEditor = FCKeditorAPI.GetInstance('txtHTML');
        var datasource_name = 'fd_description';
        var buffer= oEditor.GetXHTML(true);
        if (buffer.length==0){
         show_error_message("please enter a description!",'error_message_panel');
        //$('txt_caption_3').focus();
        return false;
        
        }
       $(datasource_name).value= oEditor.GetXHTML(true);
         
    }       
    var el=get_el("opt_marketing");
    buffer="0"
    for (var i=0;i<el.length;i++){
        
        if (el[i].checked){
            buffer+=',' + el[i].value;
        }
    }
    //alert(buffer);
    var el=get_el("xreference")
    el.value=buffer;
    
//    return false;    
    $('save').target='keyhole'; 
// display a window indicating save progress 
            var w=380;
            var h=50;
            var winLeft=Math.round((screen.width - w)/2);
            var winTop=Math.round((screen.height - h)/2);
            var sVersion = navigator.appVersion;
             
           if (sVersion.indexOf('MSIE') != -1 && sVersion.substr(sVersion.indexOf('MSIE')+5,1) > 4)
          {
        		var settings="dialogWidth:380px; dialogHeight:50px; center:yes";
        		var x=window.showModelessDialog(progress_bar_url+ '&b=IE',null,settings);
                x.opener=window
            }
            else
            {
        		//var x=window.open(progress_bar_url+ '&b=NN','','width=370,height=115', true);
                var x=window.open(progress_bar_url+ '&b=NN','','width=380px,height=50', true);
        
           }
           
            x.focus()
   
   

            

    $('save').submit();
    

}


//check_species: validate species editor dialogue
function check_crann_rate(){
    var progress_bar_url=$F('progress_bar_url');
    if ($F('txt_title').blank()){
        show_error_message("please enter the Name of this membership rate!",'error_message_panel');
        $('txt_title').focus();
        return false;
    }
    if ($F('fee').blank()){
        show_error_message("please enter the price!",'error_message_panel');
        $('txt_caption_1').focus();
        return false;
    }
    var p= $F('fee')
    if (isNaN(p)){
        show_error_message("please enter only numeric values for the price!",'error_message_panel');
        $('fee').focus();
        return false;
    }

    //return false;
    $('save').target='keyhole'; 
// display a window indicating save progress 
            var w=380;
            var h=50;
            var winLeft=Math.round((screen.width - w)/2);
            var winTop=Math.round((screen.height - h)/2);
            var sVersion = navigator.appVersion;
             
           if (sVersion.indexOf('MSIE') != -1 && sVersion.substr(sVersion.indexOf('MSIE')+5,1) > 4)
          {
        		var settings="dialogWidth:380px; dialogHeight:50px; center:yes";
        		var x=window.showModelessDialog(progress_bar_url+ '&b=IE',null,settings);
                x.opener=window
            }
            else
            {
        		//var x=window.open(progress_bar_url+ '&b=NN','','width=370,height=115', true);
                var x=window.open(progress_bar_url+ '&b=NN','','width=380px,height=50', true);
        
           }
           
            x.focus()
   
   

            

    $('save').submit();
    
}


function order_status(param_record,param_state,param_year){
  var c_url='../asp/object_administration.asp'  
  var c_params='objectid=512&mode=6&recordid=' + param_record + '&action=order_state&tag=order_status_text&newstate=' + param_state + "&year=" + param_year
  ajax_get_url(c_url,c_params, 'order_status_text', 'update_summaries(\'' + param_year + '\')');
  
  //ajax_get_url(c_url,"objectid=512&mode=6&tag=_vat", 'summary_of_vat', '');
  
}
function update_summaries(param_year){
//    $('').innerHTML="<a href='javascript: refresh_summary(''\' + );'>refresh</a>"
}

function refresh_summary(param_year){
    //alert(param_year);
    //return void[0];
    ajax_get_url('../asp/object_administration.asp' ,"objectid=512&mode=6&tag=ajax_summary&year=" + param_year, 'summary_of_year', '');
    
}

function refresh_vat(param_year){
    ajax_get_url('../asp/object_administration.asp' ,"objectid=512&mode=6&tag=ajax_vat&year=" + param_year, 'summary_of_vat', '');

}

function adams_refresh_summary(param_year){
    //alert(param_year);
    //return void[0];
    ajax_get_url('../asp/object_administration.asp' ,"objectid=617&mode=6&tag=ajax_summary&year=" + param_year, 'summary_of_year', '');
    
}

function adams_refresh_vat(param_year){
    ajax_get_url('../asp/object_administration.asp' ,"objectid=617&mode=6&tag=ajax_vat&year=" + param_year, 'summary_of_vat', '');

}
function adams_order_status(param_record,param_state,param_year){
  var c_url='../asp/object_administration.asp'  
  var c_params='objectid=617&mode=6&recordid=' + param_record + '&action=adams_order_state&tag=order_status_text&newstate=' + param_state + "&year=" + param_year
  ajax_get_url(c_url,c_params, 'order_status_text', 'update_summaries(\'' + param_year + '\')');
  
  //ajax_get_url(c_url,"objectid=512&mode=6&tag=_vat", 'summary_of_vat', '');
  
}

//create_thumbnail: AJAX call to generate a thumbnail and insert into mediaobjects 
function create_thumbnail(param_object,param_record,param_media, param_count){
    if (param_count==0){
        alert("A thumbnail cannot be generated until you have uploaded one or more images for this record!");
        return void[0];
    }
    var d=new Date();
  var c_url='../asp/ajax_2008.asp'  
  var c_params='objectid=' + param_object + '&mode=100&recordid=' + param_record + '&action=thumbnail&tag=new_thumbnail&mediaid=' + param_media
  var myAjax = new Ajax.Updater('', 
        c_url, 
        {
            method: 'get', 
            parameters: c_params + '&d=' + d.toString(),
            onComplete: function(obj){
                //alert( $('thumbnail' + param_record).src);
            $('thumbnail' + param_record).src=obj.responseText
            //alert(obj.responseText);
                
            }
        });   
//  window.location=c_url + "?" + c_params 
  //ajax_get_url(c_url,c_params, '', '');
    
}
function rs_order_status(param_record,param_state,param_year){
  
  var c_url='../asp/object_administration.asp'  
  var c_params='objectid=948&mode=6&recordid=' + param_record + '&action=order_state&tag=order_status_text&newstate=' + param_state + "&year=" + param_year
  ajax_get_url(c_url,c_params, 'order_status_text', 'update_summaries(\'' + param_year + '\')');
  
  
}
function rs_update_summaries(param_year){
//    $('').innerHTML="<a href='javascript: refresh_summary(''\' + );'>refresh</a>"
}

function rs_refresh_summary(param_year){
    //alert(param_year);
    //return void[0];
    ajax_get_url('../asp/object_administration.asp' ,"objectid=948&mode=6&tag=ajax_summary&year=" + param_year, 'summary_of_year', '');
    
}

function rs_refresh_vat(param_year){
    ajax_get_url('../asp/object_administration.asp' ,"objectid=948&mode=6&tag=ajax_vat&year=" + param_year, 'summary_of_vat', '');

}
function rs_delivery(param_record){
            var c_url="../asp/object_Administration.asp"
            var c_params='objectid=948&recordid=' + param_record + '&mode=6&tag=ajax_delivery'
            var c_target='utility'
            var c_handler='position_utility'
            ajax_get_url(c_url,c_params, c_target, c_handler)

}
function rs_delivery_date(){
    var s_original=$F('delivery_date')
    var s_reference=$F('delivery_reference')
    var el_day=get_el("start_day")
    
    var rule_day=0;
    var rule_month=0;
    var rule_year=0;
    
    if (el_day.selectedIndex < 1){
        show_error_message("Please select the day of the month !",'error_message_panel', false);
        el_day.focus();
        return false
    }
    else{
        rule_day = el_day[el_day.selectedIndex].value;
    }
    var el_month=get_el("start_month")
    if (el_month.selectedIndex < 1){
        show_error_message("Please select the month!",'error_message_panel', false);
        el_month.focus();
        return false;                }
    else{
        rule_month = el_month[el_month.selectedIndex].value;
    }
   // alert(rule_month);
   // alert(el_month[el_month.selectedIndex].text);
    var el_year=get_el("start_year")
    if (el_year.selectedIndex < 1){
        show_error_message("Please select the year!",'error_message_panel', false);
        el_year.focus();
        return false;                }
    else{
        rule_year = el_year[el_year.selectedIndex].value;
    }
    
    var s_date=rule_day + " " + rule_month +  " " + rule_year  
    var d=new Date(s_date);
    //alert(d.getDate());
    //alert(parseInt(el_day.selectedIndex));
    //we test the date is valid by checking the date value against the selectedIndex value (should always be 1 less than selectedIndex)
    if (d.getDate()!=(parseInt(el_day.selectedIndex))){
        show_error_message("You have selected an invalid day of the month, please check your entry!",'error_message_panel', false);
        el_day.focus();
        return false;
    }
    $('delivery_date').value=s_date;
    $('delivery').target='keyhole';
    $('delivery').submit();
    //return false;
    
}
function rs_update_order(param_id){
    //alert("update order");
    close_media_manager();
    ajax_get_url('../asp/object_administration.asp' ,"objectid=948&mode=6&tag=ajax_delivery_reference&recordid=" + param_id, 'delivery_status_text', '');
    ajax_get_url('../asp/object_administration.asp' ,"objectid=948&mode=6&tag=ajax_delivery_date&recordid=" + param_id, 'delivery_date_text', '');
}
function property_search(){
    var k = $F('property');
    ajax_get_url('../asp/object_administration.asp' ,"objectid=577&mode=6&tag=ajax_list_properties&property=" + k, 'ajax_results', '');
    eval('tickle_session();')
    //alert(k);
}
function list_properties(param_filter){
    ajax_get_url('../asp/object_administration.asp' ,"objectid=577&mode=6&tag=ajax_list_properties&filterid=" + param_filter, 'ajax_results', '');
    eval('tickle_session();')
}
function refresh_list_properties(){
    eval($('ajax_url_value').innerText);
     eval('tickle_session();')
}
// change_model: toggles the sales model of property
function change_model(param_property,param_current_model){
    //ajax_get_url('../asp/object_administration.asp' ,"objectid=577&mode=6&tag=ajax_list_properties&filterid=" + param_filter, 'ajax_results', '');
        var url="../asp/object_administration.asp"
        var params="objectid=577&mode=6&tag=_updatemodel&recordid=" + param_property + "&current=" + param_current_model
        var i_current=param_current_model;
        var i_new = 1;
        var n_url="javascript: change_model(" + param_property + ",1);";
        var n_text="rental"; 
        var elsource="j" + param_property ;
        if (i_current==i_new){
            i_current=2
            n_url="javascript: change_model(" + param_property + ",2);";
            n_text="overnight"; 
        }
        //alert(params)
        //window.location.href=url + "?" + params
        //return void[0];
    var d=new Date();
      var myAjax = new Ajax.Updater('adams', 
            url, 
            {
                method: 'get', 
                parameters: params + '&d=' + d.toString(),
                onComplete: function(obj){
                  //alert('j' + param_property);
                  $(elsource).href=n_url;
                  $(elsource).innerText=n_text;
                  eval('tickle_session();')
                }
            });   

}

//close_ajax_editor: when using ajax for editing then use 'url_params' 
function close_ajax_editor(){
    //alert($F('url_params'));
    var el=get_el('url_params');
    if (el){
        eval($F('url_params'))
    }
}


//progress_window: opens the 'save' progress window
function progress_window(param_url){
// display a window indicating save progress 
            var w=380;
            var h=50;
            var winLeft=Math.round((screen.width - w)/2);
            var winTop=Math.round((screen.height - h)/2);
            var sVersion = navigator.appVersion;
             
           if (sVersion.indexOf('MSIE') != -1 && sVersion.substr(sVersion.indexOf('MSIE')+5,1) > 4)
          {
        		var settings="dialogWidth:380px; dialogHeight:50px; center:yes";
        		var x=window.showModelessDialog(param_url+ '&b=IE',null,settings);
                x.opener=window
            }
            else
            {
        		//var x=window.open(progress_bar_url+ '&b=NN','','width=370,height=115', true);
                var x=window.open(param_url+ '&b=NN','','width=380px,height=50', true);
        
           }
           
            x.focus()
   
   
}

//validate_dmyhm: return false if the day month year hour minute are invalid
function validate_dmyhm(param_prefix,param_el){
    var rule_day=0;
    var rule_month=0;
    var rule_year=0;
    var rule_hour=0;
    var rule_minute=0;
    
    
    
    var el_day=get_el(param_prefix + "_day")
    if (el_day.selectedIndex < 1){
        show_error_message("The date you have entered is not valid, please check your entry !",'error_message_panel', false);
        el_day.focus();
        return false
    }
    else{
        rule_day = el_day[el_day.selectedIndex].value;
    }
    
    var el_month=get_el(param_prefix + "_month")
    if (el_month.selectedIndex < 1){
        show_error_message("The date you have entered is not valid, please check your entry !",'error_message_panel', false);
        el_month.focus();
        return false;                }
    else{
        rule_month = el_month[el_month.selectedIndex].value;
    }

    var el_year=get_el(param_prefix + "_year")
    if (el_year.selectedIndex < 1){
        show_error_message("The date you have entered is not valid, please check your entry !",'error_message_panel', false);
        el_year.focus();
        return false;                }
    else{
        rule_year = el_year[el_year.selectedIndex].value;
    }
    var el_hour=get_el(param_prefix + "_hour")
    if (el_hour.selectedIndex < 1){
        show_error_message("The date you have entered is not valid, please check your entry !",'error_message_panel', false);
        el_hour.focus();
        return false;                }
    else{
        rule_hour = el_hour[el_hour.selectedIndex].value;
    }
    
    var el_minute=get_el(param_prefix + "_minute")
    if (el_minute.selectedIndex < 1){
        show_error_message("The date you have entered is not valid, please check your entry !",'error_message_panel', false);
        el_minute.focus();
        return false;                }
    else{
        rule_minute = el_minute[el_minute.selectedIndex].value;
    }
    
    var s_date=rule_day + " " + rule_month +  " " + rule_year  + " " + rule_hour + ":" + rule_minute 
    var d=new Date(s_date);
    //we test the date is valid by checking the date value against the selectedIndex value (should always be 1 less than selectedIndex)
    if (d.getDate()!=(parseInt(el_day.selectedIndex))){
        show_error_message("You have selected an invalid day of the month, please check your entry!",'error_message_panel', false);
        el_day.focus();
        return false;
    }
    
    return s_date;
}


//validate_dmy: return false if the day month year  are invalid
function validate_dmy(param_prefix,param_el){
    var rule_day=0;
    var rule_month=0;
    var rule_year=0;
    
    
    
    var el_day=get_el(param_prefix + "_day")
    if (el_day.selectedIndex < 1){
        show_error_message("The date you have entered is not valid, please check your entry !",'error_message_panel', false);
        el_day.focus();
        return false
    }
    else{
        rule_day = el_day[el_day.selectedIndex].value;
    }
    
    var el_month=get_el(param_prefix + "_month")
    if (el_month.selectedIndex < 1){
        show_error_message("The date you have entered is not valid, please check your entry !",'error_message_panel', false);
        el_month.focus();
        return false;                }
    else{
        rule_month = el_month[el_month.selectedIndex].value;
    }

    var el_year=get_el(param_prefix + "_year")
    if (el_year.selectedIndex < 1){
        show_error_message("The date you have entered is not valid, please check your entry !",'error_message_panel', false);
        el_year.focus();
        return false;                }
    else{
        rule_year = el_year[el_year.selectedIndex].value;
    }
    
    var s_date=rule_day + " " + rule_month +  " " + rule_year  
    var d=new Date(s_date);
    //we test the date is valid by checking the date value against the selectedIndex value (should always be 1 less than selectedIndex)
    if (d.getDate()!=(parseInt(el_day.selectedIndex))){
        show_error_message("You have selected an invalid day of the month, please check your entry!",'error_message_panel', false);
        el_day.focus();
        return false;
    }
    
    return s_date;
}


//return javascript format date object
function js_date(param_prefix){
    var rule_day=0;
    var rule_month=0;
    var rule_year=0;
    var rule_hour=0;
    var rule_minute=0;
    var el_day=get_el(param_prefix + "_day")
    var el_month=get_el(param_prefix + "_month")
    var el_year=get_el(param_prefix + "_year")
    var el_hour=get_el(param_prefix + "_hour")
    var el_minute=get_el(param_prefix + "_minute")
    rule_day = el_day[el_day.selectedIndex].value;
    rule_month = el_month[el_month.selectedIndex].value;
    rule_year = el_year[el_year.selectedIndex].value;
    rule_hour = el_hour[el_hour.selectedIndex].value;
    rule_minute = el_minute[el_minute.selectedIndex].value;
    var s_date=rule_day + " " + rule_month +  " " + rule_year  + " " + rule_hour + ":" + rule_minute 
     return new Date(s_date);
}

//check_length: bound as an event response to key up event, tests length of 'param_element.value' to ensure that does not exceed 'param_max' length
function check_length(param_event,param_el,param_max){
    if ($(param_el).value<=param_max){
        return void[0];
    }
    else{
        show_error_message("This text is limited to " + param_max + " characters!",'error_message_panel');
        Event.stop(event);
    }
}


//check_postcard: validate the digital postcard editing dialogue
function check_postcard(){
    var progress_bar_url=$F('progress_bar_url');
    
//caption
    if ($F('txt_title').blank()){
         show_error_message("please enter a caption for this postcard!",'error_message_panel');
        $('txt_title').focus();
        return false;
    }
//txt_seo_title
    if ($F('txt_seo_title').blank()){
         show_error_message("please enter a longer title for this postcard!",'error_message_panel');
        $('txt_seo_title').focus();
        return false;
    }
//txt_keywords
 //   if ($F('txt_keywords').blank()){
 //        show_error_message("please enter keyword tags for this postcard!",'error_message_panel');
 //       $('txt_keywords').focus();
 //       return false;
 //   }
//  deal with image properties
    var has_picture=parseInt($F('has_picture')) //does this product already have an image ?
    var n_file=$F('picture') // has user selected an image
    
    //default value for replacing an image is NO
    $('change_picture').value='0'
    //if file not blank then reset replace image
    if (!n_file.blank()){
        //check that file is a JPG
        var m=n_file.toString().toLowerCase();
        var c=m.lastIndexOf(".")
        m=m.substr((c+1),4)
        if (m !='jpg'){
           show_error_message("please select a JPG for the picture !",'error_message_panel'); 
           $('picture').focus()
           return false;
        }
        $('change_picture').value='1'
        //double check that user wants to perform this action
        if (has_picture==1){
            if (!confirm("Please confirm that you wish to replace the picture used for this postcard!")){
                $('change_picture').value='0'
            }
        }
    }
    

    var el=get_el('FCKDATASOURCE');
    if (el){    
        var cEditor = FCKeditorAPI.GetInstance('txtHTML');
        var datasource_name = 'fd_description';
        //alert(datasource_name);
       $(datasource_name).value= cEditor.GetXHTML(true);
         
    }       
    $('url_payload').value=$F('url_params')
    //return false;
    $('save').target='keyhole'; 
// display a window indicating save progress 
    progress_window(progress_bar_url)         
    $('save').submit();

}

var W3CDOM = (document.createElement && document.getElementsByTagName);

function initFileUploads() {
   //alert("initFileUploads")
	if (!W3CDOM) return;
	var fakeFileUpload = document.createElement('div');
	fakeFileUpload.className = 'fakefile';
	fakeFileUpload.appendChild(document.createElement('input'));
	var image = document.createElement('img');
	image.src='../images/button_select.gif';
	fakeFileUpload.appendChild(image);
	var x = document.getElementsByTagName('input');
	for (var i=0;i<x.length;i++) {
		if (x[i].type != 'file') continue;
		if (x[i].parentNode.className != 'fileinputs') continue;
		x[i].className = 'file hidden';
		var clone = fakeFileUpload.cloneNode(true);
		x[i].parentNode.appendChild(clone);
		x[i].relatedElement = clone.getElementsByTagName('input')[0];
		x[i].onchange = x[i].onmouseout = function () {
			this.relatedElement.value = this.value;
		}
	}
}






