var Gallery = function(){
	var imgsLength = arguments.length -1;
	var refName = arguments[0];
	var myObj = this;
	this.ref = refName 
	var imgsLength = arguments.length -1;
	this.imgs = new Array(imgsLength)
	for(var i=0;i<imgsLength;i++){
		this.imgs[i] = new Image();
		this.imgs[i].src = arguments[i + 1];
		this.imgs[i].label = this.imgs[i].src.substring(this.imgs[i].src.lastIndexOf("/")+1,this.imgs[i].src.lastIndexOf("."));		
		this.imgs[i].indexNum = i;
	}
	this.imgEnd = this.imgs.length - 1;
	this.imgStart = 0;
	this.imgIndex = this.imgStart;
	this.imgWinRef = null;
	this.imgPop = false;
	this.onImgPrev = function(){return;}
	this.onImgNext = function(){return;}
	this.onMakeGallery = function(){return;}
	this.onMakePrevious = function(){return;}
	this.onMakeNext = function(){return;}
	this.onMakeImgFrame = function(){return;}
	this.onLaunchWin = function(){return;}
	
	this.refImgByFile = function(strRef){
		var i, imgIndex;
		var strFound = false
		for(var i=0;i<myObj.imgs.length;i++){
			if(myObj.imgs[i].src == strRef || myObj.imgs[i].label == strRef){return myObj.imgs[i]; break;}
		}
	}
	this.addImgs = function(){
		var newImgsMax = myObj.imgs.length + arguments.length;
		var j; //to loop through arguments
		for(var i=myObj.imgs.length,j=0;i<newImgsMax;i++,j++){
			myObj.imgs[i] = new Image();
			myObj.imgs[i].src = arguments[j];
			myObj.imgs[i].label = myObj.imgs[i].src.substring(myObj.imgs[i].src.lastIndexOf("/")+1,myObj.imgs[i].src.indexOf("."));
			myObj.imgs[i].indexNum = i;
		}
		myObj.imgEnd = myObj.imgs.length - 1;
	}
	this.imgPrev = function(){
		myObj.imgIndex = (myObj.imgIndex <= myObj.imgStart) ? myObj.imgEnd : myObj.imgIndex - 1;
		document.images['g'+this.ref].src = myObj.imgs[myObj.imgIndex].src;
		this.onImgPrev();
	}
	this.imgNext = function(){
		myObj.imgIndex = (myObj.imgIndex >= myObj.imgEnd) ? myObj.imgStart : myObj.imgIndex + 1;
		document.images['g'+this.ref].src = myObj.imgs[myObj.imgIndex].src;
		this.onImgNext();
	}
	
	//obj.makeGallery()
	this.makeGallery = function(){
	}
	
	this.makePrevious = function (){ //obj.makePrevious([text],[image],[class],[id],[write tag]) ****note all parameters are optional*****
		var blur = (document.layers) ? "" : "this.blur()\;"
		if(arguments.length > 0 && arguments[0] != ""){myObj.prevTxt = arguments[0];}else{myObj.prevTxt = "Previous";}
		if(arguments.length>=2 && arguments[1]!= ""){
		var prevImage = new Image(); prevImage.src = arguments[1];	//PreLoad Image
		myObj.prevImg = "<img src=\""+prevImage.src+"\" alt=\""+myObj.prevTxt+"\" border=\"0\" >"
		}else{myObj.prevImg = ""};
		if(arguments.length > 2 && arguments[2] != ""){myObj.prevClass = "class=\""+arguments[2]+"\"";}else{myObj.prevClass = "";}
		if(arguments.length > 3 && arguments[3] != ""){myObj.prevId = "id=\""+arguments[3]+"\"";}else{myObj.prevId="";}
		if(myObj.prevImg != ""){var imgContent = myObj.prevImg}else{var imgContent = myObj.prevTxt};
		var strPrev="<a href=\"previous\" "+myObj.prevClass+" "+myObj.prevId+" onClick=\""+myObj.ref+".imgPrev()\; "+blur+" return false\;\">"+imgContent+"</a>"
		if(arguments.length >=5 && arguments[4] == false){return strPrev}else{document.write(strPrev)};
		this.onMakePrevious();
	}

	this.makeNext = function (){ //obj.makeNext([text],[image],[class],[id],[write tag]) ****note all parameters are optional*****
		var blur = (document.layers) ? "" : "this.blur()\;"
		if(arguments.length>=1 && arguments[0] != ""){myObj.nextTxt = arguments[0]}else{myObj.nextTxt="Next";};
		if(arguments.length>=2 && arguments[1]!= ""){
		var nextImage = new Image(); nextImage.src = arguments[1];	//PreLoad Image
		myObj.nextImg = "<img src=\""+nextImage.src+"\" alt=\""+myObj.nextTxt+"\" border=\"0\" >"
		}else{myObj.nextImg = ""};
		if(arguments.length>=3 && arguments[2]!= ""){myObj.nextClass = "class=\""+arguments[2]+"\""}else{myObj.nextClass=""};
		if(arguments.length>=4 && arguments[3]!= ""){myObj.nextId = "id=\""+arguments[3]+"\""}else{myObj.nextId=""};
		if(myObj.nextImg != ""){var imgContent = myObj.nextImg}else{var imgContent = myObj.nextTxt};
		var strNext="<a href=\"next\" "+myObj.nextClass+" "+myObj.nextId+" onClick=\""+myObj.ref+".imgNext()\; "+blur+" return false\;\">"+imgContent+"</a>"
		if(arguments.length >=5 && arguments[4] == false){return strNext}else{document.write(strNext)};
		this.onMakeNext();
	}

	this.makeImgFrame = function (){ //obj.makeImgFrame([popup],[write tag]) ****note all parameters are optional*****
		var blur = (document.layers) ? "" : "this.blur()\;"
		var strImgFrame ="<img src=\""+myObj.imgs[myObj.imgIndex].src+"\" name=\"g"+myObj.ref+"\" border=\"1\" \/>"
		if(arguments[0] == true){
			strImgFrame = "<a href=\"javascript:"+myObj.ref+".launchWin()\;\" onClick=\""+blur+"\">"+strImgFrame+"</a>"
		}
		myObj.imgFrame = strImgFrame;
		if(arguments.length >= 2 && arguments[1] == false){return strImgFrame}else{document.write(strImgFrame)};
		this.onMakeImgFrame();
	}

	this.launchWin = function(){
		myObj.imgWinRef = window.open("",myObj.ref+myObj.imgIndex,"width="+(myObj.imgs[myObj.imgIndex].width+50)+",height="+(myObj.imgs[myObj.imgIndex].height+50));
		var strCode = "<html><head><title></title></head><body><table align=\"center\" border=\"0\"><tr><td align=\"center\">";
		strCode += "<img src=\""+myObj.imgs[myObj.imgIndex].src+"\" border=\"\" \/>";
		strCode += "</td></tr><tr><td align=\"center\"><a href=\"javascript:this.close();\">close</a></td></tr><table></body></html>";
		myObj.imgWinRef.document.write(strCode);
		myObj.imgWinRef.focus();
		this.onLaunchWin();
	}
	if(Gallery.prototype.onConstruct){
		this.onConstruct();
	}
}

