

	/********************************************************************************/
	/**
	 * insao-hive-iwm 
	 * @copyright 		(c) 2007-2008 PR23 Limited. All Rights Reserved
	 * @author			 PAUL WINTERHALDER :: PR23
	 * 
	 * @category 		INSAO HIVE 6.0.0.2
	 * @category 		Run additonal portlet generic scripts
	 * @view 			/www/include_views/
	 *
	 * -------------------------------------------------------------------
	 *
	 * @final			DO NOT EDIT THIS FILE
	 *
	 *
	 /********************************************************************************/


	/********************************************************************************/
	/**
	*	
	* @param (str) object
	*
	**/
	function saoJs_positionInfo(object) {
		var p_elm 				= 	object;
		this.getElementLeft 	= 	getElementLeft;
		this.getElementWidth 	= 	getElementWidth;
		this.getElementRight 	= 	getElementRight;
		this.getElementTop 		= 	getElementTop;
		this.getElementHeight 	= 	getElementHeight;
		this.getElementBottom 	= 	getElementBottom;
		
		//:::::::::::::::::::::::::::::::::::::::::::
		//
		function getElementLeft() {
			var x = 0;
			var elm;
			
			if(typeof(p_elm) == "object") {
			  	elm = p_elm;
			} else {
			 	 elm = document.getElementById(p_elm);
			}
			
			while (elm != null) {
			  x+= elm.offsetLeft;
			  elm = elm.offsetParent;
			}
			
			return parseInt(x);
		}
	
		//:::::::::::::::::::::::::::::::::::::::::::
		//
		function getElementWidth(){
			var elm;
			
			if(typeof(p_elm) == "object"){
				elm = p_elm;
			} else {
				elm = document.getElementById(p_elm);
			}
			return parseInt(elm.offsetWidth);
		}
	
		//:::::::::::::::::::::::::::::::::::::::::::
		//
		function getElementRight(){
			return getElementLeft(p_elm) + getElementWidth(p_elm);
		}
	
		//:::::::::::::::::::::::::::::::::::::::::::
		//
		function getElementTop() {
			var y = 0;
			var elm;
			if(typeof(p_elm) == "object"){
				elm = p_elm;
			} else {
			 	elm = document.getElementById(p_elm);
			}
			
			while (elm != null) {
				y+= elm.offsetTop;
				elm = elm.offsetParent;
			}
			return parseInt(y);
		}
	
		//:::::::::::::::::::::::::::::::::::::::::::
		//
		function getElementHeight(){
			var elm;
			
			if(typeof(p_elm) == "object"){
				elm = p_elm;
			} else {
				elm = document.getElementById(p_elm);
			}
			return parseInt(elm.offsetHeight);
		}
	
		//:::::::::::::::::::::::::::::::::::::::::::
		//
		function getElementBottom(){
			return getElementTop(p_elm) + getElementHeight(p_elm);
		}
	}
	
	
	/********************************************************************************/
	/**
	*	
	*
	**/
	function saoJs_M_CalendarControl() 	{
	
		var calendarId 		= 'calendarcontrol';
		var currentYear		= 0;
		var currentMonth 	= 0;
		var currentDay 		= 0;
		var selectedYear 	= 0;
		var selectedMonth 	= 0;
		var selectedDay 	= 0;
		var months 			= ['January','February','March','April','May','June','July','August','September','October','November','December'];
		var dateField 		= null;

		//:::::::::::::::::::::::::::::::::::::::::::
		//
		function getProperty(p_property){
			var p_elm = calendarId;
			var elm = null;
		
			if(typeof(p_elm) == "object"){
				elm = p_elm;
			} else {
				elm = document.getElementById(p_elm);
			}
			
			if (elm != null){
				if(elm.style) {
					elm = elm.style;
					if(elm[p_property]) {
						return elm[p_property];
					} else {
						return null;
					}
				} else {
					return null;
				}
			}
		}
		
		//:::::::::::::::::::::::::::::::::::::::::::
		//
		function setElementProperty(p_property, p_value, p_elmId){
			var p_elm = p_elmId;
			var elm = null;
		
			if(typeof(p_elm) == "object"){
				elm = p_elm;
			} else {
				elm = document.getElementById(p_elm);
			}
			if((elm != null) && (elm.style != null)){
				elm = elm.style;
				elm[ p_property ] = p_value;
			}
		}
		
		//:::::::::::::::::::::::::::::::::::::::::::
		//
		function setProperty(p_property, p_value) {
			setElementProperty(p_property, p_value, calendarId);
		}
		
		//:::::::::::::::::::::::::::::::::::::::::::
		//
		function getDaysInMonth(year, month) {
			return [31,((!(year % 4 ) && ( (year % 100 ) || !( year % 400 ) ))?29:28),31,30,31,30,31,31,30,31,30,31][month-1];
		}
		
		//:::::::::::::::::::::::::::::::::::::::::::
		//
		function getDayOfWeek(year, month, day) {
			var date = new Date(year,month-1,day)
			return date.getDay();
		}
		
		//:::::::::::::::::::::::::::::::::::::::::::
		//
		this.setDate = setDate;
		function setDate(year, month, day) {
			if (dateField) {
				if (month < 10) {
					month = "0" + month;
				}
				if (day < 10) {
					day = "0" + day;
				}
				var dateString = day+"/"+month+"/"+year;
				dateField.value = dateString;
				
				if(dateField.onchange) {
					dateField.onchange();
				}
				hide();
			}
			return;
		}
	
		//:::::::::::::::::::::::::::::::::::::::::::
		//
		this.changeMonth = changeMonth;
		function changeMonth(change) {
			currentMonth += change;
			currentDay = 0;
			
			if(currentMonth > 12) {
				currentMonth = 1;
				currentYear++;
			} else if(currentMonth < 1) {
				currentMonth = 12;
				currentYear--;
			}
		
			calendar = document.getElementById(calendarId);
			calendar.innerHTML = calendarDrawTable();
		}
		
		//:::::::::::::::::::::::::::::::::::::::::::
		//
		this.changeYear = changeYear;
		function changeYear(change) {
			currentYear += change;
			currentDay = 0;
			calendar = document.getElementById(calendarId);
			calendar.innerHTML = calendarDrawTable();
		}
		
		//:::::::::::::::::::::::::::::::::::::::::::
		//
		function getCurrentYear() {
			var year = new Date().getYear();
			if(year < 1900) year += 1900;
			return year;
		}
		
		//:::::::::::::::::::::::::::::::::::::::::::
		//
		function getCurrentMonth() {
			return new Date().getMonth() + 1;
		} 
		
		//:::::::::::::::::::::::::::::::::::::::::::
		//
		function getCurrentDay() {
			return new Date().getDate();
		}
		
		//:::::::::::::::::::::::::::::::::::::::::::
		//
		function calendarDrawTable() {
		
			var dayOfMonth 		= 1;
			var validDay 		= 0;
			var startDayOfWeek 	= getDayOfWeek(currentYear, currentMonth, dayOfMonth);
			var daysInMonth 	= getDaysInMonth(currentYear, currentMonth);
			var css_class 		= null; 
			
			var table = "<table cellspacing='0' cellpadding='0' border='0' class='saoJser'>";
			table = table + "<tr class='header'>";
			table = table + "  <td colspan='2' class='previous'><a href='javascript:saoJs_changeCalendarControlMonth(-1);'>&lt;</a> <a href='javascript:saoJs_changeCalendarControlYear(-1);'>&laquo;</a></td>";
			table = table + "  <td colspan='3' class='title'>" + months[currentMonth-1] + "<br>" + currentYear + "</td>";
			table = table + "  <td colspan='2' class='next'><a href='javascript:saoJs_changeCalendarControlYear(1);'>&raquo;</a> <a href='javascript:saoJs_changeCalendarControlMonth(1);'>&gt;</a></td>";
			table = table + "</tr>";
			table = table + "<tr><th>S</th><th>M</th><th>T</th><th>W</th><th>T</th><th>F</th><th>S</th></tr>";
			
			for(var week=0; week < 6; week++) {
				table = table + "<tr>";
					for(var dayOfWeek=0; dayOfWeek < 7; dayOfWeek++) {
						if(week == 0 && startDayOfWeek == dayOfWeek) {
							validDay = 1;
						} else if (validDay == 1 && dayOfMonth > daysInMonth) {
							validDay = 0;
						}
			
						if(validDay) {
							if (dayOfMonth == selectedDay && currentYear == selectedYear && currentMonth == selectedMonth) {
									css_class = 'current';
							} else if (dayOfWeek == 0 || dayOfWeek == 6) {
									css_class = 'weekend';
							} else {
									css_class = 'weekday';
							}
			
							table = table + "<td><a class='"+css_class+"' href=\"javascript:saoJs_setCalendarControlDate("+currentYear+","+currentMonth+","+dayOfMonth+")\">"+dayOfMonth+"</a></td>";
							dayOfMonth++;
						} else {
							table = table + "<td class='empty'>&nbsp;</td>";
						}
					}
				table = table + "</tr>";
			}
			
			table = table + "<tr class='header'><th colspan='7' style='padding: 3px;'><a href='javascript:saoJs_hideCalendarControl();'>Close</a></td></tr>";
			table = table + "</table>";
			
			return table;
		}
		
		//:::::::::::::::::::::::::::::::::::::::::::
		//
		this.show = show;
		function show(field) {
		
			if (dateField == field) {
				return;
			} else {
				dateField = field;
			}
		
			if(dateField) {
				try {
					var dateString 	= 	new String(dateField.value);
					var dateParts 	= 	dateString.split("/");
					selectedMonth 	= 	parseInt(dateParts[1],10);
					selectedDay 	= 	parseInt(dateParts[0],10);
					selectedYear 	= 	parseInt(dateParts[2],10);
				} catch(e) {}
			}
			
			if (!(selectedYear && selectedMonth && selectedDay)) {
				selectedMonth 	= 	getCurrentMonth();
				selectedDay 	= 	getCurrentDay();
				selectedYear 	= 	getCurrentYear();
			}
		
			currentMonth 		= 	selectedMonth;
			currentDay 			= 	selectedDay;
			currentYear 		= 	selectedYear;
		
			if(document.getElementById) {
				calendar 			= 	document.getElementById(calendarId);
				calendar.innerHTML 	= 	calendarDrawTable(currentYear, currentMonth);
			
				setElementProperty('display', 'block', 'calendarcontroliframe');
				setProperty('display', 'block');
			
				var fieldPos 	= 	new saoJs_positionInfo(dateField);
				var calendarPos = 	new saoJs_positionInfo(calendarId);
				var x 			= 	fieldPos.getElementLeft();
				var y 			= 	fieldPos.getElementBottom();
				
				if (window.ActiveXObject) {
					calculateBoder	=	7;
				} else {
					calculateBoder	=	0;
				}
				
				setProperty('left', (x + calculateBoder) + "px");
				setProperty('top', (y + calculateBoder) + "px");
				setElementProperty('left', (x + calculateBoder) + "px", 'calendarcontroliframe');
				setElementProperty('top', (y + calculateBoder) + "px", 'calendarcontroliframe');
				setElementProperty('width', calendarPos.getElementWidth() + "px", 'calendarcontroliframe');
				setElementProperty('height', calendarPos.getElementHeight() + "px", 'calendarcontroliframe');
			}
		}
		
		//----------------------------------------------------------
		this.hide = hide;
		function hide() {
			if(dateField) {
				setProperty('display', 'none');
				setElementProperty('display', 'none', 'calendarcontroliframe');
				dateField = null;
			}
		}
	}

	/** ------------------------------------------
	*
	*/
	var saoJs_calendarControl = new saoJs_M_CalendarControl();

	/** ------------------------------------------
	*
	*/
	function saoJs_showCalendarControl(textField,nwID) {
		
		var iiframe 		= 	 document.createElement("iframe");
		iiframe.id			=	"calendarcontroliframe"
		iiframe.src			=	"";
		iiframe.frameBorder	=	"0";
		iiframe.scrolling	=	"no";
		_nwID				=	nwID
		
		var iiframediv 		= 	 document.createElement("div");
		iiframediv.id		=	"calendarcontrol"
		
		document.body.appendChild(iiframe);
		document.body.appendChild(iiframediv);
		
		
		if(document.getElementById('plet_saoJs_dur_'+_nwID) != null) {
			document.getElementById('plet_saoJs_dur_'+_nwID).style.visibility = 'hidden'
		}
		
		if(document.getElementById('plet_saoJs_reg_'+_nwID) != null) {
			document.getElementById('plet_saoJs_reg_'+_nwID).style.visibility = 'hidden'
		}
		
		if(document.getElementById('plet_saoJs_cl_'+_nwID) != null) {
			document.getElementById('plet_saoJs_cl_'+_nwID).style.visibility = 'hidden'
		}
		
		if(document.getElementById('plet_saoJs_cs_'+_nwID) != null) {
			document.getElementById('plet_saoJs_cs_'+_nwID).style.visibility = 'hidden'
		}
		
		saoJs_calendarControl.show(textField);
	}
	
	/** ------------------------------------------
	*
	*/
	function saoJs_hideCalendarControl() {
		saoJs_calendarHideSelect();
		saoJs_calendarControl.hide();
	}
	
	/** ------------------------------------------
	*
	*/
	function saoJs_calendarHideSelect() {
		if(document.getElementById('plet_saoJs_dur_'+_nwID) != null) {
			document.getElementById('plet_saoJs_dur_'+_nwID).style.visibility = 'visible'
		}
		
		if(document.getElementById('plet_saoJs_reg_'+_nwID) != null) {
			document.getElementById('plet_saoJs_reg_'+_nwID).style.visibility = 'visible'
		}
		
		if(document.getElementById('plet_saoJs_cl_'+_nwID) != null) {
			document.getElementById('plet_saoJs_cl_'+_nwID).style.visibility = 'visible'
		}
		
		if(document.getElementById('plet_saoJs_cs_'+_nwID) != null) {
			document.getElementById('plet_saoJs_cs_'+_nwID).style.visibility = 'visible'
		}	
	}
	
	/** ------------------------------------------
	*
	*/
	function saoJs_setCalendarControlDate(year, month, day) {
		saoJs_calendarHideSelect();
		saoJs_calendarControl.setDate(year, month, day);
	}
	
	/** ------------------------------------------
	*
	*/
	function saoJs_changeCalendarControlYear(change) {
		  saoJs_calendarControl.changeYear(change);
	}
	
	/** ------------------------------------------
	*
	*/
	function saoJs_changeCalendarControlMonth(change) {
		  saoJs_calendarControl.changeMonth(change);
	}

