﻿var myStyleSheet;

$(document).ready(
	function () {   
		 $("#lavaLamp").lavaLamp({
                fx: "backout",
                speed: 500,
                click: function() {return true;}
            });
            
    var myLayoutStyleOrder=$.cookie('ckTest5');
        
	function getWidgetCode(divID,type)
    {
        var s = new JayRocks();
        var currentDiv="#item_"+divID;
        var contentLoading="#contentLoading_"+divID;
        fnMakeSortable();
        
//        $('div.itemHeader').corner("keep");           
        
        $('a.closeEl').bind('click', toggleContent);
        $('a.closeDiv').bind('click', deleteContent);
          //Append RSS content to empty div
        $(contentLoading).show();
        if(type=='custom')
        {
            s.RenderCustomControl(divID,function(response) { 
		        $(currentDiv).append(response.result);
                 $(contentLoading).slideUp(300);
            });
        }
        else
        {
		    s.RenderRssControl(divID,function(response) { 
		        $(currentDiv).append(response.result);
                 $(contentLoading).slideUp(300);
            });
        }
    }
	
	 
        
	function fnCreateLayout(arrayOrder,status)
	{
		    //Build widget UI first.
            var i=0;

            //Create layout first
		    for(i=0;i<arrayOrder.length;i++)
		    {
		         if(status=='default')
	             {
	   			    var divID=arrayOrder[i].split("#")[0];
	        	    var columnName=arrayOrder[i].split("#")[1];
	        	 }
	        	 else if(status=='saved')
	        	 {
	                var divID=myLayoutOrderArray[i].split("=")[1]
			        var columnName=(myLayoutOrderArray[i].split("=")[0]).replace(/[[]]/,'');
	        	 }
			    if(divID!=null)
			    {
			        var title=fnGetTitleFromDivID(divID);
                    $('#'+columnName).append('<div id="'+divID+'" class="groupItem"><div class="itemHeader">'+title+'<a href="#" class="closeEl">[-]</a> &nbsp;<a href="#" class="closeDiv">[x]</a></div><div id="contentLoading_'+divID+'" class="contentLoading"><img src="images/ajax-loader.gif" /></div><div id="item_'+divID+'" class="itemContent"></div></div>');
			    }
		    }
    		
    		//Append Widget code to UI.
    		for(i=0;i<arrayOrder.length;i++)
		    {
			     if(status=='default')
	             {
	   			    var divID=arrayOrder[i].split("#")[0];
	        	 }
	        	 else if(status=='saved')
	        	 {
	                var divID=arrayOrder[i].split("=")[1]
	        	 }
			    if(divID!=null)
			    {
//			        var type='custom';
                    var type='rss';
				    getWidgetCode(divID,type);
			    }
		    }
	}                  
	
	
	if(myLayoutStyleOrder==null)
	{
	    var arrDefaultOrder = new Array();
        arrDefaultOrder[0] = 'techCrunch#sort1';
        arrDefaultOrder[1] = 'lifeHacker#sort1';
        arrDefaultOrder[2] = 'howToGeek#sort1'; 
        arrDefaultOrder[3] = 'encosia#sort2'; 
        arrDefaultOrder[4] = 'aspAjax#sort2'; 
        arrDefaultOrder[5] = 'diggTech#sort2';
        arrDefaultOrder[6] = 'codeProjAsp#sort3';
        arrDefaultOrder[7] = 'gTechNews#sort3';
        arrDefaultOrder[8] = 'scottGu#sort3'; 
    //        arrDefaultOrder[10] = 'chessbase';
    //        arrDefaultOrder[11] = 'delicious';
    //        arrDefaultOrder[12] = 'ibnLive';
    //        arrDefaultOrder[132] = 'rgVarma';
        var status='default';
	    //alert('New Cookie Created: Will last for 1 day. Creating default widgets and order');    
        myStyleSheet='StyleSheet_blue';
        //alert('Default css= '+myStyleSheet);	
        switchStyleSheet(myStyleSheet);
		fnCreateLayout(arrDefaultOrder,status);
	}
	else
	{
	    myStyleSheet = myLayoutStyleOrder.split('*')[0];
        var myLayoutOrder=myLayoutStyleOrder.split('*')[1];
	
		var myLayoutOrderArray=myLayoutOrder.split('&');
		var status='saved';
		//alert('Creating your saved order...');   
		switchStyleSheet(myStyleSheet);
		fnCreateLayout(myLayoutOrderArray,status);
	}
	
	
		fnMakeSortable();
		$('a.closeEl').bind('click', toggleContent);
		$('a.closeDiv').bind('click', deleteContent);
		$('#AnInvertAll').bind('click', invertAll);
		$('#AnSave').bind('click', saveLayout);
		$('#AnDefault').bind('click', defaultLayout);
		
		$('#AnAddChessBase').bind('click',{divID: "chessbase"}, fnAddRssWidget);
		$('#AnDelicious').bind('click',{divID: "delicious"}, fnAddRssWidget);
		$('#AnIbnLive').bind('click',{divID: "ibnLive"}, fnAddRssWidget);
		$('#AnRGVarma').bind('click',{divID: "rgVarma"}, fnAddRssWidget);
		$('#linksContainer').hide();
		$('#themesContainer').hide();
		
//		$('#imgMenu').bind('click',fnShowLinks);
		$('#AnAddWidgets').bind('click',fnShowLinks);
		$('#AnShowThemes').bind('click',fnShowThemes);
		
		$('.styleswitch').click(function()
        {
	        switchStyleSheet(this.getAttribute("rel"));
//            $('div.itemHeader').css('background-color', 'Transparent');
//            $('div.itemHeader').corner("cc:Transparent");
//	        if(this.getAttribute("rel")=='StyleSheet_blue') //alert('blue');
//	        {
//  	        $('div.itemHeader').corner("cc:#ffffff keep");
//	        }
//	        if(this.getAttribute("rel")=='StyleSheet_black') //alert('blue');
//	        $('div.itemHeader').corner("cc:#009 keep");
//	        if(this.getAttribute("rel")=='StyleSheet_green') //alert('blue');
//	        $('div.itemHeader').corner("cc:#000000 keep");
	        //$('div.groupItem').corner("cc:#ffffff");
	        return false;
        });
	}
);



