Monday, January 23, 2012

how to disbale dates after current date in javascript calender

here is my java script code that displays all the days ,but i want to display only upto current date or disable the reamaining days in calender. howww?????please solve this.
var winCal;
var dtToday=new Date();
var Cal;
var docCal;
var MonthName=["January", "February", "March", "April", "May", "June","July",
    "August", "September", "October", "November", "December"];
var WeekDayName=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];   
var exDateTime;//Existing Date and Time

//Configurable parameters
var cnTop="200";//top coordinate of calendar window.
var cnLeft="500";//left coordinate of calendar window
var WindowTitle ="DateTime Picker";//Date Time Picker title.
var WeekChar=2;//number of character for week day. if 2 then Mo,Tu,We. if 3 then Mon,Tue,Wed.
var CellWidth=20;//Width of day cell.
var DateSeparator="-";//Date Separator, you can change it to "/" if you want.
var TimeMode=24;//default TimeMode value. 12 or 24

var ShowLongMonth=true;//Show long month name in Calendar header. example: "January".
var ShowMonthYear=true;//Show Month and Year in Calendar header.
var MonthYearColor="#cc0033";//Font Color of Month and Year in Calendar header.
var WeekHeadColor="#0099CC";//Background Color in Week header.
var SundayColor="#6699FF";//Background color of Sunday.
var SaturdayColor="#CCCCFF";//Background color of Saturday.
var WeekDayColor="white";//Background color of weekdays.
var FontColor="blue";//color of font in Calendar day cell.
var TodayColor="#FFFF33";//Background color of today.
var SelDateColor="#FFFF99";//Backgrond color of selected date in textbox.
var YrSelColor="#cc0033";//color of font of Year selector.
var ThemeBg="";//Background image of Calendar window.
//end Configurable parameters
//end Global variable

function NewCal(pCtrl,pFormat,pShowTime,pTimeMode)
{
    Cal=new Calendar(dtToday);
    if ((pShowTime!=null) && (pShowTime))
    {
        Cal.ShowTime=true;
        if ((pTimeMode!=null) &&((pTimeMode=='12')||(pTimeMode=='24')))
        {
            TimeMode=pTimeMode;
        }       
    }   
    if (pCtrl!=null)
        Cal.Ctrl=pCtrl;
    if (pFormat!=null)
        Cal.Format=pFormat.toUpperCase();
   
    exDateTime=document.getElementById(pCtrl).value;
    if (exDateTime!="")//Parse Date String
    {
        var Sp1;//Index of Date Separator 1
        var Sp2;//Index of Date Separator 2
        var tSp1;//Index of Time Separator 1
        var tSp1;//Index of Time Separator 2
        var strMonth;
        var strDate;
        var strYear;
        var intMonth;
        var YearPattern;
        var strHour;
        var strMinute;
        var strSecond;
        //parse month
        Sp1=exDateTime.indexOf(DateSeparator,0)
        Sp2=exDateTime.indexOf(DateSeparator,(parseInt(Sp1)+1));
       
        if ((Cal.Format.toUpperCase()=="DDMMYYYY") || (Cal.Format.toUpperCase()=="DDMMMYYYY"))
        {
            strMonth=exDateTime.substring(Sp1+1,Sp2);
            strDate=exDateTime.substring(0,Sp1);
        }
        else if ((Cal.Format.toUpperCase()=="MMDDYYYY") || (Cal.Format.toUpperCase()=="MMMDDYYYY"))
        {
            strMonth=exDateTime.substring(0,Sp1);
            strDate=exDateTime.substring(Sp1+1,Sp2);
        }
        if (isNaN(strMonth))
            intMonth=Cal.GetMonthIndex(strMonth);
        else
            intMonth=parseInt(strMonth,10)-1;   
        if ((parseInt(intMonth,10)>=0) && (parseInt(intMonth,10)<12))
            Cal.Month=intMonth;
        //end parse month
        //parse Date
        if ((parseInt(strDate,10)<=Cal.GetMonDays()) && (parseInt(strDate,10)>=1))
            Cal.Date=strDate;
        //end parse Date
        //parse year
        strYear=exDateTime.substring(Sp2+1,Sp2+5);
        YearPattern=/^\d{4}$/;
        if (YearPattern.test(strYear))
            Cal.Year=parseInt(strYear,10);
        //end parse year
        //parse time
        if (Cal.ShowTime==true)
        {
            tSp1=exDateTime.indexOf(":",0)
            tSp2=exDateTime.indexOf(":",(parseInt(tSp1)+1));
            strHour=exDateTime.substring(tSp1,(tSp1)-2);
            Cal.SetHour(strHour);
            strMinute=exDateTime.substring(tSp1+1,tSp2);
            Cal.SetMinute(strMinute);
            strSecond=exDateTime.substring(tSp2+1,tSp2+3);
            Cal.SetSecond(strSecond);
        }   
    }
    winCal=window.open("","DateTimePicker","toolbar=0,status=0,menubar=0,fullscreen=no,width=195,height=245,resizable=0,top="+cnTop+",left="+cnLeft);
    docCal=winCal.document;
    RenderCal();
}

