Public feed
#531158
import mx.controls.DateChooser;
import mx.utils.Delegate;
import mx.styles.CSSStyleDeclaration;
class Calander extends MovieClip
{
private var dcCalander:DateChooser;
private var rURL:String="calander.asp?date=";
private var xml:XML;
private var checkArray:Object;
private var scope:MovieClip;
private var dcListener:Object ;
private var sObject:Object;
private var loadedID:Number;
private function pad(str,n)
{
var l = Math.floor(str).toString().length;
if (l < n)
{
for (var i = 0; i < (n - l); i++)
{
str = "0" + str;
}
}
return str;
}
private function onLoad()
{
scope=this;
var _this:Calander=this;
xml=new XML();
xml.ignoreWhite=true;
xml.onLoad=function()
{
_this.setArray()
}
xml.sendAndLoad(rURL,xml)
}
private function Checkloaded(evt_obj:Object)
{
var _this:Calander=this;
_this.sObject=evt_obj;
_this.FormatDates(_this.sObject);
}
private function setArray()
{
var _this:Calander=this;
checkArray=new Object();
var nodes=xml.firstChild.childNodes;
for(var i=0;i<nodes.length;i++)
{
var date=nodes[i].childNodes[0].attributes["date"]
var url=nodes[i].childNodes[0].childNodes[0].nodeValue
checkArray[date]=[]
checkArray[date].url=url;
}
//Clears styles
_global.styles=new Object();
_this.scope.createClassObject(mx.controls.DateChooser,"dc",_this.scope.getNextHighestDepth(),{_x:23.4,_y:30.0})
_this.dcCalander=_this.scope.dc;
_this.dcCalander.dayNames = new Array("Di", "Lu", "Ma", "Me", "Je", "Ve", "Sa");
_this.dcCalander.monthNames = ["Jan", "Fev","Mar","Avr", "Mai", "Juin","Juil", "Aou", "Sept","Oct", "Nov", "Dec"];
//Set up listeners for event changes to redraw formats and check if date is present
_this.dcListener= new Object();
_this.dcListener.change = Delegate.create(this,_this.CheckDate);
_this.dcListener.scroll=Delegate.create(this,_this.FormatDates);
_this.dcListener.load=Delegate.create(this,_this.Checkloaded);
// Add listener object to date chooser.
_this.dcCalander.addEventListener("change", _this.dcListener);
_this.dcCalander.addEventListener("scroll",_this.dcListener);
_this.dcCalander.addEventListener("load",_this.dcListener.load);
// Dispatch event so it can redraw Calander, Flash bug:@
_this.dcCalander.dispatchEvent({type: "scroll", detail: "nextMonth"});
}
/*******************************************************
* @param year Year value of selected_date
* @param month Month value of selected_date
* @param day Day value of selected_date
* @param date string of all the above values
* *****************************************************/
private function CheckDate(evt_obj)
{
var _this:Calander=this;
// Get selected item as a Date
var thisDate:Date = new Date(evt_obj.target.selectedDate);
// Might have to change it to getUTC depending on how your db is storing the values
var year:Number=
thisDate.getFullYear()
var month:Number=
_this.pad(thisDate.getMonth()+1,2);
var day:Number=
_this.pad(thisDate.getDate(),2);
var date:String=
//year +"-"+month +"-"+ day
day +"-"+month +"-"+ year
trace(date);
if(_this.checkArray[date])
{
_this.scope.txtEvents.text=_this.checkArray[date].url;
getURL(_this.checkArray[date].url,"_self");
};
}
/*******************************************************
* @param CurrMonth Gets the Current Month on display
* @param yearMonth String of displayed month
* ****************************************************/
private function FormatDates(evt_obj)
{
var _this:Calander=this;
var CurrMonth=evt_obj.target["tfList"]["dateDisplay"].text
var yearMonth:String=new String();
yearMonth=this.getMonthIndex(CurrMonth);
var dates=evt_obj.target["dateGrid"]["tfList"];
for(var i =0;i<=6;i++)
{
for(var q=0;q<=6;q++)
{
//Get the array idea for each cell block
var label=dates["dayBlock"+i+"label"+q];
//See if it is a number if so continue
if(Number(label.text))
{
//Reset data to the defaults
label.setStyle("color",0x000000);
label.setStyle("fontWeight","none");
//var day:String=this.pad(label.text,2)
var day:String=this.pad(label.text,2)+"-";
// If value is in checkArray then bold
//if(_this.checkArray[yearMonth+day].url!= undefined)
if(_this.checkArray[day+yearMonth].url!= undefined)
{
//Set the style of the dates if inside the array
label.setStyle("fontWeight","bold");
label.setStyle("color",0xFF0000);
}
}
}
}
}
private function getMonthIndex(month:String)
{
var _this:Calander=this;
// Parse out DisplayYear
var year:String=new String();
year=month.substring(month.indexOf(" ")+1,month.length);
//Parse out DisplayMonth
month=month.substring(0,month.indexOf(" "));
var index:Number;
// Get Month names
var monthArr:Array=new Array()
monthArr=_this.dcCalander.monthNames;
// Loop through array to search for the index of the display month
for (var i = 0; i < monthArr.length; i++)
{
if(monthArr[i]==month){
index=i+1;
}
}
// Format string for checkArray lookup
//return (year +"-"+_this.pad(index,2)+"-")
//return ("-"+_this.pad(index,2)+"-"+year );
return (_this.pad(index,2)+"-"+year)
}
}