var CHR_29 = ""
var pageInfo
var EFI_IMAGE_URL="/resources/2-1.gif"


function addStyle(styleName, IDPageStyle,styleURL)
{
	var obj=new Object;
	obj.name=styleName;
	obj.IDPageStyle=IDPageStyle;
	obj.URL=styleURL;
	window.pageStyles[window.pageStyles.length]=obj;


}

window.pageStyles=new Array();

addStyle ("peletier.com -Automático-",0,"/style/main2.css")
addStyle ("peletier.com -Primavera-",1,"/style/main-spring.css")
addStyle ("peletier.com -Verano-",2,"/style/main-summer.css")
addStyle ("peletier.com -Otoño-",3,"/style/main-autumn.css")
addStyle ("peletier.com -Invierno-",4,"/style/main-winter.css")
addStyle ("peletier.com -Navidad-",5,"/style/main-xmas.css")
addStyle ("peletier.com -Nocturno-",6,"/style/main-night.css")

function record2Object(rc)
{
var obj= new Object;

var n

for(n=0;n<rc.fieldCount;n++)
	obj[rc.fieldName(n).toLowerCase()]=rc.fieldValue(rc.fieldName(n))

return obj
}



function load(IDPage,isVisit)
{
	//check env variable
	if (EDITOR)
		deleteAll()
	
	rc= new jRecordset
	
	if(IDPage==null)
		IDPage=0
	
	if(!isVisit)
		isVisit=false
	
	var retries=0	
	do
	{
	
		ret=pageOps.execute.loadPage(IDPage,isVisit,document.referrer)
		retries++
		
	}while (retries < 2 && !ret.return_value)
		
	
	arr=(ret.return_value).split(CHR_29)
	
	if(arr[0]=="ERROR-INVALIDREDIRECT")
		window.open("/pageSorcerer/redirect-forbidden.asp?DIR=http://www.peletier.com/ps/editor/render.html?IDPage="+IDPage,"_self")
	
	
	pageInfo=new Object;
	
	rc.load(arr[1])

	pageInfo=record2Object(rc)
	
	pageInfo.wordVisits=rc.tag
	
	

	
		
	rc.load(arr[0])
	
	
	
	var lastID=-1
	var thisID=-2	
	var config
	
	while(!rc.eof())
	{
		thisID=parseInt(rc.fieldValue("IDOBJECT"),10)
		
		if(thisID!=lastID)
		{
			if (lastID != -1)
			{
				createobj(config["CLASS"],config)
			}
			
			lastID=thisID
			config=new Array()
		}
		
		config[rc.fieldValue("PROPERTYNAME")]=rc.fieldValue("PROPERTYVALUE")
		rc.moveNext()
	
	}
	
	if (lastID != -1)
	{
		createobj(config["CLASS"],config)
	}

}

function widgetInfo(name,evalNew,description,icon)
{
	obj=new Object;
	obj.name=name
	obj.evalNew=evalNew
	obj.description=description
	
	if(icon)
		obj.icon="/ps/editor/lib/" + icon
	else
		obj.icon="/ps/editor/gr/default_icon.gif"
		
	
	
	return obj
}


var iapRequest=new Array();

function getResourceInfoAsyncPack(id,callback)
{
	id=parseInt(id,10)
	r="R"+id
	
	if(resources[r])
	{
		callback(resources[r])
		return;
	}
	
	req=iapRequest[r]

	if(!req)
	{
		req=new Object;
		req.callback=new Array();
		req.id=id
		iapRequest[r]=req;
	}

	req.callback[req.callback.length]=callback

}

function resourceInfoPackGlobalQuery()
{
		var rc
		rc=new jRecordset;
		
		rc.create("IDResource")

		for (r in iapRequest)
		{
			req=iapRequest[r];
			rc.addNew()
			rc.setFieldValue("IDResource",req.id)
		}
		
		pageOps.execute.getResourceInfo( rc.pack(),"","",resourceInfoPackGlobalQueryCallback)

}

function resourceInfoPackGlobalQueryCallback(ret)
{
		
		if(!ret.return_value)
		{
			if(EDITOR)
				alert("GQ: error al leer o no se encuentra el recurso")
		}
		else
		{
			var rc
			rc=new jRecordset()
			rc.load(ret.return_value);
			
			seizeResourceInfo(rc)
			
			rc.moveFirst()
			var r
			var i
			var id
			var req
			var info
			while (!rc.eof())
			{
				id=parseInt(rc.fieldValue("IDResource"),10)
				r="R"+id
				req=iapRequest[r]
				info=getResourceInfo(id)
				
				for(i=0;i<req.callback.length;i++)
				{
					cb=req.callback[i];
					cb(info)
				}
				

				rc.moveNext()
			}

		}

	iapRequest=new Array();

}