/* More Properties *************************/
Gallery.prototype.labelId = "";
Gallery.prototype.labelTxt = "";
Gallery.prototype.captionId = "";
Gallery.prototype.captionTxt = "";


/******* Label Methods ***********************************************************************/
Gallery.prototype.addLabel = function(refStr, strCaption){
	var imgIndex = this.getIndex(refStr)
	this.imgs[imgIndex].label = strCaption
}

Gallery.prototype.makeLabel = function(){//obj.makeLabel([writeTag],[labelId],[labelClass])
	if(arguments.length > 1 && arguments[1]!=""){this.labelId = arguments[1];}
	if(arguments.length > 2 && arguments[2]!=""){var labelClass = ' class="'+arguments[2]+'"';}else{var labelClass = '';}
	var strWrite = "<div id=\""+this.labelId+"\" "+labelClass+"></div>"
	if(arguments.length >= 1 && arguments[0] == false){return strWrite;}else{document.write(strWrite); this.updateTxt();}
	
}

Gallery.prototype.writeText = function(){
if(document.getElementById){
	if(document.getElementById(this.labelId)){document.getElementById(this.labelId).innerHTML = this.labelTxt;}
}
}

Gallery.prototype.updateTxt = function(){
	this.labelTxt = this.imgs[this.imgIndex].label;
	this.writeText();
}

/******** Captions Methods ***************************************************************/
Gallery.prototype.addImgCaption = function (refStr, strCaption){
	var imgIndex = this.getIndex(refStr)
	this.imgs[imgIndex].caption = strCaption
}


