function getScrollXY()
{
  var scrOfX = 0, scrOfY = 0;
  if( typeof( window.pageYOffset ) == 'number' ) {
    //Netscape compliant
    scrOfY = window.pageYOffset;
    scrOfX = window.pageXOffset;
  } else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
    //DOM compliant
    scrOfY = document.body.scrollTop;
    scrOfX = document.body.scrollLeft;
  } else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
    //IE6 standards compliant mode
    scrOfY = document.documentElement.scrollTop;
    scrOfX = document.documentElement.scrollLeft;
  }
  return [ scrOfX, scrOfY ];
}

function windowSize()
{
  var myWidth = 0, myHeight = 0;
  if( typeof( window.innerWidth ) == 'number' )
  {
    myWidth = window.innerWidth;
    myHeight = window.innerHeight;
  }
  else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) )
  {
    myWidth = document.documentElement.clientWidth;
    myHeight = document.documentElement.clientHeight;
  }
  else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) )
  {
    myWidth = document.body.clientWidth;
    myHeight = document.body.clientHeight;
  }
  return [myWidth,myHeight];
}
var mouseCoord = new Array();
function setMouseCoord( e )
{
	var IE = document.all?true:false
	if (!IE) document.captureEvents(Event.MOUSEMOVE)
	if(IE)
	{
		var xy = getScrollXY();
		mouseCoord[0] = event.clientX + xy[0];
		mouseCoord[1] = event.clientY + xy[1];
	}
	else
	{
		mouseCoord[0] = e.pageX + document.body.scrollLeft;
		mouseCoord[1] = e.pageY + document.body.scrollTop;
	}
	return mouseCoord;
}

var ajaxHttpReq_ = false;
function ajReq_( uri, myFunction )
{
	ajaxHttpReq_ = CreateXHR();
	ajaxHttpReq_.onreadystatechange = function(){
		eval( myFunction+'()' );
	};
	ajaxHttpReq_.open('GET', uri, true);
	ajaxHttpReq_.send( null );
}

function CreateXHR()
{
	var xmlHttp;
	try { xmlHttp=new XMLHttpRequest(); }
	catch (e)
	{
		try { xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); }
		catch (e)
		{
			try { xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); }
			catch (e) { return false; }
		}
	}
	return xmlHttp;
}

var fillInElement = false;
function evalShowCalendar()
{
	if( ajaxHttpReq_.readyState == 4 )
	{
		fillInElement.innerHTML = ajaxHttpReq_.responseText;
	}
}

function showCalendar( array, move )
{
	fillInElement = document.getElementById(array[0]);
	var uri = '/create.search.calendar.php?datestart='+array[2]+'&monthcount='+array[3]+'&parent='+array[1]+'&lang='+array[4];
	ajReq_( uri, 'evalShowCalendar' );
	var parN = fillInElement.parentNode;
	if( move == true )
	{
		closeCalendar();
		parN.style.top =  mouseCoord[1]+'px';
		parN.style.left =  mouseCoord[0]+'px';
		parN.style.display = 'block';
		parN.onmousemove = function(e){
			showCalendarTooltip(0, e);
		}
	}
	var windowsize = windowSize();
	parN2 = document.getElementById('c_con');
	parN2.style.width = ( windowsize[0]-20 )+'px';
	parN2.style.height = windowsize[0]+'px';
	parN2.onclick = function( parN2 ){
		closeCalendar();
	};
}

function closeCalendar()
{
	//destroying array
	calFromTo = new Array();
	fillInElement.parentNode.style.display = 'none';
	document.getElementById('calendartooltip').style.display = 'none';
	fillInElement.parentNode.onmousemove = function(){}
	parN2 = document.getElementById('c_con');
	parN2.style.width = '0px';
	parN2.style.height = '0px';
}

function showCalendarTooltip( tooltipType, e )
{
	var coord = setMouseCoord(e);
	var editObj = document.getElementById( 'calendartooltip' );
	editObj.innerHTML = check_in_out_TEXT[tooltipType];
	editObj.style.display = 'block';
	editObj.style.top = ( coord[1]-10 )+'px';
	editObj.style.left = ( coord[0]+10 )+'px';
}

function getObjByNodeName( objList, nname )
{
	var nlen = objList.length;
	for( i=0;i<nlen;i++ )
	{
		if( objList[i].name == nname )
			break;
	}
	return objList[i];
}
var calFromTo = new Array();
var check_in_out_TEXT = new Array();
function onSelectDate( limitObj, parent_form_id, date_from, days, a_date_input, d_date_input )
{
	if( calFromTo.length == 0 )
	{
		var myObj = getObjByNodeName( document.getElementById( parent_form_id ).getElementsByTagName('input'), a_date_input );
		calFromTo[0] = new Array();
		calFromTo[0][0] = myObj;
		calFromTo[0][1] = date_from;
		calFromTo[0][2] = days;
		calFromTo[0][3] = limitObj;
		calFromTo[0][0].value = calFromTo[0][1];
		limitObj.style.background = 'white';
		limitObj.style.color = 'red';
		limitObj.style.fontWeight = 'bold';
		document.getElementById( 'choozedates_' ).onmousemove = function(e){
			showCalendarTooltip(1, e);
		}
	}
	else if( calFromTo.length == 1 )
	{
		if( days <= calFromTo[0][2] )
			return false;
		else
		{
			if( (calFromTo[0][2]+30) <= days )
				return false;
			else
			{
				var myObj = getObjByNodeName( document.getElementById( parent_form_id ).getElementsByTagName('input'), 'days' );
				calFromTo[1] = new Array();
				calFromTo[1][0] = myObj;
				calFromTo[1][1] = date_from;
				calFromTo[1][2] = days;
				calFromTo[1][3] = limitObj;
				var _days = calFromTo[1][2]-calFromTo[0][2];
				calFromTo[0][0].value = calFromTo[0][1];
				calFromTo[1][0].value = _days;
				var mySecObj = getObjByNodeName( document.getElementById( parent_form_id ).getElementsByTagName('input'), d_date_input );
				mySecObj.value = calFromTo[1][1];
				closeCalendar();
			}
		}
	}
}