/*Copyright 2005 Speartek, Inc.
All rights reserved.*/
var MODAL = null;
window.onfocus = RaiseModal;
document.onclick = RaiseModal;
oD = window.document;
var ie = false;
var ie4 = false;
var ie5 = false;
var ie6 = false;
var ns = false;
var ns4 = false;
var ns6 = false;
var version = navigator.appVersion;
ie = (navigator.appName == 'Microsoft Internet Explorer')?true:false;
ns = (navigator.appName == 'Netscape')?true:false;
version = (ie)?version.substr(navigator.appVersion.indexOf('MSIE')+5,1):version = version.charAt(0)
if(ie){
	ie4 = (version == 4)?true:false;
	ie5 = (version == 5)?true:false;
	ie6 = (version == 6)?true:false;
}else if(ns){
	ns4 = (version == 4)?true:false;
	ns5 = (version == 5)?true:false;
}
function OpenHelp(fileName, langTypeID, width, height)
{
	//Set default parameters for optional dimensions, if not defined
	if (width == undefined){
		width = 640;
	}
	if (height == undefined){
		height = 480;
	}

	var strLang = '';
	langTypeID == ''?0:parseInt(langTypeID);
	for(var i = 0; i < LANGUAGE_TYPES.length; i++)
		if(langTypeID == LANGUAGE_TYPES[i][1]) strLang = LANGUAGE_TYPES[i][0] + '/';
	ModalWin('Help/' + strLang + fileName, '', 255, 255, width, height, true, true);
}

