var Altered_Field_Defaults = new Array();

function TableViewer_Set_Field_Defaults(Field_Element) {
	var Field_Name = Field_Element.getAttribute('name');
	var Field_Value = Field_Element.value;
	var Field_Wrapper;

	if (Field_Element.getAttribute('type').toLowerCase() == 'checkbox') {
		Field_Value = Field_Element.checked;
	}

	if (Field_Element.parentNode.parentNode.parentNode.parentNode.id == 'Main_TableViewer_Table') {
		Field_Wrapper = Field_Element.parentNode;
	}
	else {
		Field_Wrapper = Field_Element.parentNode.parentNode.parentNode.parentNode.parentNode;
	}

	if (!Altered_Field_Defaults[Field_Name]) {
		Altered_Field_Defaults[Field_Name] = {'value' : Field_Value, 'backgroundColor' : Field_Wrapper.style['backgroundColor']};
	}
}

// At the moment, this function is specific to a single element.
// If could - and should - be expanded and genericized to work for any element.
function TableViewer_Validate_Field(Field_Element) {
    var Field_Name = Field_Element.getAttribute('name');
    var Field_Value = Field_Element.value;
    if (Field_Name == 'ConfigSetup.DataValueConfig_MaxAddressesToDisplay') {
        if (Field_Value != '' && (Field_Value < 0 || Field_Value > 99)) {
            alert('Please enter a number from 0 to 99');
            Field_Element.focus();
        }
    }
}

function TableViewer_Mark_Field_Altered(Field_Element) {
	var Field_Name = Field_Element.getAttribute('name');
	var Field_Value = Field_Element.value;
	var Field_Wrapper;

	if (Field_Element.getAttribute('type').toLowerCase() == 'checkbox') {
		Field_Value = Field_Element.checked;
	}

	if (Field_Element.parentNode.parentNode.parentNode.parentNode.id == 'Main_TableViewer_Table') {
		Field_Wrapper = Field_Element.parentNode;
	}
	else {
		Field_Wrapper = Field_Element.parentNode.parentNode.parentNode.parentNode.parentNode;
	}

	if (Altered_Field_Defaults[Field_Name]) {
		if (Altered_Field_Defaults[Field_Name].value == Field_Value) {
//			Field_Wrapper.style['backgroundColor'] = Altered_Field_Defaults[Field_Name].backgroundColor;
			Field_Element.form.elements['ALTERED.' + Field_Name].value = '';
		}
		else {
//			Field_Wrapper.style['backgroundColor'] = '#FF8000';
			Field_Element.form.elements['ALTERED.' + Field_Name].value = 'Y';
		}
	}
}
function Enable_QE_Image_Uploader(Enable) {
//	if (Enable) {
//		Enable = '';
//	}
//	else {
//		Enable = 'Y';
//	}
//	SetCookie('vsettings', Enable, 1 * c_years, 'DisableQuickEditImageUploader');
}
function Enable_QE_Article_Editor(Enable) {
	if (Enable) {
		Enable = 'N';
	}
	else {
		Enable = 'Y';
	}
	SetCookie('vsettings', Enable, 1 * c_years, 'DisableQuickEditArticleEditor');
}

var qe_toolbar_timer;

function qe_toolbar_show() {
	clearTimeout(qe_toolbar_timer);
	document.getElementById('qe_toolbar').style.visibility='hidden';
	document.getElementById('qe_toolbar_ovr').style.visibility='visible';
	// ------------------------------------------------------
	// Iframe Trick to get over SELECT boxes
	// ------------------------------------------------------
	var DivRef = document.getElementById('qe_toolbar_ovr');
	var IfrRef = document.getElementById('DivShim');
	IfrRef.style.width = DivRef.offsetWidth;
	IfrRef.style.height = DivRef.offsetHeight;
	IfrRef.style.zIndex = 99; //must be one behind the VolusionHelpToolTip popup
	IfrRef.style.visibility = "visible";
	IfrRef.style.display = "block";
	// ------------------------------------------------------
}
function qe_toolbar_hide() {
	qe_toolbar_timer = setTimeout("qe_toolbar_hide_real()",500);
}
function qe_toolbar_hide_real() {
	document.getElementById('qe_toolbar').style.visibility='visible';
	document.getElementById('qe_toolbar_ovr').style.visibility='hidden';
	document.getElementById('DivShim').style.display = "none";
}