var fnShowLinks=function(e)
{
    var linksContainer=$('#linksContainer');
    if (linksContainer.css('display') == 'none') {
		linksContainer.slideDown(300);
	} else {
		linksContainer.slideUp(300);
	}
	return false;
}

var fnShowThemes=function(e)
{
    var themesContainer=$('#themesContainer');
    if (themesContainer.css('display') == 'none') {
		themesContainer.slideDown(300);
	} else {
		themesContainer.slideUp(300);
	}
	return false;
}


function fnGetTitleFromDivID(DivID)
{   
    var myArray = new Array();
    myArray['techCrunch'] = 'Tech news from TechCrunch';
    myArray['lifeHacker'] = 'Life Hacker Tips & Downloads';
    myArray['howToGeek'] = 'Computer help from How-To-Geek';
    
    myArray['encosia'] = 'Encosia - ASP.NET, AJAX and more.';
    myArray['aspAjax'] = 'ASP.NET Daily Articles';
    myArray['diggTech'] = 'DIGG Technology';
    
    myArray['codeProjAsp'] = 'ASP.NET articles from CodeProject.com';
    myArray['gTechNews'] = 'Technology news from Google';
    myArray['scottGu'] = 'Updates from Scott Gu';
    
    myArray['chessbase']='Latest Chess News from Chessbase';
    myArray['delicious']='Web2.0 from Del.icio.us';
    myArray['ibnLive']='News from IBNLive.com';
    myArray['rgVarma']='Updates from Ram Gopal Varma';
    
  return myArray[DivID];
}