function getResourceInfo(id)
{
	id=parseInt(id,10)
	r="R"+id
	
	if (!resources[r])
	{
		//request resource.
		
		var rc
		rc=new jRecordset;
		
		rc.create("IDResource")
		rc.addNew()
		
		rc.setFieldValue("IDResource",id)
		
		var ret
		ret=pageOps.execute.getResourceInfo( rc.pack(),"")
		

		rc=new jRecordset()
		
		//alert(ret.return_value)
		
		if(!ret.return_value)
		{
			if(EDITOR)
				alert("error al leer o no se encuentra el recurso")
		}
		else
		{
			rc.load(ret.return_value);
			
			seizeResourceInfo(rc)
		
		}
	}	
		
	
	return resources[r]



}


function seizeResourceInfo(rc)
{
	var obj
	var url
	rc.moveFirst()
			
	while (!rc.eof())
	{
		obj=new Object;
		
		var extension=rc.fieldValue("Extension");
		
		ef=extension.indexOf("?")
		if(ef>=0 && extension.length>(ef+1) )
		{
			var extraPath	= extension.substr(ef+1)
			url=rc.fieldValue("URL") + extraPath;
			extension=extension.substr(0,ef);
		}
		else
		{
			url=rc.fieldValue("URL")+rc.fieldValue("IDResource")+"-"+rc.fieldValue("RND")+"."+extension;
		}
		
		url=url.replace("www.peletier.com",document.location.host);
		
		obj.url=url;
		obj.extension=extension
		obj.description=rc.fieldValue("Description")
		obj.IDResource=rc.fieldValue("IDResource")
		obj.IDParent=rc.fieldValue("IDParent")
		obj.IDThumbnail=rc.fieldValue("IDThumbnail")
		
				
		resources["R"+rc.fieldValue("IDResource")]=obj
		rc.moveNext()
	}


}


function strReplace(str,find,replaceWith)
{
if(!str) return str

while(str.indexOf(find)!=-1)
	str=str.replace(find,replaceWith)


return str
}


function doCode(fString, fOTag, fCTag, fROTag, fRCTag)
{

fString=strReplace(fString,fOTag,fROTag)
fString=strReplace(fString,fCTag,fRCTag)

return fString

}