function RenderCal()
{
    var vCalHeader;
    var vCalData;
    var vCalTime;
    var i;
    var j;
    var SelectStr;
    var vDayCount=0;
    var vFirstDay;

    docCal.open();
    docCal.writeln("<html><head><title>"+WindowTitle+"</title>");
    docCal.writeln("<script>var winMain=window.opener;</script>");
    docCal.writeln("</head><body background='"+ThemeBg+"' link="+FontColor+" vlink="+FontColor+"><form name='Calendar'>");

    vCalHeader="<table border=1 cellpadding=1 cellspacing=1 width='100%' align=\"center\" valign=\"top\">\n";
    //Month Selector
    vCalHeader+="<tr>\n<td colspan='7'><table border=0 width='100%' cellpadding=0 cellspacing=0><tr><td align='left'>\n";
    vCalHeader+="<select name=\"MonthSelector\" onChange=\"javascript:winMain.Cal.SwitchMth(this.selectedIndex);winMain.RenderCal();\">\n";
    for (i=0;i<12;i++)
    {
        if (i==Cal.Month)
            SelectStr="Selected";
        else
            SelectStr="";   
        vCalHeader+="<option "+SelectStr+" value >"+MonthName[i]+"\n";
    }
    vCalHeader+="</select></td>";
    //Year selector
    vCalHeader+="\n<td align='right'><a href=\"javascript:winMain.Cal.DecYear();winMain.RenderCal()\"><b><font color=\""+YrSelColor+"\"><</font></b></a><font face=\"Verdana\" color=\""+YrSelColor+"\" size=2><b> "+Cal.Year+" </b></font><a href=\"javascript:winMain.Cal.IncYear();winMain.RenderCal()\"><b><font color=\""+YrSelColor+"\">></font></b></a></td></tr></table></td>\n";   
    vCalHeader+="</tr>";
    //Calendar header shows Month and Year
    if (ShowMonthYear)
        vCalHeader+="<tr><td colspan='7'><font face='Verdana' size='2' align='center' color='"+MonthYearColor+"'><b>"+Cal.GetMonthName(ShowLongMonth)+" "+Cal.Year+"</b></font></td></tr>\n";
    //Week day header
    vCalHeader+="<tr bgcolor="+WeekHeadColor+">";
    for (i=0;i<7;i++)
    {
        vCalHeader+="<td align='center'><font face='Verdana' size='2'>"+WeekDayName[i].substr(0,WeekChar)+"</font></td>";
    }
    vCalHeader+="</tr>";   
    docCal.write(vCalHeader);
   
    //Calendar detail
    CalDate=new Date(Cal.Year,Cal.Month);
    CalDate.setDate(1);
    vFirstDay=CalDate.getDay();
    vCalData="<tr>";
    for (i=0;i<vFirstDay;i++)
    {
        vCalData=vCalData+GenCell();
        vDayCount=vDayCount+1;
    }
    for (j=1;j<=Cal.GetMonDays();j++)
    {
        var strCell;
        vDayCount=vDayCount+1;
        if ((j==dtToday.getDate())&&(Cal.Month==dtToday.getMonth())&&(Cal.Year==dtToday.getFullYear()))
            strCell=GenCell(j,true,TodayColor);//Highlight today's date
        else
        {
            if (j==Cal.Date)
            {
                strCell=GenCell(j,true,SelDateColor);
            }
            else
            {   
                if (vDayCount%7==0)
                    strCell=GenCell(j,false,SaturdayColor);
                else if ((vDayCount+6)%7==0)
                    strCell=GenCell(j,false,SundayColor);
                else
                    strCell=GenCell(j,null,WeekDayColor);
            }       
        }                       
        vCalData=vCalData+strCell;

        if((vDayCount%7==0)&&(j<Cal.GetMonDays()))
        {
            vCalData=vCalData+"</tr>\n<tr>";
        }
    }
    docCal.writeln(vCalData);   
    //Time picker
    if (Cal.ShowTime)
    {
        var showHour;
        showHour=Cal.getShowHour();       
        vCalTime="<tr>\n<td colspan='7' align='center'>";
        vCalTime+="<input type='text' name='hour' maxlength=2 size=1 style=\"WIDTH: 22px\" value="+showHour+" onchange=\"javascript:winMain.Cal.SetHour(this.value)\">";
        vCalTime+=" : ";
        vCalTime+="<input type='text' name='minute' maxlength=2 size=1 style=\"WIDTH: 22px\" value="+Cal.Minutes+" onchange=\"javascript:winMain.Cal.SetMinute(this.value)\">";
        vCalTime+=" : ";
        vCalTime+="<input type='text' name='second' maxlength=2 size=1 style=\"WIDTH: 22px\" value="+Cal.Seconds+" onchange=\"javascript:winMain.Cal.SetSecond(this.value)\">";
        if (TimeMode==12)
        {
            var SelectAm =(parseInt(Cal.Hours,10)<12)? "Selected":"";
            var SelectPm =(parseInt(Cal.Hours,10)>=12)? "Selected":"";

            vCalTime+="<select name=\"ampm\" onchange=\"javascript:winMain.Cal.SetAmPm(this.options[this.selectedIndex].value);\">";
            vCalTime+="<option "+SelectAm+" value=\"AM\">AM</option>";
            vCalTime+="<option "+SelectPm+" value=\"PM\">PM<option>";
            vCalTime+="</select>";
        }   
        vCalTime+="\n</td>\n</tr>";
        docCal.write(vCalTime);
    }   
    //end time picker
    docCal.writeln("\n</table>");
    docCal.writeln("</form></body></html>");
    docCal.close();
}

