﻿YAHOO.util.Event.addListener(window, "load", onPageLoad);
var reviewPopup, downloadPopup, tutorialPopup;

function onPageLoad() {
    enhanceDemosReviewsFromMarkup();
    enhanceDemosDownloadsFromMarkup();
    enhanceTutorialsFromMarkup();
    
    reviewPopup= new YAHOO.widget.Dialog("reviewPopup", { width:"320px", 
                                                        visible:false, 
                                                        underlay:"shadow", 
                                                        fixedcenter:true, 
                                                        constraintoviewport:true, 
                                                        buttons: [{text:"Close", handler:closeDialog, isDefault:true }],
                                                        effect:{effect:YAHOO.widget.ContainerEffect.FADE,duration:0.25} } );
    reviewPopup.render();
    
    downloadPopup = new YAHOO.widget.Dialog("downloadPopup", { width:"320px", 
                                                              visible:false, 
                                                              underlay:"shadow", 
                                                              fixedcenter:true, 
                                                              constraintoviewport:true,
                                                              buttons: [{text:"Close", handler:closeDialog, isDefault:true }],
                                                              effect:{effect:YAHOO.widget.ContainerEffect.FADE,duration:0.25} } );
    downloadPopup.render();
    
    tutorialPopup = new YAHOO.widget.Dialog("tutorialPopup", { width:"320px", 
                                                               visible:false, 
                                                               underlay:"shadow", 
                                                               fixedcenter:true, 
                                                               constraintoviewport:true,
                                                               buttons: [{text:"Close", handler:closeDialog, isDefault:true }],
                                                               effect:{effect:YAHOO.widget.ContainerEffect.FADE,duration:0.25} } );
    tutorialPopup.render();    
}

function closeDialog() {
    this.cancel();
}
function demosConfirmDelete() {
	if (confirm('Are you sure you want to delete this demo?')) {
		return true;
	} else {
		return false;
	}
}

function formatTitle(elCell, oRecord, oColumn, oData) {
    if (YAHOO.lang.isString(oData)) {
        var href = oRecord.getData('href');
        var title = oRecord.getData('fulltitle');        
        if (YAHOO.lang.isString(href) && href.length) {
            if (oRecord.getData('unread') == "true") {
                elCell.innerHTML = '<a style="font-size:11px;font-weight:bold;" title="' + title + '" href="' + href + '">' + oData + '</a>';
            }
            else {
                elCell.innerHTML = '<a style="font-size:11px;" title="' + title + '" href="' + href + '">' + oData + '</a>';
            }
        }
        
    }
}

function formatPoster(elCell, oRecord, oColumn, oData) {
    if (YAHOO.lang.isString(oData)) {
        if (oRecord.getData('unread') == "true") {
            elCell.innerHTML = '<span style="font-size:11px;font-weight: bold;">' + oData + '</span>';                
        }
        else {
            elCell.innerHTML = '<span style="font-size:11px;">' + oData + '</span>';
        }                
    }
}

function formatBold(elCell, oRecord, oColumn, oData) {
    if (oRecord.getData('unread') == "true") {
        elCell.innerHTML = '<span style="font-size:11px;font-weight: bold;">' + oData + '</span>';                
    }
    else {
        elCell.innerHTML = '<span style="font-size:11px;">' + oData + '</span>';
    }                
}

function formatDate(elCell, oRecord, oColumn, oData) {
	    var oDate = oData;
	    var htmlString;
	    
	    var sMonth; 
	    var year = oDate.getFullYear();
	    switch(oDate.getMonth()) { 
	        case 0: 
	            sMonth = "Jan."; 
	            break; 
	        case 1: 
	            sMonth = "Feb."; 
	            break; 
	        case 2: 
	            sMonth = "Mar."; 
	            break; 
	        case 3: 
	            sMonth = "Apr."; 
	            break; 
	        case 4: 
	            sMonth = "May."; 
	            break; 
	        case 5: 
	            sMonth = "Jun."; 
	            break; 
	        case 6: 
	            sMonth = "Jul."; 
	            break; 
	        case 7: 
	            sMonth = "Aug."; 
	            break; 
	        case 8: 
	            sMonth = "Sep."; 
	            break; 
	        case 9: 
	            sMonth = "Oct."; 
	            break; 
	        case 10: 
	            sMonth = "Nov."; 
	            break; 
	        case 11: 
	            sMonth = "Dec."; 
	            break; 
	    } 
	    if (year < 2002)
	        htmlString = "<center>-</center>";
	    else
	        htmlString = sMonth + " " + oDate.getDate()  + ", " + oDate.getFullYear(); 	        
	        
	    if (oRecord.getData('unread') == "true")
	        htmlString = '<span style="font-weight:bold;font-size:11px;">' + htmlString + '</span>';
	    else
	        htmlString = '<span style="font-size:11px;">' + htmlString + '</span>';
	        
	    elCell.innerHTML = htmlString;
}