function renderText(text)
{
		
		fString=safeText(text)
	
		fString = doCode(fString, "[b]", "[/b]", "<b>", "</b>")
		fString = doCode(fString, "[s]", "[/s]", "<s>", "</s>")
		fString = doCode(fString, "[strike]", "[/strike]", "<s>", "</s>")
		fString = doCode(fString, "[u]", "[/u]", "<u>", "</u>")
		fString = doCode(fString, "[i]", "[/i]", "<i>", "</i>")
		fString = doCode(fString, "[font=Andale Mono]", "[/font=Andale Mono]", "<font face='Andale Mono'>", "</font id='Andale Mono'>")
		fString = doCode(fString, "[font=Arial]", "[/font=Arial]", "<font face='Arial'>", "</font id='Arial'>")
		fString = doCode(fString, "[font=Arial Black]", "[/font=Arial Black]", "<font face='Arial Black'>", "</font id='Arial Black'>")
		fString = doCode(fString, "[font=Book Antiqua]", "[/font=Book Antiqua]", "<font face='Book Antiqua'>", "</font id='Book Antiqua'>")
		fString = doCode(fString, "[font=Century Gothic]", "[/font=Century Gothic]", "<font face='Century Gothic'>", "</font id='Century Gothic'>")
		fString = doCode(fString, "[font=Courier New]", "[/font=Courier New]", "<font face='Courier New'>", "</font id='Courier New'>")
		fString = doCode(fString, "[font=Comic Sans MS]", "[/font=Comic Sans MS]", "<font face='Comic Sans MS'>", "</font id='Comic Sans MS'>")
		fString = doCode(fString, "[font=Georgia]", "[/font=Georgia]", "<font face='Georgia'>", "</font id='Georgia'>")
		fString = doCode(fString, "[font=Impact]", "[/font=Impact]", "<font face='Impact'>", "</font id='Impact'>")
		fString = doCode(fString, "[font=Tahoma]", "[/font=Tahoma]", "<font face='Tahoma'>", "</font id='Tahoma'>")
		fString = doCode(fString, "[font=Times New Roman]", "[/font=Times New Roman]", "<font face='Times New Roman'>", "</font id='Times New Roman'>")
		fString = doCode(fString, "[font=Trebuchet MS]", "[/font=Trebuchet MS]", "<font face='Trebuchet MS'>", "</font id='Trebuchet MS'>")
		fString = doCode(fString, "[font=Script MT Bold]", "[/font=Script MT Bold]", "<font face='Script MT Bold'>", "</font id='Script MT Bold'>")
		fString = doCode(fString, "[font=Stencil]", "[/font=Stencil]", "<font face='Stencil'>", "</font id='Stencil'>")
		fString = doCode(fString, "[font=Verdana]", "[/font=Verdana]", "<font face='Verdana'>", "</font id='Verdana'>")
		fString = doCode(fString, "[font=Lucida Console]", "[/font=Lucida Console]", "<font face='Lucida Console'>", "</font id='Lucida Console'>")

		fString = doCode(fString, "[red]", "[/red]", "<font color=red>", "</font id=red>")
		fString = doCode(fString, "[green]", "[/green]", "<font color=green>", "</font id=green>")
		fString = doCode(fString, "[blue]", "[/blue]", "<font color=blue>", "</font id=blue>")
		fString = doCode(fString, "[white]", "[/white]", "<font color=white>", "</font id=white>")
		fString = doCode(fString, "[purple]", "[/purple]", "<font color=purple>", "</font id=purple>")
		fString = doCode(fString, "[yellow]", "[/yellow]", "<font color=yellow>", "</font id=yellow>")
		fString = doCode(fString, "[violet]", "[/violet]", "<font color=violet>", "</font id=violet>")
		fString = doCode(fString, "[brown]", "[/brown]", "<font color=brown>", "</font id=brown>")
		fString = doCode(fString, "[black]", "[/black]", "<font color=black>", "</font id=black>")
		fString = doCode(fString, "[pink]", "[/pink]", "<font color=pink>", "</font id=pink>")
		fString = doCode(fString, "[orange]", "[/orange]", "<font color=orange>", "</font id=orange>")
		fString = doCode(fString, "[gold]", "[/gold]", "<font color=gold>", "</font id=gold>")

		fString = doCode(fString, "[beige]", "[/beige]", "<font color=beige>", "</font id=beige>")
		fString = doCode(fString, "[teal]", "[/teal]", "<font color=teal>", "</font id=teal>")
		fString = doCode(fString, "[navy]", "[/navy]", "<font color=navy>", "</font id=navy>")
		fString = doCode(fString, "[maroon]", "[/maroon]", "<font color=maroon>", "</font id=maroon>")
		fString = doCode(fString, "[limegreen]", "[/limegreen]", "<font color=limegreen>", "</font id=limegreen>")

		fString = doCode(fString, "[h1]", "[/h1]", "<h1>", "</h1>")
		fString = doCode(fString, "[h2]", "[/h2]", "<h2>", "</h2>")
		fString = doCode(fString, "[h3]", "[/h3]", "<h3>", "</h3>")
		fString = doCode(fString, "[h4]", "[/h4]", "<h4>", "</h4>")
		fString = doCode(fString, "[h5]", "[/h5]", "<h5>", "</h5>")
		fString = doCode(fString, "[h6]", "[/h6]", "<h6>", "</h6>")
		fString = doCode(fString, "[size=1]", "[/size=1]", "<font size=1>", "</font id=size1>")
		fString = doCode(fString, "[size=2]", "[/size=2]", "<font size=2>", "</font id=size2>")
		fString = doCode(fString, "[size=3]", "[/size=3]", "<font size=3>", "</font id=size3>")
		fString = doCode(fString, "[size=4]", "[/size=4]", "<font size=4>", "</font id=size4>")
		fString = doCode(fString, "[size=5]", "[/size=5]", "<font size=5>", "</font id=size5>")
		fString = doCode(fString, "[size=6]", "[/size=6]", "<font size=6>", "</font id=size6>")
		fString = doCode(fString, "[list]", "[/list]", "<ul>", "</ul>")
		fString = doCode(fString, "[list=1]", "[/list=1]", "<ol type=1>", "</ol id=1>")
		fString = doCode(fString, "[list=a]", "[/list=a]", "<ol type=a>", "</ol id=a>")
		fString = doCode(fString, "[*]", "[/*]", "<li>", "</li>")
		fString = doCode(fString, "[left]", "[/left]", "<div align=left>", "</div id=left>")
		fString = doCode(fString, "[center]", "[/center]", "<center>", "</center>")
		fString = doCode(fString, "[centre]", "[/centre]", "<center>", "</center>")
		fString = doCode(fString, "[right]", "[/right]", "<div align=right>", "</div id=right>")
		fString = doCode(fString, "[code]", "[/code]", "<span id=code><font face=courier id=code>", "</font id=code></span id=code>")
		fString = doCode(fString, "[quote]", "[/quote]", "<BLOCKQUOTE id=quote>quote:<hr height=1 noshade id=quote>", "<hr height=1 noshade id=quote></BLOCKQUOTE id=quote>")
		fString = strReplace(fString,"[br]", "<br>")
		fString = strReplace(fString,"[hr]", "<div><hr></div>")
		
		fString=Smile(fString)

return fString
}