Gallery.prototype.makeImgCaption = function(){//obj.makeImgCaption([writeTag],[captionId],[captionClass])
	if(arguments.length > 1 && arguments[1]!=""){this.captionId = arguments[1];}
	if(arguments.length > 2 && arguments[2]!=""){var captionClass = ' class="'+arguments[2]+'"';}else{var captionClass = '';}
	var strWrite = "<div id=\""+this.captionId+"\" "+captionClass+"></div>"
	if(arguments.length >= 1 && arguments[0] == false){return strWrite;}else{document.write(strWrite); this.updateCaption();}
}

Gallery.prototype.writeCaption = function(){
if(document.getElementById){
	if(document.getElementById(this.captionId)){document.getElementById(this.captionId).innerHTML = this.captionTxt;}
}
}

Gallery.prototype.updateCaption = function(){
	this.captionTxt = this.imgs[this.imgIndex].caption;
	this.writeCaption();
}

/******* onConstruct Event Function **** on new Gallery construction *************************/
Gallery.prototype.onConstruct = function(){
	if(!document.layers){
		//this.onImgPrev = this.updateTxt;
		//this.onImgNext = this.updateTxt;
		this.onImgPrev = this.updateInfo;
		this.onImgNext = this.updateInfo;
		this.onMakeGallery = function(){
			this.writeLabel();
			this.updateTxt();
			this.updateCaption();
		}
		this.labelId = this.ref + "lb";
		this.captionId = this.ref + "cap";
		for(var i=0;i<this.imgs.length;i++){
			this.imgs[i].caption = "";
		}
		this.imgLinkId = this.ref + "imgLink";
	}
	this.popSkin = "";
	this.launchWin = linkAction;
}

Gallery.prototype.updateInfo = function(){this.updateTxt(); this.updateCaption(); this.imgLinkVisibility();}


/******* Pop Win Functions ***************************************************************/
Gallery.prototype.getIndex = function(refStr){
	var imgIndex = this.refImgByFile(refStr).indexNum;
	return imgIndex;
}

Gallery.prototype.linkImg = function(){//obj.linkImg([imageRef],[linkImageSrc],[linkImageWidth],[linkImageHeight]) 
	if(!Gallery.prototype.linkedImgs){
		Gallery.prototype.linkedImgs = true;
		this.addLinkProperties();
	}
	var imgIndex = this.getIndex(arguments[0])
	this.imgs[imgIndex].linkTo = arguments[1];
	this.imgs[imgIndex].isLinked = true;
	if(arguments.length >= 4){
		this.imgs[imgIndex].isImage = true;
		this.imgs[imgIndex].imgLargeWidth = arguments[2];
		this.imgs[imgIndex].imgLargeHeight = arguments[3];
	}
}

Gallery.prototype.addLinkProperties = function(){
	var imgsSize = this.imgs.length
	for(var i=0;i<imgsSize;i++){
		this.imgs[i].linkTo = "";
		this.isLinked = false;
		this.imgs[i].isImage = false;
	}
}


var linkAction = function (){
	var linked = this.imgs[this.imgIndex].isLinked
	var linkIs;
	if(linked){
		this.actionPopUp(this.imgs[this.imgIndex].linkTo);
	}
	else{
		//void(0);
	}
}


Gallery.prototype.actionPopUp = function(myImg){
	var strDim = "", strImgDim = "";
	var posSlash = myImg.lastIndexOf("/")
	var pageTitle = myImg.substring(posSlash+1, myImg.length)
	if(this.imgs[this.imgIndex].isImage){
		strDim = ",width="+(eval(this.imgs[this.imgIndex].imgLargeWidth) + 50)
		strDim += ",height="+(eval(this.imgs[this.imgIndex].imgLargeHeight) + 100)
		strImgDim = "width=\""+this.imgs[this.imgIndex].imgLargeWidth+"\" height=\""+this.imgs[this.imgIndex].imgLargeHeight+"\"";
	}
	var popProps = new Array(pageTitle,myImg,this.imgs[this.imgIndex].caption,this.imgs[this.imgIndex].imgLargeWidth,this.imgs[this.imgIndex].imgLargeHeight)
	this.imgWinRef = window.open("",this.ref+this.imgIndex,"toolbar=no,scrollbars=yes,resizable=yes"+strDim)
	//var strCode = "<html>\n<head><title>"+pageTitle+"</title></head>\n"
	//strCode += "<body>\n<table align=\"center\">\n<tr><td align=\"center\">"
	//strCode += "<img src=\""+myImg+"\" "+strImgDim+">";
	//strCode += "</td></tr>\n<tr><td align=\"left\">"+this.imgs[this.imgIndex].caption+"</td></tr>"
	//strCode += "\n<tr><td align=\"center\"><a href=\"javascript:this.close();\">close</a></td></tr>\n<table>\n</body>\n</html>";
	var strCode = (this.popSkin == "")?PopUp_skin(popProps):PopUp_skin(popProps,this.popSkin);
	this.imgWinRef.document.open();
	this.imgWinRef.document.write(strCode);
	this.imgWinRef.document.close();
	this.imgWinRef.focus();
	this.onLaunchWin();
}