function GenCell(pValue,pHighLight,pColor)//Generate table cell with value
{
    var PValue;
    var PCellStr;
    var vColor;
    var vHLstr1;//HighLight string
    var vHlstr2;
    var vTimeStr;
   
    if (pValue==null)
        PValue="";
    else
        PValue=pValue;
   
    if (pColor!=null)
        vColor="bgcolor=\""+pColor+"\"";
    else
        vColor="";   
    if ((pHighLight!=null)&&(pHighLight))
        {vHLstr1="color='red'><b>";vHLstr2="</b>";}
    else
        {vHLstr1=">";vHLstr2="";}   
   
    if (Cal.ShowTime)
    {
        vTimeStr="winMain.document.getElementById('"+Cal.Ctrl+"').value+=' '+"+"winMain.Cal.getShowHour()"+"+':'+"+"winMain.Cal.Minutes"+"+':'+"+"winMain.Cal.Seconds";
        if (TimeMode==12)
            vTimeStr+="+' '+winMain.Cal.AMorPM";
    }   
    else
        vTimeStr="";       
    PCellStr="<td "+vColor+" width="+CellWidth+" align='center'><font face='verdana' size='2'"+vHLstr1+"<a href=\"javascript:winMain.document.getElementById('"+Cal.Ctrl+"').value='"+Cal.FormatDate(PValue)+"';"+vTimeStr+";window.close();\">"+PValue+"</a>"+vHLstr2+"</font></td>";
    return PCellStr;
}

