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 = '';
	}
	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 = {
	HTML_Elements_To_Attach : ['img', 'input', 'div', 'td', 'a', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'li'],
	Enabled : true,
	Active_Image : 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);
			sendAjax('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, throwAjaxError, false);
		}
	},

	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) {
//		result = 'logo.gif';
		if (!result) {
			sendAjax('GET', '/admin/ajax_receiver.asp', 'system=quick_edit_image_uploader&action=list', Quick_Edit_Image_Uploader.Load, throwAjaxError, false);
			return;
		}
		var Allowed_Images = ('|' + result.replace(/clear1x1.gif\|/, '') + '|').toLowerCase();
		var Banned_Images = ('').toLowerCase();
		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/swap.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);

		for (var x = 0; x < Quick_Edit_Image_Uploader.HTML_Elements_To_Attach.length; x++) {
			var Image_Elements_Arr = document.getElementsByTagName(Quick_Edit_Image_Uploader.HTML_Elements_To_Attach[x]);
			for (var i = 0; i < Image_Elements_Arr.length; i++) {
				Image_File_Name = Quick_Edit_Image_Uploader.Get_Image_File_Name(Image_Elements_Arr[i]);
				if (Image_File_Name) {
					if (Banned_Images.indexOf('|' + Image_File_Name + '|') == -1 && Allowed_Images.indexOf('|' + Image_File_Name + '|') > -1) {
						Quick_Edit_Image_Uploader.Attach(Image_Elements_Arr[i]);
					}
				}
			}
		}
	},

	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));
		sendAjax('GET', '/admin/ajax_receiver.asp', 'system=quick_edit_image_uploader&action=preview&img=' + Image_SRC + '&group=' + Group, Quick_Edit_Image_Uploader.Populate_Floating_Menu, throwAjaxError, false);
	},

	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';
		Unwrap_Element_With_Border();
	},

	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);
		sendAjax('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, throwAjaxError, false);
	},

	Refresh_Images : function(result) {
		for (var x = 0; x < Quick_Edit_Image_Uploader.HTML_Elements_To_Attach.length; x++) {
			var Image_Elements_Arr = document.getElementsByTagName(Quick_Edit_Image_Uploader.HTML_Elements_To_Attach[x]);
			for (var i = 0; i < Image_Elements_Arr.length; i++) {
				var Current_Image_URL = Quick_Edit_Image_Uploader.Get_Image_URL(Image_Elements_Arr[i]);
				
				if (!Current_Image_URL) {
					continue;
				}

				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(Image_Elements_Arr[i], 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};
	}
}

function Unwrap_Element_With_Border() {
	var Top = v$('v_Wrapper_Top_Border');
	var Right = v$('v_Wrapper_Right_Border');
	var Bottom = v$('v_Wrapper_Bottom_Border');
	var Left = v$('v_Wrapper_Left_Border');

	if (Top) {
		Top.style['display'] = 'none';
		Right.style['display'] = 'none';
		Bottom.style['display'] = 'none';
		Left.style['display'] = 'none';
	}
}

function Wrap_Element_With_Border(Element) {
	var Top = v$('v_Wrapper_Top_Border');
	var Right = v$('v_Wrapper_Right_Border');
	var Bottom = v$('v_Wrapper_Bottom_Border');
	var Left = v$('v_Wrapper_Left_Border');

	if (!Top) {
		var Create_Div_Border = function(ID, Type) {
			var New_Div_Border = document.createElement('div');
			New_Div_Border.setAttribute('id', ID);
			New_Div_Border.style['position'] = 'absolute';
			New_Div_Border.style['zIndex'] = '9000';
			New_Div_Border.style['display'] = 'none';
			New_Div_Border.style['backgroundColor'] = '#ffdd80';
			if (Type == 'Top' || Type == 'Bottom') {
				New_Div_Border.style['height'] = '3px';
				New_Div_Border.innerHTML = '<img width="0" height="3" alt="" />';
			}
			else {
				New_Div_Border.style['width'] = '3px';
				New_Div_Border.innerHTML = '<img width="3" height="0" alt="" />';
			}
			document.body.appendChild(New_Div_Border);
			return New_Div_Border;
		}

		Top = Create_Div_Border('v_Wrapper_Top_Border', 'Top');
		Right = Create_Div_Border('v_Wrapper_Right_Border', 'Right');
		Bottom = Create_Div_Border('v_Wrapper_Bottom_Border', 'Bottom');
		Left = Create_Div_Border('v_Wrapper_Left_Border', 'Left');
	}

	var 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;
		}
	}

	var Dimensions = function(Element) {
		var width, height;
		if (document.defaultView && document.defaultView.getComputedStyle) {
			height = document.defaultView.getComputedStyle(Element, null).getPropertyValue('height');
			width = document.defaultView.getComputedStyle(Element, null).getPropertyValue('width');
			if (width.substring(width.length-2,width.length).toLower != 'px')
				width = Element.offsetWidth;
			else
				width = parseInt(width);
			if (height.substring(height.length-2,height.length).toLower != 'px')
				height = Element.offsetHeight;
			else
				height = parseInt(height);
		}
		else if (Element.currentStyle) {
			width = Element.currentStyle['width'];
			height = Element.currentStyle['height'];
			if (width.substring(width.length-2,width.length).toLower != 'px')
				width = Element.offsetWidth;
			else
				width = parseInt(width);
			if (height.substring(height.length-2,height.length).toLower != 'px')
				height = Element.offsetHeight;
			else
				height = parseInt(height);
		}
		else {
			width = Element.offsetWidth;
			height = Element.offsetHeight;
		}
		return {'width' : width, 'height' : height};
	}

	var Position = Coords(Element);
	var Size = Dimensions(Element);

	Top.style['left'] = (Position.x - 3) + 'px';
	Top.style['top'] = (Position.y - 3) + 'px';
	Top.style['width'] = (Size.width + 6) + 'px';

	Right.style['left'] = (Position.x + Size.width) + 'px';
	Right.style['top'] = (Position.y - 3) + 'px';
	Right.style['height'] = (Size.height + 6) + 'px';
	
	Bottom.style['left'] = (Position.x - 3) + 'px';
	Bottom.style['top'] = (Position.y + Size.height) + 'px';
	Bottom.style['width'] = (Size.width + 6) + 'px';

	Left.style['left'] = (Position.x - 3) + 'px';
	Left.style['top'] = (Position.y - 3) + 'px';
	Left.style['height'] = (Size.height + 6) + 'px';


	Top.style['display'] = '';
	Right.style['display'] = '';
	Bottom.style['display'] = '';
	Left.style['display'] = '';
}