var fnMakeSortable=function()
{
    $('div.groupWrapper').Sortable(
			{
                accept : 		'groupItem',
		        helperclass : 	'sorthelper',
		        activeclass : 	'sortableactive',
		        hoverclass : 	'sortablehover',
		        opacity: 		0.8,
		        fx:			200,
		        opacity:		0.4,
		        tolerance: 'pointer',
		        revert:			true
			}
		);
}

var deleteContent = function(e)
{
    var targetContent=$(e.target.parentNode.parentNode);
    targetContent.remove();
    return false;
}

var saveLayout = function(e)
{
    serial1 = $.SortSerialize('sort1');
    serial2 = $.SortSerialize('sort2');
    serial3 = $.SortSerialize('sort3');
    serial = myStyleSheet+'*'+serial1.hash+'&'+serial2.hash+'&'+serial3.hash;
    alert('Your layout & theme have been saved :)');
	$.cookie('ckTest5', serial, { expires: 1 });
	//alert('Yup! Its done :)');
}
var defaultLayout = function(e)
{
    $.cookie('ckTest5', null);
    window.location.reload();
}
var toggleContent = function(e)
{
	var targetContent = $('div.itemContent', this.parentNode.parentNode);
	
	if (targetContent.css('display') == 'none') {
		targetContent.slideDown(300);
		$(this).html('[-]');
	} else {
		targetContent.slideUp(300);
		$(this).html('[+]');
	}
	return false;
};
var invertAll = function(e)
{
	var targetContent = $('div.itemContent', this.parentNode.parentNode.parentNode);
	if (targetContent.css('display') == 'none') {
		targetContent.slideDown(300);
	} else {
		targetContent.slideUp(300);
	}
	return false;
};

var fnAddRssWidget= function(event) 
{
    var divSort1=$("#sort1").height();
    var divSort2=$("#sort2").height();
    var divSort3=$("#sort3").height();
    var divID=event.data.divID;
    var myDivTitle=fnGetTitleFromDivID(divID);
    if((divSort1==divSort2)&&(divSort2==divSort3))
        fnAppendDiv('#sort1');
    else if((divSort1<divSort2)&&(divSort1<divSort3))
        fnAppendDiv('#sort1');
    else if(divSort2<divSort3)
        fnAppendDiv('#sort2');        
    else    
        fnAppendDiv('#sort3');
        
    function fnAppendDiv(sortColumnID)
    {
    var s = new JayRocks();

        $(sortColumnID).prepend('<div id="'+divID+'" class="groupItem"><div class="itemHeader">'+myDivTitle+'<a href="#" class="closeEl">[-]</a> &nbsp;<a href="#" class="closeDiv">[x]</a></div><div id="contentLoading_'+divID+'" class="contentLoading"><img src="images/ajax-loader.gif" /></div><div id="item_'+divID+'" class="itemContent"></div></div>');
        
        var currentDiv="#item_"+divID;
        var contentLoading="#contentLoading_"+divID;
        //$('div.itemHeader').corner("top");       
        fnMakeSortable();
        $('a.closeEl').bind('click', toggleContent);
        $('a.closeDiv').bind('click', deleteContent);
          //Append RSS content to empty div
        $(contentLoading).show();
		s.RenderRssControl(divID,function(response) { 
             $(currentDiv).append(response.result);
             $(contentLoading).slideUp(300);
        });
    }
}
 
function switchStyleSheet(styleName)
{
   //$('link[@rel*=style][@title]').each(function(i)  In jQuery versions prior to 1.3
   //In jQuery 1.3 onwards, [@title] is replaced by [title] http://www.kelvinluck.com/assets/jquery/styleswitch/	
	$('link[@rel*=style][title]').each(function(i)
	{
		this.disabled = true;
		if (this.getAttribute('title') == styleName) this.disabled = false;
	});
	//createCookie('style', styleName, 365);
    myStyleSheet=styleName;
    
}