function enhanceDemosReviewsFromMarkup() {
            var columnDefs = [
            {key:"demoname",label:"Demo Name",width:210,formatter:formatTitle,sortable:true},
            {key:"postedby",label:"Posted By",width:116,formatter:formatPoster,sortable:true},
            {key:"dateposted",label:"Date Posted",width:80,formatter:formatDate,sortable:true},
            {key:"duedate",label:"Due Date",width:70,formatter:formatDate,sortable:true},
            {key:"review",label:"",width:40,formatter:formatBold,sortable:false},
            {key:"remove",label:"",width:120,formatter:formatBold,sortable:false}];
        
        this.dataSource = new YAHOO.util.DataSource(YAHOO.util.Dom.get("tblDemosReview"));
        this.dataSource.responseType = YAHOO.util.DataSource.TYPE_HTMLTABLE;
        this.dataSource.responseSchema = {
            fields: [{key:"demoname",parser:YAHOO.util.DataSource.parseString},
                    {key:"postedby",parser:YAHOO.util.DataSource.parseString},
                    {key:"dateposted",parser:YAHOO.util.DataSource.parseDate},
                    {key:"duedate",parser:YAHOO.util.DataSource.parseDate},
                    {key:"review"},
                    {key:"remove"},
                    {key:"href"},
                    {key:"unread"},
                    {key:"fulltitle"}]};
                    
        this.dataTable = new YAHOO.widget.DataTable("divDemosReview", columnDefs, this.dataSource,
            {sortedBy:{key:'dateposted',dir:'desc'}}
        );
}

function enhanceDemosDownloadsFromMarkup() {
            var columnDefs = [
            {key:"demoname",label:"Demo Name",width:210,formatter:formatTitle,sortable:true},
            {key:"postedby",label:"Posted By",width:116,formatter:formatPoster,sortable:true},
            {key:"dateposted",label:"Date Posted",width:80,formatter:formatDate,sortable:true},
            {key:"duedate",label:"",width:70,sortable:false},
            {key:"review",label:"",width:40,formatter:formatBold,sortable:false},
            {key:"remove",label:"",width:120,formatter:formatBold,sortable:false}];
        
        this.dataSource = new YAHOO.util.DataSource(YAHOO.util.Dom.get("tblDemosDownload"));
        this.dataSource.responseType = YAHOO.util.DataSource.TYPE_HTMLTABLE;
        this.dataSource.responseSchema = {
            fields: [{key:"demoname",parser:YAHOO.util.DataSource.parseString},
                    {key:"postedby",parser:YAHOO.util.DataSource.parseString},
                    {key:"dateposted",parser:YAHOO.util.DataSource.parseDate},
                    {key:"blank"},
                    {key:"review"},
                    {key:"remove"},
                    {key:"href"},
                    {key:"unread"},
                    {key:"fulltitle"}]};
                    
        this.dataTable = new YAHOO.widget.DataTable("divDemosDownload", columnDefs, this.dataSource,
            {sortedBy:{key:"dateposted",dir:"desc"}}
        );
}

function enhanceTutorialsFromMarkup() {
            var columnDefs = [
            {key:"demoname",label:"Demo Name",width:210,formatter:formatTitle,sortable:true},
            {key:"postedby",label:"Posted By",width:116,formatter:formatPoster,sortable:true},
            {key:"dateposted",label:"Date Posted",width:80,formatter:formatDate,sortable:true},
            {key:"duedate",label:"",width:70},
            {key:"review",label:"",width:40,formatter:formatBold,sortable:false},
            {key:"remove",label:"",width:120,formatter:formatBold,sortable:false}];
        
        this.dataSource = new YAHOO.util.DataSource(YAHOO.util.Dom.get("tblTutorials"));
        this.dataSource.responseType = YAHOO.util.DataSource.TYPE_HTMLTABLE;
        this.dataSource.responseSchema = {
            fields: [{key:"demoname",parser:YAHOO.util.DataSource.parseString},
                    {key:"postedby",parser:YAHOO.util.DataSource.parseString},
                    {key:"dateposted",parser:YAHOO.util.DataSource.parseDate},
                    {key:"duedate"},
                    {key:"review"},
                    {key:"remove"},
                    {key:"href"},
                    {key:"unread"},
                    {key:"fulltitle"}]};
                    
        this.dataTable = new YAHOO.widget.DataTable("divTutorials", columnDefs, this.dataSource,
            {sortedBy:{key:"dateposted",dir:"desc"}}
        );
}

function showReviewPopup() {
    reviewPopup.show();
}

function showDownloadPopup() {
    downloadPopup.show();
}

function showTutorialPopup() {
    tutorialPopup.show();
}

function dialogCancel() {
    this.cancel();
}

function dialogOK() {
    alert("ok");
}