function CountChar(StringToCheck, sType)
{
//---------------------This function count and Check if a String has SPECIAL, Numercial & CAPITAL characters.

var iChars;
var num;
num=0;

if (sType=="Special"){iChars = "!@#$%^&*()+=-[]\\\';,./{}|\:<>?";}
if (sType=="Numerical"){iChars = "0123456789";}
if (sType=="Capital"){iChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";}

  for (var i = 0; i < StringToCheck.length; i++)
   {
  	if (iChars.indexOf(StringToCheck.charAt(i)) != -1)
	{
	num=num+1;
  	}
  }
  	return num;
  }
function PopUpImage(inImg){
	var NewImage = new Image();
	var s,width,height,top,left,initializer,NewImageWinWidth,NewImageWinHeight
	var winW = window.screen.width;
	var winH = window.screen.height;	
	var re = / /gi;
	var wSpacer = 335;
	var hSpacer = 235;
	var redoWinW = 20;
	var redoWinH = 150;
	NewImage.src = inImg.replace(re,'%20');
	initializer = NewImage.src;
	NewWinWidth = NewImage.width + wSpacer;
	NewWinHeight = NewImage.height + hSpacer;
	if (winW <= NewWinWidth)
		width = winW - redoWinW;
	else
		width = NewWinWidth;
	if (winH <= NewWinHeight)
		height = winH - redoWinH;
	else
		height = NewWinHeight;
	top = winH/2 - (height/2);
	left = winW/2 - (width/2);
	var myWin = openWin(NewImage.src, 'LargeImage', top, left, width, height, false, false, false, true, true)
	myWin.focus();
}
function CenterWin(inWinW,inWinH){
	var sWidth = window.screen.width;
	var sHeight = window.screen.height;
	var sMiddleW = sWidth/2;
	var sMiddleH = sHeight/2;		
	var inWinMiddleW = inWinW/2;
	var inWinMiddleH = inWinH/2;
	var x = sMiddleW - inWinMiddleW;
	var y = sMiddleH - inWinMiddleH;
	window.resizeTo(inWinW,inWinH)
	window.moveTo(x,y)
}
function TrimJS(insFV){					
	var inFieldLength = insFV.length;					
	var i,startI,endI;
	if (inFieldLength > 0){					
		for(i=0; i < inFieldLength; i++){
			if(insFV.charAt(i) != ' '){								
				startI = i;
				i = inFieldLength;
			} 									
		}
		for(i=inFieldLength-1; i >= 0; i--){
			if(insFV.charAt(i) != ' '){								
				endI = i+1;
				i = 0;
			}
		}
		return insFV.substring(startI,endI)
	}
	else {return '';}
}
function GetTag(tag){
	if(((typeof tag) != 'string') && ((typeof tag) != 'number'))
		return tag;
	else if(oD.getElementById(tag) != null)
		return oD.getElementById(tag);
	return null;
}
function GetTags(tagName){
	if(((typeof tagName) != 'string') && ((typeof tagName) != 'number'))
		return tag;
	else if(oD.getElementsByName(tagName) != null)
		return oD.getElementsByName(tagName);
	return null;
}
function GetTagsByName(tagName){
	if(((typeof tagName) != 'string') && ((typeof tagName) != 'number'))
		return tagName;
	else if(oD.getElementsByTagName(tagName) != null)
		return oD.getElementsByTagName(tagName);
	return null;
}
function FormAction(sFN, Action){try{oD[sFN].action = Action;}catch(er){}}
function SetFocus(tag){try{GetTag(tag).focus();}catch(er){}}
function GetVal(sFN,sFldN){try{return oD[sFN][sFldN].value;}catch(er){return '';}}
function SetVal(sFN,sFldN,sFV){try{oD[sFN][sFldN].value = sFV;}catch(er){}}
function FormVal(sFN, sFldN, sFV){
	try{
		if(arguments.length==3){oD[sFN][sFldN].value = sFV;}
		else{return oD[sFN][sFldN].value;}
	}
	catch(er){}
}
function OpenerFormVal(sFN, sFldN, sFV){
	try{
		if(arguments.length==3){
			if(window.opener.document[sFN][sFldN]){
				if (window.opener.document[sFN][sFldN].value.length > 0){
					if (confirm('Press \'OK\' to replace current text value, or \n\n press \'Cancel\' to add to the current text value.')){
						window.opener.document[sFN][sFldN].value = sFV;
					}else{window.opener.document[sFN][sFldN].value += '\n' + sFV;}
				}else{window.opener.document[sFN][sFldN].value = sFV;}
			}
		}else{
			return window.opener.document[sFN][sFldN].value;
		}
	}
	catch(er){}
}
function SelectRadioButton(sFN,Status,sFldN,RadioNumber){oD[sFN][sFldN][RadioNumber].checked = Status?true:false;}
function SelectRadioByName(sFN,sFldN, Value){
	for(var i = 0; i < oD[sFN][sFldN].length; i++)
		if(oD[sFN][sFldN][i].value == Value) oD[sFN][sFldN][i].checked = true;
}
function GetSelectedIndexRadio(sFN, sFldN){
	try{
		for(var i = 0; i < oD[sFN][sFldN].length; i++)
			if(oD[sFN][sFldN][i].checked) return i;
		return -1;
	}
	catch(e){return -1;}
}
function GetSelectedRadioValue(sFN, sFldN){
	var objFormField = oD[sFN].elements[sFldN]
	var strValue = 0;
	intControlLength = objFormField.length
	for (i=0;i<intControlLength;i++)
		if(objFormField[i].checked) strValue = objFormField[i].value;
	return strValue;
}
function getRadialValue(sFN, strsFldN){
	var objFormField = oD[sFN].elements[strsFldN]
	var strValue = 0;
	intControlLength = objFormField.length
	for (i=0;i<intControlLength;i++)
		if(objFormField[i].checked) strValue = objFormField[i].value;
	return strValue;
}
function getSelectedIndex(sFN,sFldN){try{return oD[sFN][sFldN].selectedIndex;}catch(er){}}
function GetSelectedVal(sFN, sFldN){try{return oD[sFN][sFldN].options[getSelectedIndex(sFN, sFldN)].value ;}catch(e){}}
function SelectRadio(tag){
	var list  = oD[tag.form.name][tag.name];
	if(parseInt(list.length).toString() == 'NaN')
		tag.checked = true;
	else{
		for(var i = 0; i < list.length; i++)
			list[i].checked = (list[i].value == tag.value)?true:false;
	}
}
function IsChecked(sFN,sFldN){try{return oD[sFN][sFldN].checked}catch(er){return false;}}
function Check(sFN, sFldN){try{oD[sFN][sFldN].checked = true;}catch(er){}}
function UnCheck(sFN, sFldN){try{oD[sFN][sFldN].checked = false;}catch(er){}}
function SetCheck(sFN, sFldN, Checked){try{oD[sFN][sFldN].checked = Checked;}catch(er){}}
function IsRadioChecked(sFN,sFldN,RadioNumber){try{return oD[sFN][sFldN][RadioNumber].checked;}catch(er){return false;}}
function MakeSelected(sFN,sFldN,InValue){
	try
	{
		for(var i = 0; i < oD[sFN][sFldN].options.length; i++)
			if(oD[sFN][sFldN].options[i].value == InValue) oD[sFN][sFldN].selectedIndex = i;
	}
	catch(er){}
}
function openWin(href, name, top, left, width, height, Status, Toolbar, Menubar, Scrollbars, Resizable){
	var s = 'top=' + top + ',left=' + left + ',width=' + width + ',height=' + height + ',';
	if(Status)
		s += 'status=yes,';
	else
		s += 'status=no,';
	if(Toolbar)
		s += 'toolbar=yes,';
	else
		s += 'toolbar=no,';
	if(Menubar)
		s += 'menubar=yes,';
	else
		s += 'menubar=no,';
	if(Scrollbars)
		s += 'scrollbars=yes,';
	else
		s += 'scrollbars=no,';
	if(Resizable)
		s += 'resizable=yes';
	else
		s += 'resizable=no';
	return window.open( href, name, s);
}
function OpenWin(href, name, top, left, width, height, Status, Toolbar, Menubar, Scrollbars, Resizable){
	var s = 'top='+top+',left='+left+',width='+width+',height='+height + ',';
	if(Status)
		s += 'status=yes,';
	else
		s += 'status=no,';
	if(Toolbar)
		s += 'toolbar=yes,';
	else
		s += 'toolbar=no,';
	if(Menubar)
		s += 'menubar=yes,';
	else
		s += 'menubar=no,';
	if(Scrollbars)
		s += 'scrollbars=yes,';
	else
		s += 'scrollbars=no,';
	if(Resizable)
		s += 'resizable=yes';
	else
		s += 'resizable=no';
	window.open( href, name, s);
}
function ModalWin(page, name, top, left, width, height, scrollBars, Resizable, Toolbar, StatusBar, MenuBar){
	try{
		var strParam = ',height=' + height + ',top=' + top + ',left=' + left + ',';
		if(Toolbar)
			strParam += 'toolbar=yes,';
		else
			strParam += 'toolbar=no,';
		if(StatusBar)
			strParam += 'status=yes,';
		else
			strParam += 'status=no,';
		if(Resizable)
			strParam += 'resizable=yes,';
		else
			strParam += 'resizable=no,';
		if(scrollBars)
			strParam += 'scrollbars=yes,';
		else
			strParam += 'scrollbars=no,';
		if(MenuBar)
			strParam += 'menubar=yes';
		else
			strParam += 'menubar=no';
		MODAL = window.open(page, name, 'width=' + width + strParam);
		MODAL.onblur = RaiseModal;
	}
	catch(er){}
}
function ModalWinWithMenuBar(page, name, top, left, width, height, scrollBars, Resizable, Toolbar, StatusBar)
{
	try
	{
		
		var strParam = ',height=' + height + ',top=' + top + ',left=' + left + ',menubar=yes,';
		if(Toolbar)
			strParam += 'toolbar=yes,';
		else
			strParam += 'toolbar=no,';
		if(StatusBar)
			strParam += 'status=yes,';
		else
			strParam += 'status=no,';
		if(Resizable)
			strParam += 'resizable=yes,';
		else
			strParam += 'resizable=no,';
		if(scrollBars)
			strParam += 'scrollbars=yes';
		else
			strParam += 'scrollbars=no';
		MODAL = window.open(page, name, 'width=' + width + strParam);
		MODAL.onblur = RaiseModal;
	}
	catch(er){}
}
function RaiseModal(){try{MODAL.focus();}catch(er){}}
function FocusOpener(){window.opener.focus();}
function RefreshOpener(){FocusOpener();window.opener.location.reload();}
function Close(){window.close();}
function GoToSite(URL, FramName){
	try{
		if(arguments[1])
			top.window[FramName].location.href = URL;
		else
			window.document.location.href = URL;
		return URL;
	}
	catch(er){}
}
function ChangeClass(tag, NewClass){try{GetTag(tag).className = NewClass;}catch(er){}}
function ShowDivPos(idList){
	try{
		for(var i = 0; i < arguments.length; i++)
			GetTag(arguments[i]).style.position = 'absolute';
	}
	catch(er){}
}
function HideDivPos(idList){
	try{
		for(var i = 0; i < arguments.length; i++)
			GetTag(arguments[i]).style.position = '';
	}
	catch(er){}
}
function ShowDiv(idList){
	try{
		for(var i = 0; i < arguments.length; i++)
			GetTag(arguments[i]).style.visibility = 'visible';
	}
	catch(er){}
}
function HideDiv(idList){
	try{
		for(var i = 0; i < arguments.length; i++)
			GetTag(arguments[i]).style.visibility = 'hidden';
	}
	catch(er){}
}
function Display(tag)
{
	for(var i = 0; i < arguments.length; i++)
	{
		var tmp = GetTag(arguments[i]);
		
		if(tmp != null)
		    tmp.style.display = 'block';
    }
}
function NoDisplay(tag)
{
	for(var i = 0; i < arguments.length; i++)
	{
		var tmp = GetTag(arguments[i]);
		
		if(tmp != null)
		    tmp.style.display = 'none';
    }
}function SetInnerHTML(tag, value){
	try{GetTag(tag).innerHTML = value;}
	catch(er){}
}
function textCounter(sFldN,sFN,maxlimit){
	if(oD[sFN] == null) return;
	if(oD[sFN][sFldN].value.length > maxlimit)
		oD[sFN][sFldN].value = oD[sFN][sFldN].value.substring(0, maxlimit);
}
function SubmitForm(sFN){try{oD[sFN].submit();}catch(er){}}
function FormatPhoneNumber (sFN, sFldN, CountryCodeField, AreaCodeField, PhoneNumberField, Required, DisplayName)
{
	re = / |-|_|\.|\\|\(|\)|\+/g;
	str = GetVal(sFN, sFldN);
	newstr = str.replace(re, '');
	Required = Required.toString().toLowerCase();
	
	if(parseInt(newstr,10) != newstr){
		if(newstr.length==0){
			if(Required == "true"){
				alert (DisplayName + ' number must be provided');
				return false;
			}else{
				SetVal(sFN, CountryCodeField, '');
				SetVal(sFN, AreaCodeField, '');
				SetVal(sFN, PhoneNumberField, '');
				return true;
			}
		}else{
			alert (DisplayName + ' number contains invalid characters');
			return false;
		}
	}else{
		if(newstr.length >= 10 && newstr.length <14 ){
			if(newstr.length == 10){
				SetVal(sFN, sFldN, '+1 (' + newstr.substr(0,3) + ') ' + newstr.substr(3,3) + '-' + newstr.substr(6,4));
				SetVal(sFN, CountryCodeField, '1');
				SetVal(sFN, AreaCodeField, newstr.substr(0,3));
				SetVal(sFN, PhoneNumberField, newstr.substr(3,7));
			}else{
				slength = newstr.length;
				SetVal(sFN, sFldN, '+' + newstr.substr(0,slength-10) + ' (' + newstr.substr(slength-10,3) + ') ' + newstr.substr(slength-7,3) + '-' + newstr.substr(slength-4,4));
				SetVal(sFN, CountryCodeField, newstr.substr(0,slength-10));
				SetVal(sFN, AreaCodeField, newstr.substr(slength-10,3));
				SetVal(sFN, PhoneNumberField, newstr.substr(slength-7,7));
			}
			return true;
		}else{
			if(newstr.length < 10)
				alert (DisplayName +  ' number must be at least 10 digits');
			else
				alert (DisplayName + ' number is too long');
			return false;
		}
	}
}
function IsFormEmpty(sFN,StringOfsFldNs){
	var ArrayOfsFldNs=StringOfsFldNs.split('|');
	var ErrorString = '';
	for(var i = 0; i < ArrayOfsFldNs.length; i++)
		if(oD[sFN][ArrayOfsFldNs[i]].value.length < 1) ErrorString = ErrorString + ArrayOfsFldNs[i] + '\n     ';
	if(ErrorString.length > 0)
	{
		alert('Please fill out the following form fields.\n     ' + ErrorString);
		return false;
	}else
		return true;
}
function IsFormEmptyDisplayName(sFN,StringOfsFldNs,StringofDisplayNames){
	var ArrayOfsFldNs=StringOfsFldNs.split('|');
	var ArrayOfDisplayNames=StringofDisplayNames.split('|');
	var ErrorString = '';
	for (var i=0; i < ArrayOfsFldNs.length; i++)
		if(oD[sFN][ArrayOfsFldNs[i]].value.length < 1) ErrorString = ErrorString + ArrayOfDisplayNames[i] + '\n\t';
	if(ErrorString.length > 0){
		alert('Please fill out the following form fields:\n                ' + ErrorString);
		return false;
	}else
		return true;
}
function IsEmail(sFN,sFldN){
  var regex = /^[a-zA-Z0-9._-]+@([a-zA-Z0-9.-]+\.)+[a-zA-Z0-9.-]{2,4}$/;
  return regex.test(oD[sFN][sFldN].value);
}
function IsMatching(sFN,sFldNOne,sFldNTwo){
	if(oD[sFN][sFldNOne].value == oD[sFN][sFldNTwo].value)
		return true;
	else{
		alert('Passwords do not match');
		return false;
	}
}
function CheckLength(sFN,sFldN,DisplayName,RequiredLengthOne,RequiredLengthTwo,Type){
	var StringLength = oD[sFN][sFldN].value.length;
	var Message = DisplayName + ' improper length'
	try{
		switch(Type.toUpperCase()){
			case 'EQUAL':
				if(StringLength != RequiredLengthOne){throw DisplayName;}
				break;
			case 'LESSTHAN':
				if(StringLength > RequiredLengthOne){throw DisplayName;}
				break;
				case 'LESSEQUALTHAN':
				if(StringLength >= RequiredLengthOne){throw DisplayName;}
				break;
			case 'GREATEREQUALTHAN':
				if(StringLength <= RequiredLengthOne){throw DisplayName;}
				break;
			case 'GREATERTHAN':
				if(StringLength < RequiredLengthOne){throw DisplayName;}
				break;
			case 'BETWEEN':
				if((StringLength < RequiredLengthOne) || (StringLength > RequiredLengthTwo)){throw DisplayName;}
				break;
			case 'OREQUAL':
				if((StringLength == RequiredLengthOne) || (StringLength == RequiredLengthTwo)){throw DisplayName;}
				break;
			default:
			break;
		}
	}
	catch(er){return false;}
	return true;
}
function IsNumeric(sFN,sFldN,DisplayName){
	var StringToCheck = oD[sFN][sFldN].value;
	var nums = new Array(0,1,2,3,4,5,6,7,8,9);
	var Message = DisplayName + ' can only contain numbers.'
    var check;
    AddToString = '';
	for(var i = 0; i < StringToCheck.length; i++){
		check = '';
		for(var j=0 ; j < nums.length ; j++)
			if(StringToCheck.charAt(i) == String(nums[j])) check = 't';
		AddToString = AddToString + check;
	}
	if(AddToString.length >= StringToCheck.length && StringToCheck.length > 0) return true;
	else {alert(Message); return false;}
}
function InString(StringToCheck,StringOfCharacters){
	var ArrayOfCharacters=StringOfCharacters.split('|');
    var InThere = false;
	for (var i=0 ; i < StringToCheck.length ; i++){
		for (var j=0 ; j < ArrayOfCharacters.length ; j++)
			if(StringToCheck.charAt(i) == ArrayOfCharacters[j]) InThere = true
	}
	return InThere;
}
function IsDropDownChanged(sFN,sFldN,DisplayName){
	var Message = 'Please choose a ' + DisplayName;
	if(getSelectedIndex(sFN,sFldN) > 0)
		return true;
	else{
		alert(Message);
		return false;
	}
}
function IsDropDownSelected(sFN,sFldN,DisplayName){
	var Message = 'Please choose a ' + DisplayName;
	if(GetVal(sFN,sFldN) != 'SelectOne')
		return true;
	else{
		alert(Message);
		return false;
	}
}
function MultiSelectOptions(inStrForm,inStrElement,inIntSlctValue){
	var i;
	var SelectLen = oD[inStrForm][inStrElement].length;
	for (i=0 ; i<SelectLen ; i++)
		if(oD[inStrForm][inStrElement][i].value == inIntSlctValue)
			oD[inStrForm][inStrElement][i].selected = true;
}
function RemoveAllChildren(tag){
	try{
		for(var i = (tag.childNodes.length - 1); i >= 0; i--){
			RemoveAllChildren(tag.childNodes[i]);
			tag.childNodes[i].removeNode();
		}
	}
	catch(er){}
}
function AddField(table,x,y,field,caption,colspan){
	var oTab = oD.getElementById(table) ;
	var oRow, oCell ;
	var cellNum = 0 ;
	if(!colspan){colspan=1} ;
	oCell = oD.getElementById(table+x+'td'+y) ;
	if(!oCell){
		oRow = oTab.insertRow(oTab.rows.length) ;
		if(y!=0){
			for(i=1; i<=4; i++){
				if((i<=y)||(i>=y+colspan)){
					oCell = oRow.insertCell(cellNum) ;
					oCell.id = table+x+'td'+i+'label' ;
					oCell.className = 'PrimaryBoldText' ;
					oCell.noWrap = true ;
					oCell.align = 'right' ;
					oCell.vAlign = 'top' ;
					if((caption)&&(i==y)) oCell.innerHTML = caption;
					cellNum++ ;
					oCell = oRow.insertCell(cellNum) ;
					oCell.id = table+x+'td'+i ;
					oCell.className = 'PrimaryBoldText' ;
					oCell.noWrap = true ;
					oCell.vAlign = 'top' ;
					if(i==y){
						oCell.innerHTML = field ;
						oCell.colSpan = (colspan*2)-1 ;
					}
					cellNum++ ;
				}
			}
		}else{
			oCell = oRow.insertCell(-1);
			oCell.width = '100%' ;
			oCell.colSpan = 8 ;
			oCell.id = table+x+'td'+y ;
			oCell.className = 'PrimaryBoldText' ;
			oCell.noWrap = true ;
			oCell.innerHTML = field ;
		}
	}else{
   		if(caption){
			oCell.colSpan = (colspan*2)-1 ;
			oCell.innerHTML = field ;
			oCell = oD.getElementById(table+x+'td'+y+'label') ;
			oCell.innerHTML = caption ;
		}else{
			oCell.colSpan = (colspan*2) ;
			oCell.innerHTML = field ;
		}
	}
}
function checkDate(strDate){
    if(strDate.length>0){
		var dateregex=/^[ ]*[0]?(\d{1,2})\/(\d{1,2})\/(\d{4,})[ ]*$/;
        var match=strDate.match(dateregex);
        if (match){
			var tmpdate=new Date(match[3],parseInt(match[1],10)-1,match[2]);
            if (tmpdate.getDate()==parseInt(match[2],10) && tmpdate.getFullYear()==parseInt(match[3],10) && (tmpdate.getMonth()+1)==parseInt(match[1],10)) return true; 
		}
        return false;
    }
    else
		return true;
}
if(typeof HTMLElement!="undefined" && !HTMLElement.prototype.insertAdjacentElement){
	HTMLElement.prototype.insertAdjacentElement = function(where,parsedNode)
	{
		switch (where)
		{
			case 'beforeBegin':
				this.parentNode.insertBefore(parsedNode,this)
				break;
			case 'afterBegin':
				this.insertBefore(parsedNode,this.firstChild);
				break;
			case 'beforeEnd':
				this.appendChild(parsedNode);
				break;
			case 'afterEnd':
				if (this.nextSibling) 
					this.parentNode.insertBefore(parsedNode,this.nextSibling);
				else this.parentNode.appendChild(parsedNode);
				break;
		}
	}

	HTMLElement.prototype.insertAdjacentHTML = function(where,htmlStr)
	{
		var r = this.ownerDocument.createRange();
		r.setStartBefore(this);
		var parsedHTML = r.createContextualFragment(htmlStr);
		this.insertAdjacentElement(where,parsedHTML)
	}


	HTMLElement.prototype.insertAdjacentText = function(where,txtStr)
	{
		var parsedText = oD.createTextNode(txtStr)
		this.insertAdjacentElement(where,parsedText)
	}
}
function popImage(imageURL,imageTitle){
	if(imageTitle == null) imageTitle = '';
	PositionX = 100;
	PositionY = 100;
	defaultWidth  = 500;
	defaultHeight = 500;
	var AutoClose = false;
	var optIE='toolbar=no,status=no,statusbar=no,menubar=no,scrollbars=no,width=150,height=100,left='+PositionX+',top='+PositionY;
	var imgWin = null;
	if (imgWin != null) imgWin.close();
	imgWin=window.open('about:blank','',optIE);
	with (imgWin.document)
	{
		writeln('<html><head><title>Loading...</title><link rel="stylesheet" type="text/css" href="/DSN/wwwmutualsalescom/Style/wwwmutualsalescom.css">');writeln('<sc'+'ript>');
		writeln('function reSizeToImage(){');
		writeln('window.resizeTo(100,100);');
		writeln('width=document.images[0].width + 25;');
		writeln('height=document.images[0].height + 80;');
		if(ns) { writeln('height=document.images[0].height + 120;'); }
		if(!!(window['ActiveXObject'] && window['XMLHttpRequest'])) {
			 writeln('height=document.images[0].height + 110;'); 
		}
		writeln('window.resizeTo(width,height);');
		writeln('}');
		writeln('function doTitle(){document.title="'+imageTitle.replace(/\"/gi, '\\"')+'";}');writeln('</sc'+'ript>');
		writeln('</head><body style="margin: 0px;" scroll="no" onload="doTitle();self.focus()"><link rel="stylesheet" type="text/css" href="/DSN/wwwsicottagescom/Style/wwwsicottagescom.css">');
		writeln('<table width=100% height=100% border=0 cellpadding=0 cellspacing=0><tr valign="middle"><td colspan=2 align="center"><form name="MyForm">');
		writeln('<img onLoad="reSizeToImage();" name="George" src="'+imageURL+'" border=0></td></tr><tr valign="middle"><td style="padding-left:5px;" align="left"></td><td valign="middle" style="padding-right: 5px;" align="right"><a class="V2Link"  style="color:#4C3907;" href="javascript: window.close();">close window</a></div></form></td></tr></table></body></html>');
		close();
	}
}
String.prototype.lTrim = function () {return this.replace(/^\s*/, "");}
String.prototype.rTrim = function () {return this.replace(/\s*$/, "");}
String.prototype.trim = function () {return this.rTrim().lTrim();}
function st_eml(oLink, sSubject)
{
    oLink.href = 'mailto:' + oLink.rel + '@' + oLink.rev + '?subject=' + sSubject;
}
function handleEnterSubmit(e, sForm, sButton, sHTML)
{
    if(!e) e = window.event;
	if(e.keyCode == 13)
	{
	    if(ie)
	    {
	        document[sForm].innerHTML += sHTML;
	        document[sForm].submit();
        }
        else
        {
            document[sForm][sButton].click();
        }
        
    }
	return true;
}

function doActiveContent(sDivId, sObjectText)
{
    GetTag(sDivId).innerHTML = sObjectText;
}

function aniToggler(oDef)
{
    var _self = this; //handles scope for contructor vars in function, ie this in function !=  this in constructor
    this.containerDiv = GetTag(oDef.containerDiv);
    this.toggleTag = GetTag(oDef.toggleTag);
    this.expandedDiv = GetTag(oDef.expandedDiv);
    this.isExpanded = false;
    this.oStyle = this.containerDiv.style
    this.iToggle = 0;
    this.pid = 0
    this.sObjName = oDef.sObjName;
    this.expandDisplay = (typeof(oDef.expandDisplay) == 'undefined')?'+':oDef.expandDisplay;
    this.compactDisplay = (typeof(oDef.compactDisplay) == 'undefined')?'-':oDef.compactDisplay;
    this.expandIt = function()
    {
	    if(_self.isExpanded)
	    {
		    _self.doTransition('-');
		    _self.isExpanded = false;
		    _self.toggleTag.innerHTML = _self.expandDisplay;
	    }
	    else
	    {
		    _self.doTransition('+');
		    _self.isExpanded = true;
		    _self.toggleTag.innerHTML = _self.compactDisplay;		
	    }
    };
    _self.doTransition = function(sOpp)
    {
	    var size = eval('_self.iToggle ' + sOpp + '= 10;');
	    if(parseInt(size) >= 1 && parseInt(size) <= _self.expandedDiv.scrollHeight)
	    {
		    _self.expandedDiv.style.height = size + 'px';
		    _self.pid = setTimeout(_self.sObjName + '.doTransition(\'' + sOpp + '\');', 5);
	    }
	    else
	    {
		    if(sOpp == '-')
			    _self.expandedDiv.style.height = '1px';
		    else
			    _self.expandedDiv.style.height = _self.expandedDiv.scrollHeight+ 'px';
		    
		    clearTimeout(_self.pid);
	    }
	    
    };
}
function objToXML(obj, nodeName, IsRoot)
{
    if(obj['_deleted'] && typeof(obj.id) != 'undefined' && obj.id == 0) return '';

    var aHTML = new Array();    
    if(!IsRoot)
    {
        switch(true)
        {
            case obj['_deleted'] || (typeof(obj.action) != 'undefined' && obj.action.toLowerCase() == 'delete'):
                aHTML.push('<' + nodeName + ' action="DELETE">');
                break;
            case parseInt(obj.id) == 0:
                aHTML.push('<' + nodeName + ' action="INSERT">');
                break;
            case obj['_touched'] || (typeof(obj.action) != 'undefined' && obj.action.toLowerCase() == 'update'):
                aHTML.push('<' + nodeName + ' action="UPDATE">');
                break;
            default:
                aHTML.push('<' + nodeName + ' action="NONE">');
                break;
        }
    }
    //REFLECTION BABY!!
	for(var x in obj)
	{
	    if(!(obj[x] instanceof Function))
		{
		    switch(true)
			{
			    case (obj[x] instanceof Array):
				    if(obj[x].length > 0)
					{
					    aHTML.push('<' + x + 's>');
						for(var i=0; i<obj[x].length; i++)
						    aHTML.push(objToXML(obj[x][i], x, false));
						aHTML.push('</' + x + 's>');
					}
					else
					{
					    aHTML.push('<' + x + 's />');
					}
					break;
				case (obj[x] instanceof Object) && x.toLowerCase() != 'parent':
				    aHTML.push(objToXML(obj[x], x, false));
					break
				default:
				    switch(true)
					{
					    case String(obj[x]).length > 0 && !IsRoot:
						    aHTML.push('<' + x + '>' + HTMLEncode(unescape(obj[x])) + '</' + x + '>')
							break;
						case !IsRoot:
						    aHTML.push('<' + x + ' />');
							break;
				}
			}
		}
	}
	if(!IsRoot)
	    aHTML.push('</' + nodeName + '>');
	return aHTML.join('');
}
function HTMLEncode(s)
{
	var t = s.toString();
	var h = new Array("&","\"","<",">");
	var e = new Array("&amp;","&quot;","&lt;","&gt;")
	for(var i = 0; i < h.length; i ++)
	{
		t = t.replace(eval('/' + h[i] + '/gi'), e[i]);
	}
	return t;
}

function GetCaller(fnSource)
{
    var name = '';
    fnSource = (fnSource==null)? GetCaller.caller : fnSource;    
    
    if(fnSource.caller != null)
        name = fnSource.caller.name;
    
    return name;
}

function GetCallStack()
{
    var ary = new Array();
    var tmp = GetCaller(GetCallStack);
    
    while(tmp != '') {
        ary.push(tmp);
        
        if(tmp.substr(0,2).toLowerCase() != 'on')
            tmp = GetCaller(eval(tmp));
        else
            tmp = '';
    }
        
    ary.reverse();
    
    return ary.join(' > ');
}

function GenerateTabsStructure(tagName, nTabs, ARY_DIVS)
{	
	var i;
	var mainDIV;
	var UL;
	var secDIV;

	var LI;
	var A;
	var H2;
	var P;
	
	document.getElementById(tagName).innerHTML = '';	
	UL = document.createElement('UL');
	UL.setAttribute('class','domtabs');	
	//tabs declarations
	for (i=0; i<nTabs; i++)
	{
		LI = document.createElement('li');		
		A = document.createElement('A');
		A.setAttribute('href', '#ref_'+i);
		A.innerHTML = 'Piece ' + i;
		A.onClick = function(){PreviewPage();}
		LI.appendChild(A);
		UL.appendChild(LI);
	}

	document.getElementById(tagName).appendChild(UL);	

	for (i=0; i<nTabs; i++)
	{
		secDIV = document.createElement('div');		
		//secDIV.innerHTML = '<h2><a name="what" id="what">What is DOMtab?</a></h2><p>DOMtab is a JavaScript that turns a list of links connected to content';		
		H2 = document.createElement('H2');

		A = document.createElement('A');
		A.setAttribute('id', 'ref_'+i);
		A.setAttribute('name', 'ref_'+i);
			
		A.innerHTML ='Block ' + i;
						
		H2.appendChild(A);		
		secDIV.appendChild(H2);
		
		P = document.createElement('P');	
		P.innerHTML = ARY_DIVS[i];		
		secDIV.appendChild(P);		
				
		document.getElementById(tagName).appendChild(secDIV);				
	}		
}

function createRequest()
{
	var request = null;

	try {
		request = new XMLHttpRequest();
	} catch(a) {
		try {
			request = new ActiveXObject("MSXMLl2.XMLHTTP");
		} catch(e) {
			try {
				request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch(e) { }
		}
	}

	return request;
}


function urlEncode(s)
{
  var inputString=s;  
  var encodedInputString=escape(inputString);
  encodedInputString=encodedInputString.replace(/\+/g, "%2B");
  encodedInputString=encodedInputString.replace(/\//g, "%2F"); 
  return encodedInputString;
}


function makeLinkSafe(sVal){ 
	sVal = sVal.replace(/\s/g, '-');
	return sVal.replace(/[^a-z0-9\-\_\|]/gi, ''); 	
}

function arrayIndexOf(aCollection, anItem){
	var index = -1;
	var found = false;
	
	while ((!found) && (index<aCollection.length)){
		index++;
		found = (aCollection[index] == anItem);		
	}
	
	return (found)?index:-1;
}


function ChrsTo(S, L, C) { // ChrsTo is a new PrfxTo
	for (var i = String(S).length ; i < L ; i++){
 		S = C + S;
 	}
 	return S;
} 
function Sign(X){
	return X>0 ? "+" : X<0 ? "-" : " " 
}
/*function stRound(number, decimals){ 
	var strNumber, commaPos;

	if (number == null){
		return NaN;
	}
	
	strNumber = String(Math.round(Math.abs(number)*Math.pow(10, decimals)));
	if (/\D/.test(strNumber)){
		return number;
	}
	
 	strNumber = ChrsTo(strNumber, 1+decimals, "0") ; 
	commaPos = strNumber.length - decimals; 

 	return Number(Sign(number) + strNumber.substring(0, commaPos) + "." + strNumber.substring(commaPos)); 
 	
} */


function stRound(number, precision)
{
	precision = Math.abs(parseInt(precision)) || 0;
	var coefficient = Math.pow(100, precision);
	var strNumber = Math.round(number*coefficient/100)/100;	
	if (/\D/.test(strNumber)){
		strNumber = strNumber.toString().split('.')[0] + '.' + Left(strNumber.toString().split('.')[1] + '00',2);
		return strNumber;
	}
	return strNumber + '.00';
}

function Left(str, n){
	if (n <= 0)
	    return "";
	else if (n > String(str).length)
	    return str;
	else
	    return String(str).substring(0,n);
}
function Right(str, n){
    if (n <= 0)
       return "";
    else if (n > String(str).length)
       return str;
    else {
       var iLen = String(str).length;
       return String(str).substring(iLen, iLen - n);
    }
}

function findPosX(obj) {
  var curleft = 0;

  if(obj.offsetParent) {
    while(1) {
      curleft += obj.offsetLeft;
      if(!obj.offsetParent)
        break;
      obj = obj.offsetParent;
    }
  } else if(obj.x) {
    curleft += obj.x;
  }

  obj.style.position = "static";

  return curleft;
}

function findPosY(obj) {
  var curtop = 0;

  if(obj.offsetParent) {
    while(1) {
      curtop += obj.offsetTop;
      if(!obj.offsetParent)
        break;
      obj = obj.offsetParent;
    }
  } else if(obj.y) {
    curtop += obj.y;
  }

  return curtop;
}

function findPos(obj) {
  var left = findPosX(obj);
  var top = findPosY(obj);

  return [left , top];
}

function findPosition( oElement )
{
  if( typeof( oElement.offsetParent ) != 'undefined' ) {
    for( var posX = 0, posY = 0; oElement; oElement = oElement.offsetParent ) {
      posX += oElement.offsetLeft;
      posY += oElement.offsetTop;
    }
    return [ posX, posY ];
  } else {
    return [ oElement.x, oElement.y ];
  }
}

function grayOut(vis, options, extra, divName) {

  var options = options || {};
  var zindex = options.zindex || 50;
  var opacity = options.opacity || 70;
  var opaque = (opacity / 100);
  var bgcolor = options.bgcolor || '#000000';
  var dark=document.getElementById('darkenScreenObject');
  if (!dark) 
  {
    var tbody = document.getElementsByTagName("body")[0];
    var tnode = document.createElement('div');           
        tnode.style.position='absolute';                
        tnode.style.top='0px';                          
        tnode.style.left='0px';                          
        tnode.style.overflow='hidden';                  
        tnode.style.display='none';                      
        tnode.id='darkenScreenObject';                  

                     
    tbody.appendChild(tnode);                            
    dark=document.getElementById('darkenScreenObject'); 
  }
  if (vis) {
    if( document.body && ( document.body.scrollWidth || document.body.scrollHeight ) )
    {
        var pageWidth = document.body.scrollWidth+'px';
        var pageHeight = document.body.scrollHeight+'px';
    } else if( document.body.offsetWidth ) {
      var pageWidth = document.body.offsetWidth+'px';
      var pageHeight = document.body.offsetHeight+'px';
    } else {
       var pageWidth='100%';
       var pageHeight='100%';
    }
    dark.style.opacity=opaque;
    dark.style.MozOpacity=opaque;
    dark.style.filter='alpha(opacity='+opacity+')';
    dark.style.zIndex=zindex;
    dark.style.backgroundColor=bgcolor;
    dark.style.width= pageWidth;
    dark.style.height= pageHeight;
    dark.style.display='block';
	if(extra == 'Y')
		document.body.style.overflow =  'hidden';

	document.getElementById(divName).style.zIndex = zindex+10;
	document.getElementById(divName).style.border = "#000 solid 0px";
	document.getElementById(divName).style.display = "block";

  } else {
     dark.style.display='none';
  }
}