Gallery.prototype.makeImgLink = function(){//makeImgLink([STRING text],[STRING id],[BOOL writeTag],[STRING class],[STRING image])
	if(arguments.length > 0 && arguments[0]!=""){var imgLinkText = arguments[0];}else{imgLinkText = "click here";} 
	if(arguments.length > 1 && arguments[1]!=""){this.imgLinkId = arguments[1];}
	if(arguments.length > 3 && arguments[3]!=""){var imgLinkClass = "class=\""+arguments[3]+"\"";}else{imgLinkClass=""}
	if(arguments.length > 4 && arguments[4]!=""){var imgLinkImage = "<img src=\""+arguments[4]+"\" alt=\""+imgLinkText+"\" border=\"0\">";}else{var imgLinkImage = null;}
	if(imgLinkImage != null){imgLinkText = imgLinkImage;}
	var strImgLink = "<a href=\"javascript:"+this.ref+".launchWin()\;\" id=\""+this.imgLinkId+"\" "+imgLinkClass+">"+imgLinkText+"</a>"
	if(document.getElementById){
	if(arguments.length > 2 && arguments[2] == false){return strImgLink;}else{document.write(strImgLink); this.imgLinkVisibility();}	
	}else{return ""}
}

Gallery.prototype.imgLinkVisibility = function(){
	if(this.imgs[this.imgIndex].isLinked){
		if(document.getElementById(this.imgLinkId)){document.getElementById(this.imgLinkId).style.visibility = "visible";}
	}
	else{
		if(document.getElementById(this.imgLinkId)){document.getElementById(this.imgLinkId).style.visibility = "hidden";}
	}	
}


Gallery.prototype.imgLinkId = "";

/************************ NEW INTERFACE FOR SKINS ************************************/
Gallery.prototype.addSkinProperties = function(){
	Gallery.prototype.gallerySkin = (arguments.length > 0 && arguments[0]!="")?arguments[0]:"";
	/* Title Controls Properties */
	Gallery.prototype.titleText = "";
	Gallery.prototype.titleImage = "";
	Gallery.prototype.titleId = "";
	Gallery.prototype.titleClass = "";
	/* Previous Controls Properties */
	Gallery.prototype.previousText = "";
	Gallery.prototype.previousImage = "";
	Gallery.prototype.previousClass = "";
	Gallery.prototype.previousId = "";
	/* Next Controls Properties */
	Gallery.prototype.nextText = "";
	Gallery.prototype.nextImage = "";
	Gallery.prototype.nextClass = "";
	Gallery.prototype.nextId = "";
	/* Gallery Image Link Properties */
	Gallery.prototype.imgLinkText = "";
	/* imgLinkId is prefined if not changed */
	Gallery.prototype.imgLinkImage = "";
	Gallery.prototype.imgLinkClass = "";
	Gallery.prototype.imgLinkOnImage = false;
	/* Gallery Label Properties */
	Gallery.prototype.labelClass = "";
	/* Gallery Caption Properties */
	Gallery.prototype.captionClass = "";
	/* Gallery Skin Debugging Methods */
	Gallery.prototype.formattedSkin = "";
	Gallery.prototype.alertFormattedSkin = function (){alert(this.ref + "Gallery Skin is UNFORMATTED.");}
	Gallery.prototype.showSkin_onMakeGalleryFromSkin = false;
	/*******************
	PREFINED PROPERTIES 
	captionId, labelId, imgLinkId
	********************/
}