var Quick_Edit_Image_Uploader = {
    Enabled: true,
    Active_Image: null,
    $DOM_Elements: null,
    Hover_Menu: document.createElement('div'),
    Floating_Menu: document.createElement('div'),
    Loading: document.createElement('div'),
    Secret_IFrame: document.createElement('iframe'),
    Uploader: null,
    Close_Timer: null,

    Uploader_Progress: function (Percent_Complete) {
        if (Percent_Complete >= 100) {
            //Quick_Edit_Image_Uploader.Refresh_Images();

            var styleSheets = new Array();
            recurseStyleSheets(document.styleSheets, null, styleSheets);

            var Current_Image_SRC = Quick_Edit_Image_Uploader.Get_Image_URL(Quick_Edit_Image_Uploader.Active_Image);
            jQuery.get('/admin/ajax_receiver.asp?system=quick_edit_image_uploader&action=dimensions&current_image=' + Current_Image_SRC + '&stylesheets=' + window.location.pathname + '%08' + styleSheets.join('%08'), Quick_Edit_Image_Uploader.Refresh_Images,'text');
        }
    },

    Start_Hover_Menu_Close_Timeout: function () {
        Quick_Edit_Image_Uploader.Close_Timer = window.setTimeout("Quick_Edit_Image_Uploader.Close_Hover_Menu();", 1000);
    },

    Clear_Hover_Menu_Close_Timeout: function () {
        window.clearTimeout(Quick_Edit_Image_Uploader.Close_Timer);
        Quick_Edit_Image_Uploader.Close_Timer = null;
    },

    Load: function (result) {

        var Image_URL;
        var Image_File_Name;

        Quick_Edit_Image_Uploader.Hover_Menu.style['display'] = 'none';
        Quick_Edit_Image_Uploader.Hover_Menu.style['position'] = 'absolute';
        Quick_Edit_Image_Uploader.Hover_Menu.style['zIndex'] = '9002';
        Quick_Edit_Image_Uploader.Hover_Menu.innerHTML = '<img src="' + Config_AdminImagesFolder + 'quickedit/btn-edit.png" alt="" style="position: absolute; cursor: pointer;" onclick="Quick_Edit_Image_Uploader.Show_Floating_Menu(0);" onmouseover="Quick_Edit_Image_Uploader.Clear_Hover_Menu_Close_Timeout();" onmouseout="Quick_Edit_Image_Uploader.Start_Hover_Menu_Close_Timeout();" />';
        document.body.appendChild(Quick_Edit_Image_Uploader.Hover_Menu);

        Quick_Edit_Image_Uploader.Loading.style['position'] = 'absolute';
        Quick_Edit_Image_Uploader.Loading.style['top'] = '49%';
        Quick_Edit_Image_Uploader.Loading.style['left'] = '45%';
        Quick_Edit_Image_Uploader.Loading.innerHTML = 'Loading...';

        Quick_Edit_Image_Uploader.Floating_Menu.style['display'] = 'none';
        Quick_Edit_Image_Uploader.Floating_Menu.style['zIndex'] = '9999';
        Quick_Edit_Image_Uploader.Floating_Menu.style['position'] = 'absolute';
        Quick_Edit_Image_Uploader.Floating_Menu.style['width'] = '495px';
        Quick_Edit_Image_Uploader.Floating_Menu.style['height'] = '570px';
        Quick_Edit_Image_Uploader.Floating_Menu.style['backgroundColor'] = '#FFFFFF';
        Quick_Edit_Image_Uploader.Floating_Menu.innerHTML = '<div id="Quick_Edit_Image_Uploader.Floating_Menu"></div>';
        document.body.appendChild(Quick_Edit_Image_Uploader.Floating_Menu);

        Quick_Edit_Image_Uploader.Secret_IFrame.style['display'] = 'none';
        Quick_Edit_Image_Uploader.Secret_IFrame.frameBorder = '0';
        Quick_Edit_Image_Uploader.Secret_IFrame.style['position'] = 'absolute';
        Quick_Edit_Image_Uploader.Secret_IFrame.src = '/blank.html';
        document.body.appendChild(Quick_Edit_Image_Uploader.Secret_IFrame);
    },

    Attach: function (Image_Element) {
        // This special function is required... IE7 does not have handler for the element that fired the event.. nested elements will fire incorrectly
        // This causes known memory leaks, fix it when IE finally supports a .currentTarget w3c property
        this_AttachEvent(Image_Element, 'mouseover', 'qeiu', Quick_Edit_Image_Uploader.Show_Hover_Menu);
    },

    Get_Image_File_Name: function (Image_Element) {
        var Image_URL = Quick_Edit_Image_Uploader.Get_Image_URL(Image_Element);
        if (Image_URL) {
            Image_URL = Image_URL.substr(Image_URL.lastIndexOf('/') + 1);
        }
        return Image_URL;
    },

    Get_Image_URL: function (Image_Element) {
        var Image_URL = '';
        if (Image_Element.src) {
            Image_URL = Image_Element.src.toLowerCase();
        }
        else if (Image_Element.currentStyle) {
            Image_URL = Image_Element.currentStyle.backgroundImage.toLowerCase().replace(/(?:url\()|[\)"']/g, '');
        }
        else if (document.defaultView && document.defaultView.getComputedStyle) {
            Image_URL = document.defaultView.getComputedStyle(Image_Element, null).getPropertyValue('background-image').toLowerCase().replace(/(?:url\()|[\)"']/g, '');
        }
        if (Image_URL == 'none') {
            Image_URL = '';
        }
        if (Image_URL.indexOf('?') > -1) {
            Image_URL = Image_URL.substr(0, Image_URL.indexOf('?'));
        }
        return Image_URL;
    },

    Set_Image_URL: function (Image_Element, Image_URL) {
        if (Image_Element.src) {
            Image_Element.src = Image_URL;
        }
        else if ((Image_Element.currentStyle && Image_Element.currentStyle.backgroundImage) || (document.defaultView && document.defaultView.getComputedStyle && document.defaultView.getComputedStyle(Image_Element, null).getPropertyValue('background-image'))) {
            Image_Element.style.backgroundImage = 'url(' + Image_URL + ')';
        }
    },

    Show_Hover_Menu: function (event) {
        if (window.event) {
            window.event.cancelBubble = true;
        }
        else if (event.stopPropagation) {
            event.stopPropagation();
        }

        if (!Quick_Edit_Image_Uploader.Enabled) {
            return;
        }

        Quick_Edit_Image_Uploader.Clear_Hover_Menu_Close_Timeout();

        var target = this;

        var Coords = Quick_Edit_Image_Uploader.Coords(target);
        var Dimensions = Quick_Edit_Image_Uploader.Dimensions(target);

        Quick_Edit_Image_Uploader.Active_Image = target;

        toolTipElement.style.display = 'none';
        Quick_Edit_Image_Uploader.Hover_Menu.style['display'] = '';
        Quick_Edit_Image_Uploader.Hover_Menu.style['left'] = (Coords.x + Dimensions.width - 15) + 'px';
        Quick_Edit_Image_Uploader.Hover_Menu.style['top'] = (Coords.y - 15) + 'px';
        Wrap_Element_With_Border(target);
    },

    Show_Floating_Menu: function (Group) {
        Quick_Edit_Image_Uploader.Enabled = false;
        if (document.body.scrollTop >= 0) {
            Quick_Edit_Image_Uploader.Floating_Menu.style['top'] = (document.body.scrollTop + 100) + 'px';
        }
        else {
            Quick_Edit_Image_Uploader.Floating_Menu.style['top'] = (window.scrollY + 100) + 'px';
        }
        Quick_Edit_Image_Uploader.Floating_Menu.style['left'] = '25%';
        Quick_Edit_Image_Uploader.Floating_Menu.style['display'] = '';

        Quick_Edit_Image_Uploader.Secret_IFrame.style['display'] = Quick_Edit_Image_Uploader.Floating_Menu.style['display'];
        Quick_Edit_Image_Uploader.Secret_IFrame.style['left'] = Quick_Edit_Image_Uploader.Floating_Menu.style['left'];
        Quick_Edit_Image_Uploader.Secret_IFrame.style['top'] = Quick_Edit_Image_Uploader.Floating_Menu.style['top'];
        Quick_Edit_Image_Uploader.Secret_IFrame.style['width'] = Quick_Edit_Image_Uploader.Floating_Menu.style['width'];
        Quick_Edit_Image_Uploader.Secret_IFrame.style['height'] = Quick_Edit_Image_Uploader.Floating_Menu.style['height'];
        Quick_Edit_Image_Uploader.Secret_IFrame.style['zIndex'] = Quick_Edit_Image_Uploader.Floating_Menu.style['zIndex'] - 1;

        var Image_SRC = Quick_Edit_Image_Uploader.Get_Image_File_Name(Quick_Edit_Image_Uploader.Active_Image);
        if (Image_SRC.indexOf('?') > 0) {
            Image_SRC = Image_SRC.substr(0, Image_SRC.indexOf('?'));
        }

        v$('Quick_Edit_Image_Uploader.Floating_Menu').innerHTML = '';
        v$('Quick_Edit_Image_Uploader.Floating_Menu').appendChild(Quick_Edit_Image_Uploader.Loading.cloneNode(true));
        jQuery.get('/admin/ajax_receiver.asp?system=quick_edit_image_uploader&action=preview&img=' + Image_SRC + '&group=' + Group, Quick_Edit_Image_Uploader.Populate_Floating_Menu, 'text');
    },

    Populate_Floating_Menu: function (result) {
        v$('Quick_Edit_Image_Uploader.Floating_Menu').innerHTML = result;
        Quick_Edit_Image_Uploader.Uploader = new Uploader('Quick_Edit_Image_Uploader_Form');
        Quick_Edit_Image_Uploader.Uploader.Update_Progress = Quick_Edit_Image_Uploader.Uploader_Progress;
    },

    Upload_New_Image: function () {
        var Current_Image_Path = Quick_Edit_Image_Uploader.Get_Image_URL(Quick_Edit_Image_Uploader.Active_Image);

        Quick_Edit_Image_Uploader.Uploader.Allowed_Extensions = Current_Image_Path.substr(Current_Image_Path.lastIndexOf('.') + 1);

        Current_Image_Path = Current_Image_Path.substr(0, Current_Image_Path.lastIndexOf('/') + 1);
        Current_Image_Path = Current_Image_Path.replace(/\/\//, '');
        Current_Image_Path = Current_Image_Path.substr(Current_Image_Path.indexOf('/'));

        Quick_Edit_Image_Uploader.Uploader.Destination_Path = Current_Image_Path;

        Quick_Edit_Image_Uploader.Uploader.Start();
    },

    Close_Hover_Menu: function () {
        if (!Quick_Edit_Image_Uploader.Enabled) {
            return;
        }
        Quick_Edit_Image_Uploader.Active_Image = null;
        Quick_Edit_Image_Uploader.Hover_Menu.style['display'] = 'none';
    },

    Close_Floating_Menu: function (event) {
        Quick_Edit_Image_Uploader.Floating_Menu.style['display'] = 'none';
        Quick_Edit_Image_Uploader.Secret_IFrame.style['display'] = 'none';
        Quick_Edit_Image_Uploader.Enabled = true;
        Quick_Edit_Image_Uploader.Close_Hover_Menu();
    },

    Use_Selected_New_Image: function (Image_SRC) {
        if (!Image_SRC) {
            window.alert('Please select an image to choose by clicking on it.');
            return;
        }

        var styleSheets = new Array();

        recurseStyleSheets(document.styleSheets, null, styleSheets);

        var Current_Image_SRC = Quick_Edit_Image_Uploader.Get_Image_URL(Quick_Edit_Image_Uploader.Active_Image);
        jQuery.get('/admin/ajax_receiver.asp?system=quick_edit_image_uploader&action=get&current_image=' + Current_Image_SRC + '&new_image=' + Image_SRC + '&stylesheets=' + window.location.pathname + '%08' + styleSheets.join('%08'), Quick_Edit_Image_Uploader.Refresh_Images, 'text');
    },

    Refresh_Images: function (result) {

        Quick_Edit_Image_Uploader.$DOM_Elements.each(function() {
                var Current_Image_URL = Quick_Edit_Image_Uploader.Get_Image_URL(this);

                if (!Current_Image_URL) {
                    return;
                }

                var Active_Image_URL = Quick_Edit_Image_Uploader.Get_Image_URL(Quick_Edit_Image_Uploader.Active_Image);

                if (Active_Image_URL == Current_Image_URL) {
                    Quick_Edit_Image_Uploader.Set_Image_URL(this, Active_Image_URL + '?' + Math.random());
                }
                if (Quick_Edit_Image_Uploader.Has_Background_Image(Quick_Edit_Image_Uploader.Active_Image)) {
                    var dimensions = result.split('\b');
                    if (dimensions[0] != '') {
                        Quick_Edit_Image_Uploader.Active_Image.style.width = dimensions[0] + 'px';
                    }
                    if (dimensions[1] != '') {
                        Quick_Edit_Image_Uploader.Active_Image.style.height = dimensions[1] + 'px';
                    }
                }
            });
        Quick_Edit_Image_Uploader.Close_Floating_Menu();
    },

    Has_Background_Image: function (Image_Element) {
        if (Image_Element.currentStyle) {
            if (Image_Element.currentStyle.backgroundImage) {
                return true;
            }
        }
        else if (document.defaultView && document.defaultView.getComputedStyle) {
            if (document.defaultView.getComputedStyle(Image_Element, null).getPropertyValue('background-image')) {
                return true;
            }
        }
        else if (Image_Element.style.backgroundImage) {
            return true;
        }
        return false;
    },

    Coords: function (Element) {
        var Offset = { 'x': 0, 'y': 0 };
        if (Element.offsetParent) {
            Offset.x += Element.offsetLeft;
            Offset.y += Element.offsetTop;
            var Parent = Element;
            while (Parent = Parent.offsetParent) {
                Offset.x += Parent.offsetLeft;
                Offset.y += Parent.offsetTop;
            }
            return Offset;
        }
    },

    Dimensions: function (Element) {
        return { 'width': Element.offsetWidth, 'height': Element.offsetHeight };
    }
}


//BEGIN QuickEdit Pencil Icons
//
//
var activeInput = null;
function openEasyEditorWindow(event) {
	var target = (window.event) ? window.event.srcElement : event.target;
		window.open('/EasyEditor.asp?Field=' + target.className,'WYSIWYG_' + target.className,'scrollbars=0,resizable=1,width=775,height=480,toolbar=0');
}
function Display_PageText_Div (event) {

    if (activeInput) return;

    // jbz edits 12/2011 passing element instead of event

    var target = event.tagName ? event : ((window.event) ? window.event.srcElement.parentNode : event.target.parentNode);
	//var target = (window.event) ? window.event.srcElement.parentNode : event.target.parentNode;
	var PageText_id, PageText_Type;
	if ((/^PageText_L[\d]+n/).test(target.className)) {
		PageText_id = target.className.substring(10,target.className.length-1);
		PageText_Type = 'P';
		pageTextElement = target;
	}
	else if ((/^div_articleid_[\d]+$/).test(target.id)) { // jbz 12/2011 fix -- asking original element, so query id instead of classname
			//PageText_id = target.className.substring(target.className.lastIndexOf('_')+1,target.className.length);
            PageText_id = target.id.split('_').pop();
		PageText_Type = 'A';
	}
	else {
		return;
	}
	var PageText_Div = document.createElement('div'),
	PageText_Submit = document.createElement('input'),
		PageText_IFrame = document.createElement('iframe'),
	PageText_Form,//  = document.createElement('form'),
		PageText_Element, PageText_Element2, PageText_Input;
	    PageText_Form  = document.createElement('form');
		PageText_Form.setAttribute('name','EditForm');
	PageText_Form.onsubmit = submitPageText;
	if (PageText_Type == 'P') {
	    PageText_Input = document.createElement('input');
	    PageText_Input.setAttribute('name', 'L' + PageText_id + 'n');
		PageText_Input.setAttribute('type','text');
			PageText_Input.style.width='558px';
			PageText_Input.style.margin='0px';
			PageText_Input.style.padding = '4px';
		PageText_Input.maxLength = 255;
			
	}
	else {
	    PageText_Input = document.createElement('textarea');
	    PageText_Input.setAttribute('name', 'ArticleID_' + PageText_id);
			PageText_Input.style.width="570px";
			PageText_Input.style.height="300px";
		}
	PageText_Submit.setAttribute('type','submit');
	PageText_Submit.setAttribute('value','Save');
		PageText_Submit.style.fontSize = '18px';
		PageText_Submit.style.marginBottom = '5px';
		if (typeof(PageText_Submit.style.cssFloat) != 'undefined')
			PageText_Submit.style.cssFloat = 'right';
		else if (typeof(PageText_Submit.style.styleFloat) != 'undefined')
			PageText_Submit.style.styleFloat = 'right';
	PageText_Submit.onclick = submitPageText;
	
		PageText_Div.setAttribute('id','PageText_Div');
		PageText_Div.style.width = '600px';
	PageText_Div.style.position = 'absolute';
	PageText_Div.style.textAlign = 'left';
		PageText_Div.style.border = '2px solid #a9ccdf';
	if (document.documentElement && document.documentElement.scrollTop && document.documentElement.scrollTop >= 0)
		PageText_Div.style.top = (document.documentElement.scrollTop + 150) + 'px';
	else if (document.body.scrollTop && document.body.scrollTop >= 0)
		PageText_Div.style.top = (document.body.scrollTop + 150) + 'px';
	else if (window.scrollY && window.scrollY >= 0)
		PageText_Div.style.top = (window.scrollY + 150) + 'px';
	else
			PageText_Div.style.top = '150px';
		PageText_Div.style.left = '25%';
		PageText_Div.style.backgroundColor = '#bedfff';
		PageText_Div.style.zIndex = 9002;
	
		PageText_Element = document.createElement('div');
		PageText_Element.style.height = '16px';
		PageText_Element.style.background = "url('" + Config_AdminImagesFolder + "pagetext_editor_header_bg.gif') repeat-x";
		PageText_Element.style.verticalAlign = 'middle';
		PageText_Element.style.textAlign = 'center';
		PageText_Element.style.padding = '5px';
		PageText_Element2 = document.createElement('span');
		PageText_Element2.style.fontSize = '16px';
		PageText_Element2.style.fontWeight = 'bold';
		PageText_Element2.appendChild(document.createTextNode('Site Content Editor'));
		PageText_Element.appendChild(PageText_Element2);

		PageText_Element2 = document.createElement('a');
		PageText_Element2.style.position = 'absolute';
		PageText_Element2.style.top = '5px';
		PageText_Element2.style.right = '5px';
		PageText_Element2.style.fontWeight = 'bold';
		PageText_Element2.style.color = '#FF0000';
		PageText_Element2.style.cursor = 'pointer';
		PageText_Element2.onclick = closePageText_Div;
		PageText_Element2.appendChild(document.createTextNode('X'));

		PageText_Element.appendChild(PageText_Element2);
		PageText_Div.appendChild(PageText_Element);
		PageText_Form.style.padding = '15px;';
		//PageText_Form.style.background = "#e7f3ff url('" + Config_AdminImagesFolder + "pagetext_editor_background.gif') repeat-x";
		PageText_Form.style.background = "#bedfff";
		PageText_Form.appendChild(document.createElement('br'));
		activeInput = PageText_Form.appendChild(PageText_Input);
		PageText_Form.appendChild(PageText_Submit);
		PageText_Form.appendChild(document.createElement('br'));		
	if (PageText_Type == 'A') {
		PageText_Element = document.createElement('input');
		PageText_Element.setAttribute('type','button');
		PageText_Element.setAttribute('value','Easy Editor');
			PageText_Element.className = 'ArticleID_' + PageText_id;
		PageText_Element.onclick = openEasyEditorWindow;
		PageText_Form.appendChild(PageText_Element);
	}
	PageText_Div.appendChild(PageText_Form);
		
		PageText_Element = document.createElement('div');
		PageText_Element.setAttribute('id','PageText_Footer');
		PageText_Element.style.padding = '5px';
		PageText_Element.style.borderTop = '1px solid #a9ccf2';
//		PageText_Element.style.background = '#dfe7f7';
		PageText_Element.style.background = '#a9ccdf';
		PageText_Element.style.color = '#2c4984';
		PageText_Element.style.clear = 'both';
//		PageText_Element.style.textAlign = 'right';

		PageText_Div.appendChild(PageText_Element);
		PageText_IFrame.style.top = PageText_Div.style.top;
		PageText_Div.style.zIndex = 9002;
	document.body.appendChild(PageText_Div);
		PageText_IFrame.src = "/blank.htm";
		PageText_IFrame.setAttribute('id','PageText_IFrame');
		PageText_IFrame.style.width = '600px';
		PageText_IFrame.style.height = Quick_Edit_Image_Uploader.Dimensions(v$('PageText_Div')).height + 'px';
		PageText_IFrame.style.position = 'absolute';
		PageText_IFrame.style.border = 'none';
		PageText_IFrame.style.left = '25%';
		document.body.appendChild(PageText_IFrame);
		getTextValue(false,PageText_id,PageText_Type);
	toolTipElement.style.display='none';
}

var toolTipElement = document.createElement('a');

var pageTextElements = new Object();
var qe_tip_body_onloads = function() {
    // used to iterate through all elements and add tooltip behavior--now we do that below, using jquery
}
var pageTextValue = null;
function getTextValue(input_value, id, type) {
	if (input_value===false) {
		jQuery.get('/admin/PageText.asp?QuickEdit=Y&id=' + id + '&type=' + type, getTextValue, 'text');
	}
	else {
		var TextValue, Section_Name, Section_Link, Section_Help;
		
		Section_Name = input_value.substring(0,input_value.lastIndexOf('|'));
		activeInput.value = Section_Name.substring(0,Section_Name.lastIndexOf('|'));
		Section_Name = Section_Name.substring(Section_Name.lastIndexOf('|')+1,Section_Name.length);
		
		Section_Help = document.createElement('div');
		Section_Help.innerHTML = !input_value ? " " : input_value.substring(input_value.lastIndexOf('|')+1,input_value.length).replace(/\%7C/,'|');
		if (Section_Name != 'Articles') {
			Section_Help.removeChild(Section_Help.firstChild);
			pageTextValue = activeInput.value;
		}
		
		Section_Link = document.createElement('a');
			Section_Link.appendChild(document.createTextNode('See all text in "' + Section_Name + '" '))
			Section_Link.style.position = 'absolute';
			Section_Link.style.right = '5px';
			Section_Link.style.bottom = '5px';
		if (Section_Name == 'Articles') 
			Section_Link.setAttribute('href',Config_FullSecureStoreURL + 'admin/Display_Articles.asp');
		else
			Section_Link.setAttribute('href',Config_FullSecureStoreURL + 'admin/PageText.asp?Section=' + Section_Name);
		Section_Link.setAttribute('target', '_blank');
		Section_Link = Section_Link.appendChild(document.createElement('img'));
		Section_Link.src = Config_AdminImagesFolder + 'pagetext_editor_viewmore.gif';
		Section_Link.setAttribute('align','absmiddle');
		Section_Link.style.border = 'none';
		v$('PageText_Footer').innerHTML = '&nbsp;';
		v$('PageText_Footer').appendChild(Section_Link.parentNode);

		if (Section_Name == 'Articles') {
			Section_Link = document.createElement('a');
			Section_Link.appendChild(document.createTextNode('Edit this Article in extended mode'));
			Section_Link.style.position = 'absolute';
			Section_Link.style.left = '5px';
			Section_Link.style.bottom = '5px';
			Section_Link.setAttribute('href','/admin/AdminDetails_Generic.asp?Table=Articles&ID=' + activeInput.name.substring(10,activeInput.name.length));
			Section_Link.setAttribute('target', '_blank');
			v$('PageText_Footer').parentNode.appendChild(Section_Link);
		}
		//alert(Section_Help.innerHTML.indexOf("loginform"));
		if(Section_Help.innerHTML.indexOf("loginform")>0)
		{
			location.href = '/login.asp?message=Your session has expired. Please login again.';
			return false;
		}else{
			activeInput.parentNode.appendChild(Section_Help);
			v$('PageText_IFrame').style.height = Quick_Edit_Image_Uploader.Dimensions(v$('PageText_Div')).height + 'px';	
		}
		
	}
}
function submitPageText() {
	if(activeInput.value == "")
		activeInput.value = "<img src='/a/i/blank.gif' width='12' height='12' name='placeholder'/>";

	jQuery.post('/admin/PageText.asp?QuickEdit=Y',
	'NOSAVE___Form_Submission_Token=' + Form_Submission_Token + '&'
	+ activeInput.name + '=' + encodeURIComponent(activeInput.value),alertSubmitted,'text');
	return false;
}
function alertSubmitted(alertValue) {
	alert(alertValue);
	if (!(/^L\d+n$/).test(activeInput.name) || (/\{\d+\}/g).test(activeInput.value))
		window.location.reload(false);
	else {
		for (var i=0; i<pageTextElements['PageText_' + activeInput.name].length; i++)
		pageTextElements['PageText_' + activeInput.name][i].innerHTML = activeInput.value;
		closePageText_Div();
	}
}

function closePageText_Div() {
		recursiveRemove(v$('PageText_IFrame'));
	recursiveRemove(v$('PageText_Div'));
	activeInput = null;
	pageTextElement = null;
}
function recursiveRemove(varElement) { //Needed to prevent bug in IE which shows nonsecure items error
	if (varElement.childNodes && varElement.childNodes.length > 0) {
		while (varElement.childNodes.length > 0) {
			recursiveRemove(varElement.firstChild);
		}								
	}
	if (varElement.childNodes)
		varElement.parentNode.removeChild(varElement);
}

function relToAbs(path, basePath) {
	if (basePath == null) {
		basePath = window.location.pathname;
	}
	
	basePath = basePath.substr(0, basePath.lastIndexOf('/')).toLowerCase();
	path = path.toLowerCase();

	if (path.substr(0, 4) == 'http' || path.substr(0, 2) == '//') {
		path = path.substr(path.indexOf('//') + 2);
		if (path.substr(0, path.indexOf('/')) == window.location.hostname) {
			path = path.substr(path.indexOf('/'))
		}
		else {
			return null;
		}
	}
	
	if (path.indexOf('../') == -1) {
		if (path.substr(0, 1) == '/') {
			return path;
		}
		path = basePath + '/' + path;
		return path;
	}
	
	if (path.substr(0, 1) == '/') {
		basePath = '';
		path = path.substr(1);
	}
	
	while (path != '') {
		if (path.substr(0, 3) == '../') {
			basePath = basePath.substr(0, basePath.lastIndexOf('/'));
			path = path.substr(3);
		}
		else if (path.indexOf('../') == -1) {
			basePath = basePath + '/' + path;
			break;
		}
		else {
			basePath = basePath + '/' + path.substr(0, path.indexOf('/../'));
			path = path.substr(path.indexOf('../'));
		}
	}
	return basePath;
}

function recurseStyleSheets(sheetArray, srcPath, styleSheets) {
	for (var i = 0; i < sheetArray.length; i++) {
		if(sheetArray[i].href){
			var basePath = relToAbs(sheetArray[i].href, srcPath);
			if (basePath) {
				if (sheetArray[i].cssRules) {
					var ffSheetArray = new Array();
					for (var x = 0; x < sheetArray[i].cssRules.length; x++) {
						if (sheetArray[i].cssRules[x].type == 3) {
							ffSheetArray.push(sheetArray[i].cssRules[x].styleSheet);
						}
					}
					if (ffSheetArray.length > 0) {
						recurseStyleSheets(ffSheetArray, basePath, styleSheets);
					}
				}
				else if (sheetArray[i].imports) {
					recurseStyleSheets(sheetArray[i].imports, basePath, styleSheets);
				}
				if (sheetArray[i].href) {
					if (sheetArray[i].href.substr(sheetArray[i].href.length - 4).toLowerCase() == '.css') {
						styleSheets.push(basePath);
					}
				}
			}
		}
	}
}

function ajaxError(code, result) {
	alert('HTTP Error ' + code + ':\n\n' + result);
}

// jbz 12/2011 begin jquery behaviors
; (function ($) {

    var editMode;
    $.fn.surround = function ($elm) {

        var offset = $elm.offset();

        this.data('attachedTo', $elm)
            .css({
                display: '',
                left: offset.left - 10,
                top: offset.top - 10
            }).find('div').css({
                height: $elm.outerHeight(),
                width: Math.max($elm.outerWidth(),65)
            });
        return this;
    };

    $.fn.forwardMouseEvents = function(evts) {
    if ($.browser.msie) {
        var self = this;
        $.each((evts || "mouseout mouseover mouseleave mousemove click").split(' '),function(i,evt){
            self.bind(evt,function(e){
                e.preventDefault();
                var oldDisplay = self[0].style.display + '';
                self.parent()[0].style.display = 'none';
                var elm = document.elementFromPoint(e.pageX,e.pageY);
                self.parent()[0].style.display = oldDisplay;
                if (elm) {
                    eType = 'on'+evt;
                    if ($(elm).attr(eType)) {
                        return elm['on'+evt]();
                    }
                    return elm[evt] && elm[evt]();
                }
            });
        });
    }
        return this;
    }

    var $quickEditBox = $('<div id="qet-box-container"><a href="/admin" id="qet-link">Edit</a><div id="qet-border-box"></div></div>');

    qe_tip_body_onloads = function() {

        $.ajax({
            url: '/admin/ajax_receiver.asp?system=quick_edit_image_uploader&action=list',
            dataType: 'text',
            success: function(res) {
                 // jbz adding better way to record banned images

                 Quick_Edit_Image_Uploader.Load(res);

                 $quickEditBox.appendTo('body').find('#qet-border-box').forwardMouseEvents();

                    $('#qet-link').bind('click', function (e) {
                        e.preventDefault();
                        var $elm = $(this).parent().data('attachedTo');
                        if (editMode == "pageText") {
                            Display_PageText_Div($elm[0]);
                        } else {
                            Quick_Edit_Image_Uploader.Active_Image = $elm[0];
                            Quick_Edit_Image_Uploader.Show_Floating_Menu(0);
                        }

                    });

                    $('span[class^=PageText_L], div[id*=articleid]').mouseover(function (e) {
                        editMode = "pageText";
                        $quickEditBox.surround($(this));
                    });

                var AllowedImages = "|" + res.toLowerCase().replace('clear1x1.gif|','').replace('header_bg.gif|','') + "|",
                isAllowedImage = function(imageFileName) {
                        return AllowedImages.indexOf('|'+imageFileName+'|') !== -1;
                    };

                Quick_Edit_Image_Uploader.$DOM_Elements = $('img, input, div, a, h1, h2, h3, h4, h5, h6, li').not('[class^=qet], [id^=qet], [class^=qtg], #header, #page_wrapper, .colors_lines, .v65-cart-details-blank, .v65-cart-separator').each(function () {
                    var $this = $(this);
                    var imageFileName = Quick_Edit_Image_Uploader.Get_Image_File_Name(this);
                    if (imageFileName && isAllowedImage(imageFileName)) {
                        $this.mouseover(function (e) {
                            editMode = "image";
                            $quickEditBox.surround($(this));
                        });
                    }
                });

            }
        });
    }

} (jQuery))