function Calendar(pDate,pCtrl)
{
    //Properties
    this.Date=pDate.getDate();//selected date
    this.Month=pDate.getMonth();//selected month number
    this.Year=pDate.getFullYear();//selected year in 4 digits
    this.Hours=pDate.getHours();   
   
    if (pDate.getMinutes()<10)
        this.Minutes="0"+pDate.getMinutes();
    else
        this.Minutes=pDate.getMinutes();
   
    if (pDate.getSeconds()<10)
        this.Seconds="0"+pDate.getSeconds();
    else       
        this.Seconds=pDate.getSeconds();
       
    this.MyWindow=winCal;
    this.Ctrl=pCtrl;
    this.Format="ddMMyyyy";
    this.Separator=DateSeparator;
    this.ShowTime=false;
    if (pDate.getHours()<12)
        this.AMorPM="AM";
    else
        this.AMorPM="PM";   
}

function GetMonthIndex(shortMonthName)
{
    for (i=0;i<12;i++)
    {
        if (MonthName[i].substring(0,3).toUpperCase()==shortMonthName.toUpperCase())
        {    return i;}
    }
}
Calendar.prototype.GetMonthIndex=GetMonthIndex;

function IncYear()
{    Cal.Year++;}
Calendar.prototype.IncYear=IncYear;

function DecYear()
{    Cal.Year--;}
Calendar.prototype.DecYear=DecYear;
   
function SwitchMth(intMth)
{    Cal.Month=intMth;}
Calendar.prototype.SwitchMth=SwitchMth;

function SetHour(intHour)
{   
    var MaxHour;
    var MinHour;
    if (TimeMode==24)
    {    MaxHour=23;MinHour=0}
    else if (TimeMode==12)
    {    MaxHour=12;MinHour=1}
    else
        alert("TimeMode can only be 12 or 24");       
    var HourExp=new RegExp("^\\d\\d$");
    if (HourExp.test(intHour) && (parseInt(intHour,10)<=MaxHour) && (parseInt(intHour,10)>=MinHour))
    {   
        if ((TimeMode==12) && (Cal.AMorPM=="PM"))
        {
            if (parseInt(intHour,10)==12)
                Cal.Hours=12;
            else   
                Cal.Hours=parseInt(intHour,10)+12;
        }   
        else if ((TimeMode==12) && (Cal.AMorPM=="AM"))
        {
            if (intHour==12)
                intHour-=12;
            Cal.Hours=parseInt(intHour,10);
        }
        else if (TimeMode==24)
            Cal.Hours=parseInt(intHour,10);   
    }
}
Calendar.prototype.SetHour=SetHour;

function SetMinute(intMin)
{
    var MinExp=new RegExp("^\\d\\d$");
    if (MinExp.test(intMin) && (intMin<60))
        Cal.Minutes=intMin;
}
Calendar.prototype.SetMinute=SetMinute;

function SetSecond(intSec)
{   
    var SecExp=new RegExp("^\\d\\d$");
    if (SecExp.test(intSec) && (intSec<60))
        Cal.Seconds=intSec;
}
Calendar.prototype.SetSecond=SetSecond;

function SetAmPm(pvalue)
{
    this.AMorPM=pvalue;
    if (pvalue=="PM")
    {
        this.Hours=(parseInt(this.Hours,10))+12;
        if (this.Hours==24)
            this.Hours=12;
    }   
    else if (pvalue=="AM")
        this.Hours-=12;   
}
Calendar.prototype.SetAmPm=SetAmPm;

function getShowHour()
{
    var finalHour;
    if (TimeMode==12)
    {
        if (parseInt(this.Hours,10)==0)
        {
            this.AMorPM="AM";
            finalHour=parseInt(this.Hours,10)+12;   
        }
        else if (parseInt(this.Hours,10)==12)
        {
            this.AMorPM="PM";
            finalHour=12;
        }       
        else if (this.Hours>12)
        {
            this.AMorPM="PM";
            if ((this.Hours-12)<10)
                finalHour="0"+((parseInt(this.Hours,10))-12);
            else
                finalHour=parseInt(this.Hours,10)-12;   
        }
        else
        {
            this.AMorPM="AM";
            if (this.Hours<10)
                finalHour="0"+parseInt(this.Hours,10);
            else
                finalHour=this.Hours;   
        }
    }
    else if (TimeMode==24)
    {
        if (this.Hours<10)
            finalHour="0"+parseInt(this.Hours,10);
        else   
            finalHour=this.Hours;
    }   
    return finalHour;   
}               
Calendar.prototype.getShowHour=getShowHour;       