Gallery.prototype.defineSkinProperties = function(){
	var prevProps = this.makePrevious(this.previousText,this.previousImage,this.previousClass,this.previousId,false);
	var nextProps = this.makeNext(this.nextText,this.nextImage,this.nextClass,this.nextId,false);
	var imgLinkProps = this.makeImgLink(this.imgLinkText,"",false,this.imgLinkClass,this.imgLinkImage);
	var captionProps = this.makeImgCaption(false,"",this.captionClass);
	var labelProps = this.makeLabel(false,"",this.labelClass);
	var imgFrameProps = this.makeImgFrame(this.imgLinkOnImage,false);
	var titleCont = (this.titleImage!="")?'<img src="'+this.titleImage+'" alt="'+this.titleText+'">' : this.titleText;
	var titleProps  = '<span id="'+this.titleId+'" class"'+this.titleClass+'">'+titleCont+'</span>';
	var skinProps = new Array(prevProps,nextProps,imgLinkProps,captionProps,labelProps,imgFrameProps,titleProps);
	Gallery.prototype.skinProperties = skinProps;
}

Gallery.prototype.makeGalleryFromSkin = function(){
	this.defineSkinProperties();
	var props = this.skinProperties;
	var skin = this.gallerySkin;
	
	/* Regular Exp Search Array */
	var reSearch = new Array();
	reSearch[0] = /\*\*makePrevious\*\*/g;
	reSearch[1] = /\*\*makeNext\*\*/g;
	reSearch[2] = /\*\*makeImgLink\*\*/g;
	reSearch[3] = /\*\*makeCaption\*\*/g;
	reSearch[4] = /\*\*makeLabel\*\*/g;
	reSearch[5] = /\*\*makeImgFrame\*\*/g;
	reSearch[6] = /\*\*makeTitle\*\*/g;		
	/* Search and Replace Regular Exp with Search Array */	
	for(var i=0;i<props.length;i++){
		skin = searchReplace(skin,reSearch[i],props[i]);
	}
	
	/*********** SKIN DEBUGGING ISSUES *****************/
	this.formattedSkin = skin;
	this.alertFormattedSkin = function(){alert(this.formattedSkin);}
	if(this.showSkin_onMakeGalleryFromSkin){this.alertFormattedSkin();}
	
	document.write(skin);
	this.updateCaption();
	this.updateTxt();
}