function Smile(fString)
{
var ICON_PATH="/ps/editor/icons/smileys/"

	fString = strReplace(fString, "[:(!]", "<img src='" + ICON_PATH + "icon_smile_angry.gif' border=0 align=middle>")
	fString = strReplace(fString, "[B)]", "<img src='" + ICON_PATH + "icon_smile_blackeye.gif' border=0 align=middle>")
	fString = strReplace(fString, "[xx(]", "<img src='" + ICON_PATH + "icon_smile_dead.gif' border=0 align=middle>")
	fString = strReplace(fString, "[XX(]", "<img src='" + ICON_PATH + "icon_smile_dead.gif' border=0 align=middle>")
	fString = strReplace(fString, "[:I]", "<img src='" + ICON_PATH + "icon_smile_blush.gif' border=0 align=middle>")
	fString = strReplace(fString, "[:(]", "<img src='" + ICON_PATH + "icon_smile_sad.gif' border=0 align=middle>")
	fString = strReplace(fString, "[:o]", "<img src='" + ICON_PATH + "icon_smile_shock.gif' border=0 align=middle>")
	fString = strReplace(fString, "[:O]", "<img src='" + ICON_PATH + "icon_smile_shock.gif' border=0 align=middle>")
	fString = strReplace(fString, "[:0]", "<img src='" + ICON_PATH + "icon_smile_shock.gif' border=0 align=middle>")
	fString = strReplace(fString, "[|)]", "<img src='" + ICON_PATH + "icon_smile_sleepy.gif' border=0 align=middle>")
	fString = strReplace(fString, "[:)]", "<img src='" + ICON_PATH + "icon_smile.gif' border=0 align=middle>")
	fString = strReplace(fString, "[:D]", "<img src='" + ICON_PATH + "icon_smile_big.gif' border=0 align=middle>")
	fString = strReplace(fString, "[}:)]", "<img src='" + ICON_PATH + "icon_smile_evil.gif' border=0 align=middle>")
	fString = strReplace(fString, "[:o)]", "<img src='" + ICON_PATH + "icon_smile_clown.gif' border=0 align=middle>")
	fString = strReplace(fString, "[:O)]", "<img src='" + ICON_PATH + "icon_smile_clown.gif' border=0 align=middle>")
	fString = strReplace(fString, "[:0)]", "<img src='" + ICON_PATH + "icon_smile_clown.gif' border=0 align=middle>")
	fString = strReplace(fString, "[8)]", "<img src='" + ICON_PATH + "icon_smile_shy.gif' border=0 align=middle>")
	fString = strReplace(fString, "[8D]", "<img src='" + ICON_PATH + "icon_smile_cool.gif' border=0 align=middle>")
	fString = strReplace(fString, "[:P]", "<img src='" + ICON_PATH + "icon_smile_tongue.gif' border=0 align=middle>")
	fString = strReplace(fString, "[:p]", "<img src='" + ICON_PATH + "icon_smile_tongue.gif' border=0 align=middle>")
	fString = strReplace(fString, "[;)]", "<img src='" + ICON_PATH + "icon_smile_wink.gif' border=0 align=middle>")
	fString = strReplace(fString, "[8]", "<img src='" + ICON_PATH + "icon_smile_8ball.gif' border=0 align=middle>")
	fString = strReplace(fString, "[?]", "<img src='" + ICON_PATH + "icon_smile_question.gif' border=0 align=middle>")
	fString = strReplace(fString, "[^]", "<img src='" + ICON_PATH + "icon_smile_approve.gif' border=0 align=middle>")
	fString = strReplace(fString, "[V]", "<img src='" + ICON_PATH + "icon_smile_dissapprove.gif' border=0 align=middle>")
	fString = strReplace(fString, "[v]", "<img src='" + ICON_PATH + "icon_smile_dissapprove.gif' border=0 align=middle>")
	fString = strReplace(fString, "[:X]", "<img src='" + ICON_PATH + "icon_smile_kisses.gif' border=0 align=middle>")
	fString = strReplace(fString, "[:x]", "<img src='" + ICON_PATH + "icon_smile_kisses.gif' border=0 align=middle>")

	return fString;
}


function safeText(text)
{
	if(!text) return "";
	var x
	
	var r1= /\x3C/g
	var r2= /\x3E/g
	
	x=text.replace(r1,"&lt;")
	x=x.replace(r2,"&gt;")

	return x;
}