function GetMonthName(IsLong)
{
    var Month=MonthName[this.Month];
    if (IsLong)
        return Month;
    else
        return Month.substr(0,3);
}
Calendar.prototype.GetMonthName=GetMonthName;

function GetMonDays()//Get number of days in a month
{
    var DaysInMonth=[31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
    if (this.IsLeapYear())
    {
        DaysInMonth[1]=29;
    }   
    return DaysInMonth[this.Month];   
}
Calendar.prototype.GetMonDays=GetMonDays;

function IsLeapYear()
{
    if ((this.Year%4)==0)
    {
        if ((this.Year%100==0) && (this.Year%400)!=0)
        {
            return false;
        }
        else
        {
            return true;
        }
    }
    else
    {
        return false;
    }
}
Calendar.prototype.IsLeapYear=IsLeapYear;

function FormatDate(pDate)
{
    if (this.Format.toUpperCase()=="DDMMYYYY")
        return (pDate+DateSeparator+(this.Month+1)+DateSeparator+this.Year);
    else if (this.Format.toUpperCase()=="DDMMMYYYY")
        return (pDate+DateSeparator+this.GetMonthName(false)+DateSeparator+this.Year);
    else if (this.Format.toUpperCase()=="MMDDYYYY")
        return ((this.Month+1)+DateSeparator+pDate+DateSeparator+this.Year);
    else if (this.Format.toUpperCase()=="MMMDDYYYY")
        return (this.GetMonthName(false)+DateSeparator+pDate+DateSeparator+this.Year);           
}
Calendar.prototype.FormatDate=FormatDate;    

Monday, September 19, 2011

Friday, June 3, 2011

Facebook Launching Music Service With Spotify??


Facebook Launching Music Service With Spotify??

According to Forbes, Facebook may be launching a music streaming service any day now. Sources familiar with the situation have divulged that the giant social network is partnering up with European-based music service, Spotify.
The service is reportedly going through testing at the moment and could be available two weeks from now. When launched, it will be an integrated feature that youll find on the left side of your newsfeed right below your usual photos and events icons. When you click on the Spotify icon, the service will install on your desktop in the background and give you access to its library of millions of songs.
You would then be able to access the music via Facebook, and even listen to the same music simultaneously with your friends. Its not certain yet whether it will be called Facebook Music or Spotify on Facebook but either way its only available to those in countries where Spotify is supported. Currently, that excludes folks in the United States.
Spotify is still in the process of negotiating with labels here in the U.S., but as weve seen how unsuccessful Google has been with label negotiations for their Music Beta, it could certainly be a long road ahead. It also makes sense that the once rumored Google and Spotify deal didnt pan out.









+1 from google(competing with facebook share / send / like)

(+1) SHARING BUTTON from google(competing with facebook share / send / like)








google has released an alternative to the Facebook and Twitter Sharing buttons named +1.If you like something that you find on the web, you can hit the +1 button, and your +1's will help friends, contacts, and others on the web find the best stuff when they search


. This tutorial will guide you on adding the same to your Blogger Blog.



Checkout this video to know more about the +1 button

Adding Google Plus one (+1) button to Blogger

Generate the +1 button code using the following generator.

NOTE(The codes and the tutorial will be updated with the options that you make using the generator)


Configure the Button Demo


Button Type
Language
Float
Location of the Button
Display
 Go to Blogger Dashboard > Design > Edit HTML and click on the button which says “Expand widget Templates”. Look for </head> and immediately above that paste


<script type="text/javascript" src="http://apis.google.com/js/plusone.js">
{lang: 'en-US'}
</script>

 Now look for <data:post.body/> and immediately below that paste


<b:if cond='data:blog.pageType == &quot;item&quot;'>
<div>
<g:plusone size="standard" expr:href="data:post.url"/>
</div>
</b:if>

6.Save the template, and you should see the +1 buttons on your blogger blog.
Loved the tutorial? then +1 it