Gallery.prototype.viewGallerySkinCode = function(){
	var HTMLent = new Array("&lt;","&gt;","&quot;");
	var reHTMLent = new Array(/</g,/>/g,/\"/g);
	var skin = this.formattedSkin;
	for(var k=0;k<HTMLent.length;k++){
		skin = searchReplace(skin,reHTMLent[k],HTMLent[k]);
	}
	//alert(skin);
	var strShowCode = '<pre style="font-size:8pt;color:#333333;">' + skin + '</pre>';
	var skinCodeWin = window.open("","GallerySkin","width=550,height=300,status=no,toolbar=no,resizable=yes,scrollbars=yes");
	skinCodeWin.document.open();
	skinCodeWin.document.write(strShowCode);
	skinCodeWin.document.close();
	skinCodeWin.focus();
}

/*************************** OLD INTERFACE FOR MAKING SKIN *********************************************/
function titleProp(tiImg,tiText,tiFont,tiSize,tiColor,tiStyleClass,tiStyleId){	
	/* Title Properties */
	tiText = (!tiText)?'':tiText;
	tiImg = (!tiImg||tiImg=='')?'':'<img src="'+tiImg+'" alt="'+tiText+'">';
	tiCont = (!tiImg||tiImg=='')?tiText:tiImg;
	tiFont = (!tiFont||tiFont=='')?'':'font-family:'+tiFont+';';
	tiSize = (!tiSize||tiSize=='')?'':'font-size:'+tiSize+';';
	tiColor = (!tiColor||tiColor=='')?'':'color:'+tiColor+';';
	tiStyleClass = (!tiStyleClass||tiStyleClass=='')?'':'class="'+tiStyleClass+'"';
	tiStyleId = (!tiStyleId||tiStyleId=='')?'':'id="'+tiStyleId+'"';
	tiProperties = (tiCont == tiImg)?tiCont:'<span style="'+tiFont+tiSize+tiColor+'"'+tiStyleClass+' '+tiStyleId+'>'+tiCont+'</span>'; 
	return tiProperties;
}


function defineProp(obj,prvImg,prvStyleClass,prvStyleId,prvText,nxtImg,nxtStyleClass,nxtStyleId,nxtText,lnkText,lnkStyleId,capStyleId,labStyleId,linkOnImg,tiStr){
	var props = new Array();

	/* Previous Control Properties */
	prvImg = (!prvImg||prvImg=='')?'':prvImg;
	prvStyleClass = (!prvStyleClass||prvStyleClass=='')?'':prvStyleClass;
	prvStyleId = (!prvStyleId||prvStyleId=='')?'':prvStyleId;
	prvText = (!prvText||prvText=='')?'':prvText;
	var prvStr = obj.makePrevious(prvText,prvImg,prvStyleClass,prvStyleId,false);
	props[0] = prvStr;

	/* Next Control Properties */
	nxtImg = (!nxtImg||nxtImg=='')?'':nxtImg;
	nxtStyleClass = (!nxtStyleClass||nxtStyleClass=='')?'':nxtStyleClass;
	nxtStyleId = (!nxtStyleId||nxtStyleId=='')?'':nxtStyleId;
	nxtText = (!nxtText||nxtText=='')?'':nxtText;
	var nxtStr = obj.makeNext(nxtText,nxtImg,nxtStyleClass,nxtStyleId,false); 	
	props[1] = nxtStr;

	/* Image Link Properties */
	lnkStyleId = (!lnkStyleId||lnkStyleId=='')?'':lnkStyleId;
	lnkText = (!lnkText||lnkText=='')?'':lnkText;
	var lnkStr = obj.makeImgLink(lnkText,lnkStyleId,false);
	props[2] = lnkStr;

	/* Caption Properties */
	obj.captionId = (!capStyleId||capStyleId=='')?obj.captionId:capStyleId;
	var capStr = obj.makeImgCaption(false);
	props[3] = capStr;

	/* Label Properties */
	obj.labelId = (!labStyleId||labStyleId=='')?obj.labelId:labStyleId;
	var labStr = obj.makeLabel(false);
	props[4] = labStr;

	/* Image Frame Properties */
	linkOnImg = (linkOnImg == true || linkOnImg == 'true')? true :false;	
	var imgFrameStr = obj.makeImgFrame(linkOnImg,false);
	props[5] = imgFrameStr;
	
	/* Title Properties */
	props[6] = tiStr;
	
	return props;
}

function createGallery(obj,skin,props){
	var reSearch = new Array();
	reSearch[0] = /\*\*makePrevious\*\*/g;
	reSearch[1] = /\*\*makeNext\*\*/g;
	reSearch[2] = /\*\*makeImgLink\*\*/g;
	reSearch[3] = /\*\*makeCaption\*\*/g;
	reSearch[4] = /\*\*makeLabel\*\*/g;
	reSearch[5] = /\*\*makeImgFrame\*\*/g;
	reSearch[6] = /\*\*makeTitle\*\*/g;		
		
	for(var i=0;i<props.length;i++){
		skin = searchReplace(skin,reSearch[i],props[i]);
	}
	document.write(skin);
	//alert(skin)
	obj.updateCaption();
	obj.updateTxt();
}

function searchReplace(strValue,reSearch,strReplace){
	if(reSearch.test(strValue)){strValue = strValue.replace(reSearch,strReplace);}
	return strValue;
}

/******************************************************************************/
function PopUp_skin(props,skin){
	var formatSkin = ""
	var popup_skinDefault = ''+
	'<html>\n'+
	'<head>\n'+
	'<title>**Title**</title>\n'+
	'</head>\n'+
	'<body>\n'+
	'<table align="center">\n'+
	'<tr><td align="center"><img src="**ImageSource**" width="**ImageWidth**" height="**ImageHeight**"></td>\n'+
	'</tr>\n'+
	'<tr>\n'+
	'<td align="left">**Caption**</td>\n'+
	'</tr>\n'+
	'<tr>\n'+
	'<td align="center"><a href="javascript:this.close();">close</a></td>\n'+
	'</tr>\n'+
	'<table>\n'+
	'</body>\n'+
	'</html>';

	var rePopStrFind = new Array();
	rePopStrFind[0] = /\*\*Title\*\*/;
	rePopStrFind[1] = /\*\*ImageSource\*\*/;
	rePopStrFind[2] = /\*\*Caption\*\*/;
	rePopStrFind[3] = /\*\*ImageWidth\*\*/;
	rePopStrFind[4] = /\*\*ImageHeight\*\*/;

	formatSkin = (skin == "" || skin == null || skin == undefined) ? popup_skinDefault : skin;

	for(var i=0;i<props.length;i++){
		formatSkin = searchReplace(formatSkin,rePopStrFind[i],props[i])
	}

	return formatSkin;
}