// JavaScript Document

	YAHOO.namespace("example.calendar");

	YAHOO.example.calendar.init = function() {

		function handleSelect1(type,args,obj) {
			var dates = args[0]; 
			var date = dates[0];
			var year = date[0], month = date[1], day = date[2];
			
			var txtDate1 = document.getElementById("from");
			var minM = document.getElementById("min_month");
			var minD = document.getElementById("min_day");
			var minY = document.getElementById("min_year");
			txtDate1.value = month + "/" + day + "/" + year;
			minM.value = month;
			minD.value = day;
			minY.value = year;
			
			if (txtDate1.value != "") {
				var minDate = month + "/" + day + "/" + year;
				YAHOO.example.calendar.cal2.cfg.setProperty("mindate", minDate);
				YAHOO.example.calendar.cal2.render();
			}
			YAHOO.example.calendar.cal1.hide();
		}

		function handleSelect2(type,args,obj) {
			var dates = args[0]; 
			var date = dates[0];
			var year = date[0], month = date[1], day = date[2];
			
			var txtDate2 = document.getElementById("to");
			var maxM = document.getElementById("max_month");
			var maxD = document.getElementById("max_day");
			var maxY = document.getElementById("max_year");
			txtDate2.value = month + "/" + day + "/" + year;
			maxM.value = month;
			maxD.value = day;
			maxY.value = year;
			
			if(txtDate2.value != "") {
				var maxDate = month + "/" + day + "/" + year;
				YAHOO.example.calendar.cal1.cfg.setProperty("maxdate", maxDate);
				YAHOO.example.calendar.cal1.render();
			}
			YAHOO.example.calendar.cal2.hide();
		}	
		
		
		//Onload Cal 1 and 2
		fnCallback1 = function() {
			//set defaults
			var url = window.location.href;
			//variable in url
			var varname1 = "min_month";
			var varname2 = "min_day";
			var varname3 = "min_year";
			var varname4 = "max_month";
			var varname5 = "max_day";
			var varname6 = "max_year";
			var varname7 = "from";
			var varname8 = "to";
			//set defaults
			var value1 = "";
			var value2 = "";
			var value3 = "";
			var value4 = "";
			var value5 = "";
			var value6 = "";
			var value7 = "";
			var value8 = "";
			
			//break apart variables
			x = url.indexOf('?');
	   	if (x != -1){
	   	var queryparts = url.split("?");
			var query = queryparts[1];
			
			var vars = query.split(/(;|&)/g);

  		for (i=0;i<vars.length;i++){
    		var parts = vars[i].split("=");
       	if (parts[0] == varname1){
      		value1 = parts[1];
    		}//end if
       	if (parts[0] == varname2){
      		value2 = parts[1];
    		}//end if
       	if (parts[0] == varname3){
      		value3 = parts[1];
    		}//end if
       	if (parts[0] == varname4){
      		value4 = parts[1];
    		}//end if
       	if (parts[0] == varname5){
      		value5 = parts[1];
    		}//end if
       	if (parts[0] == varname6){
      		value6 = parts[1];
    		}//end if																														
       	if (parts[0] == varname7){
      		value7 = parts[1];
    		}//end if	
       	if (parts[0] == varname8){
      		value8 = parts[1];
    		}//end if	    		
			}//end for
			
			//escape
			value7 = unescape(value7);
			value8 = unescape(value8);
			value7 = value7.replace(/~2F/g,'/');
			value8 = value8.replace(/~2F/g,'/');
		
			document.getElementById(varname1).value = value1;
			document.getElementById(varname2).value = value2;
			document.getElementById(varname3).value = value3;
			document.getElementById(varname4).value = value4;
			document.getElementById(varname5).value = value5;
			document.getElementById(varname6).value = value6;
			document.getElementById(varname7).value = value7;
			document.getElementById(varname8).value = value8;
			
			var txtDate1 = document.getElementById("from");
			var minM = document.getElementById("min_month");
			var minD = document.getElementById("min_day");
			var minY = document.getElementById("min_year"); 
			var txtDate2 = document.getElementById("to");
			var maxM = document.getElementById("max_month");
			var maxD = document.getElementById("max_day");
			var maxY = document.getElementById("max_year");
			var minDate = value1 + "/" + value2 + "/" + value3;
			var maxDate = value4 + "/" + value5 + "/" + value6;
			if (txtDate1.value != "") {
				YAHOO.example.calendar.cal1.setMonth( value1 - 1 );
				YAHOO.example.calendar.cal1.setYear( value3 );
				YAHOO.example.calendar.cal1.cfg.setProperty("maxdate", maxDate);
				YAHOO.example.calendar.cal1.render();
				}		
			if(txtDate2.value != "") {
				YAHOO.example.calendar.cal2.setMonth( value4 - 1 );
				YAHOO.example.calendar.cal2.setYear( value6 );
				YAHOO.example.calendar.cal2.cfg.setProperty("mindate", minDate);
				YAHOO.example.calendar.cal2.render();		
			}	
		}
		}
		
		var navConfig = {   
				strings : {   
						month: "Choose Month",   
						year: "Enter Year",   
						submit: "OK",   
						cancel: "Cancel",   
						invalidYear: "Please enter a valid year"  
				},   
				monthFormat: YAHOO.widget.Calendar.LONG,   
				initialFocus: "year"  
		};   


		// From Calendar
		YAHOO.example.calendar.cal1 = new YAHOO.widget.Calendar("cal1","cal1Container",  
																	{ title:"Select From Date:",
																	  close:true,
																	  mindate:"",
																	  maxdate:"",
																	  navigator:true });
		
		YAHOO.example.calendar.cal1.selectEvent.subscribe(handleSelect1, YAHOO.example.calendar.cal1, true);
		YAHOO.example.calendar.cal1.render();
		
		// To Calendar
		YAHOO.example.calendar.cal2 = new YAHOO.widget.Calendar("cal2","cal2Container",  
																	{ title:"Select To Date:",
																	  close:true,
																	  mindate:"",
																	  maxdate:"",
																	  navigator:true });
		
		YAHOO.example.calendar.cal2.selectEvent.subscribe(handleSelect2, YAHOO.example.calendar.cal2, true);
		YAHOO.example.calendar.cal2.render();
		
		// Listener to show the Calendar when the button is clicked and update Calendar
		YAHOO.util.Event.addListener("showCal1", "click", YAHOO.example.calendar.cal1.show, YAHOO.example.calendar.cal1, true);
		YAHOO.util.Event.addListener("showCal2", "click", YAHOO.example.calendar.cal2.show, YAHOO.example.calendar.cal2, true);
		YAHOO.util.Event.addListener("from", "click", YAHOO.example.calendar.cal1.show, YAHOO.example.calendar.cal1, true);
		YAHOO.util.Event.addListener("to", "click", YAHOO.example.calendar.cal2.show, YAHOO.example.calendar.cal2, true);
		
		//On Available Event
		YAHOO.util.Event.onAvailable("cal2Container", fnCallback1);		

	}

	YAHOO.util.Event.onDOMReady(YAHOO.example.calendar.init);