//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;
	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.className)) {
			PageText_id = target.className.substring(target.className.lastIndexOf('_')+1,target.className.length);
		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;
	if (document.all) 
			PageText_Form  = document.createElement('<form name="EditForm"></form>');
	else {			
			PageText_Form  = document.createElement('form');
		PageText_Form.setAttribute('name','EditForm');
	}
	PageText_Form.onsubmit = submitPageText;
	if (PageText_Type == 'P') {
		if (document.all) 
				PageText_Input = document.createElement('<input name="L' + PageText_id + 'n">');
		else {
				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 {
		if (document.all) 
				PageText_Input = document.createElement('<textarea name="ArticleID_' + PageText_id + '"></textarea>');
		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);
	Unwrap_Element_With_Border();
	toolTipElement.style.display='none';
}

var toolTipElement = document.createElement('a');

var pageTextElements = new Object();
function qe_tip_body_onloads() {
	if (v$('toolTipImage'))
		return;
	toolTipElement.className = 'PageText_ToolTip';
	toolTipElement.style.position = 'absolute';
	toolTipElement.style.display = 'none';
	toolTipElement.style.zIndex = 9001;
	toolTipElement.onclick = Display_PageText_Div;
	toolTipElement.style.textDecoration = "underline";
	toolTipElement.style.fontWeight = "bold";
	toolTipElement.style.border = "0px";
	toolTipElement.style.color = "#336699";
	toolTipElement.style.backgroundColor = "#ffffff";
	
	//var toolTipImage = new Image();
	//toolTipImage.src = Config_AdminImagesFolder + 'btn_admin_edit.gif';
	//toolTipImage.style.borderStyle='none';
	//toolTipImage.setAttribute('id', 'toolTipImage');

	var toolTipLabel = document.createElement('label');
	var text = document.createTextNode('Edit');
	toolTipLabel.setAttribute('id', 'toolTipLabel');
	toolTipLabel.style.cursor = "pointer";
	toolTipLabel.appendChild(text);
	
	toolTipElement.appendChild(toolTipLabel);
	document.body.appendChild(toolTipElement);

	var PageText_Tips = document.getElementsByTagName('span');
	for (var i in PageText_Tips) {
		if (PageText_Tips[i].className && (/^PageText_L[\d]+n$/).test(PageText_Tips[i].className)) {
			if (!pageTextElements[PageText_Tips[i].className])
				pageTextElements[PageText_Tips[i].className] = new Array();
			pageTextElements[PageText_Tips[i].className][pageTextElements[PageText_Tips[i].className].length] = PageText_Tips[i];
			
			PageText_Tips[i].onmouseover = function(event) {
				if (!activeInput) {
					var target = (window.event) ? window.event.srcElement : event.target;
					while ((!target.className || !(/^PageText_L[\d]+n$/).test(target.className)) && target.parentNode != target)
						target = target.parentNode;
					var Parent = target, Child = target,x,y;
					var RightSide = false;
					while (Child.firstChild) {
						if ((/^PageText_L[\d]+n/).test(Child.firstChild.className)) {
							RightSide = true;
							break;
						}
						else Child = Child.firstChild;						
					}

					if (RightSide)
						x = 2 + Parent.offsetLeft + Parent.offsetWidth;
					else
						x = -6 + Parent.offsetLeft;
					y = -9 + Parent.offsetTop;
					while (Parent = Parent.offsetParent) {
						x += Parent.offsetLeft;
						y += Parent.offsetTop;
					}

					toolTipElement.style.display='inline';
					toolTipElement.style.top = y + 'px';
					toolTipElement.style.left = x + 'px';
					if (Quick_Edit_Image_Uploader.Active_Image)
						Quick_Edit_Image_Uploader.Close_Hover_Menu();
					Wrap_Element_With_Border(target);
					toolTipElement.style.display = 'block';
					toolTipElement.className = target.className;
					toolTipLabel.title = 'Article ID ' + target.className.substring(target.className.lastIndexOf('_') + 2, target.className.length - 1)
				}
			}
		}
	}
	var PageText_Tips = document.getElementsByTagName('div');
	for (var i in PageText_Tips) {
		if (PageText_Tips[i].getAttribute && (/^div_articleid_[\d]+$/).test(PageText_Tips[i].getAttribute('id'))) {
			if (vTrim(PageText_Tips[i].innerHTML).length == 0) {
				var articleToolTipElement = document.createElement('a');
				articleToolTipElement.className = 'div_articleid_' + PageText_Tips[i].getAttribute('id').substring(PageText_Tips[i].getAttribute('id').lastIndexOf('_')+1,PageText_Tips[i].getAttribute('id').length);
				articleToolTipElement.style.position = 'absolute';
				articleToolTipElement.style.marginLeft = '-6px';
				articleToolTipElement.style.marginTop = '-9px';
				articleToolTipElement.style.zIndex = 9001;

				articleToolTipElement.style.textDecoration = "underline";
				articleToolTipElement.style.fontWeight = "bold";
				articleToolTipElement.style.border = "0px";
				articleToolTipElement.style.color = "#336699";
				articleToolTipElement.style.backgroundColor = "#ffffff";
				//var articleToolTipImage = new Image();
				//articleToolTipImage.src = Config_AdminImagesFolder + 'btn_admin_edit.gif';
				//articleToolTipImage.style.borderStyle = 'none';

				var articleToolTipLabel = document.createElement('label');
				var text = document.createTextNode('Edit');
				articleToolTipLabel.setAttribute('id', 'articleToolTipLabel');
				articleToolTipLabel.style.cursor = "pointer";
				articleToolTipLabel.title = 'Article ID ' + PageText_Tips[i].getAttribute('id').substring(PageText_Tips[i].getAttribute('id').lastIndexOf('_') + 1, PageText_Tips[i].getAttribute('id').length);
				articleToolTipLabel.appendChild(text);
				
				articleToolTipElement.appendChild(articleToolTipLabel);
				articleToolTipElement.onclick = Display_PageText_Div;
				articleToolTipElement.onmouseover = function(event) {
					if (!activeInput) {
						var target = (window.event) ? window.event.srcElement : event.target;
						while ((!target.getAttribute || !(/^div_articleid_[\d]+$/).test(target.getAttribute('id'))) && target.parentNode != target) 
							target = target.parentNode;
						if (Quick_Edit_Image_Uploader.Active_Image)
							Quick_Edit_Image_Uploader.Close_Hover_Menu();
						Wrap_Element_With_Border(target);
							articleToolTipElement.className = target.getAttribute('id');
					}
				}
				PageText_Tips[i].insertBefore(articleToolTipElement,PageText_Tips[i].firstChild);
			}
			else if (PageText_Tips[i].firstChild.className != PageText_Tips[i].getAttribute('id')) {
				PageText_Tips[i].onmouseover = function(event) {
					if (!activeInput) {
						var target = (window.event) ? window.event.srcElement : event.target;
						while ((!target.getAttribute || !(/^div_articleid_[\d]+$/).test(target.getAttribute('id'))) && target.parentNode != target)
							target = target.parentNode;
						var Parent = target, Child = target,x,y;
						x = -6 + Parent.offsetLeft;
						y = -9 + Parent.offsetTop;
						while (Parent = Parent.offsetParent) {
							x += Parent.offsetLeft;
							y += Parent.offsetTop;
						}
						
						toolTipElement.style.display='inline';
						toolTipElement.style.top = y + 'px';
						toolTipElement.style.left = x + 'px';
						toolTipElement.style.display = 'block';
						if (Quick_Edit_Image_Uploader.Active_Image)
							Quick_Edit_Image_Uploader.Close_Hover_Menu();
						Wrap_Element_With_Border(target);
							toolTipElement.className = target.getAttribute('id');
					}
				}
			}
		}		
	}
}
var pageTextValue = null;
function getTextValue(input_value, id, type) {
	if (input_value===false) {
		sendAjax('GET','/admin/PageText.asp','QuickEdit=Y&id=' + id + '&type=' + type, getTextValue, throwAjaxError, false);
	}
	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.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() {
	//  12/23/2009 Pavel Shkleinik VSIX-1031 Repeated calls on missing product prices
	if(activeInput.value == "")
		activeInput.value = "<img src='/a/i/blank.gif' width='12' height='12' name='placeholder'/>";

	sendAjax('POST','/admin/PageText.asp?QuickEdit=Y',
	'NOSAVE___Form_Submission_Token=' + Form_Submission_Token + '&'
	+ activeInput.name + '=' + encodeURIComponent(activeInput.value),alertSubmitted,throwAjaxError,false);
	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);
}