/*
 * Ext JS Library 2.2.1
 * Copyright(c) 2006-2009, Ext JS, LLC.
 * licensing@extjs.com
 * 
 * http://extjs.com/license
 */

Ext.BLANK_IMAGE_URL = '/cms/public/js/ext/resources/images/default/s.gif';

Ext.example = function(){
	var msgCt;

	function createBox(t, s){
		return ['<div class="msg">',
  '<div class="x-box-tl"><div class="x-box-tr"><div class="x-box-tc"></div></div></div>',
  '<div class="x-box-ml"><div class="x-box-mr"><div class="x-box-mc"><h3>', t, '</h3>', s, '</div></div></div>',
  '<div class="x-box-bl"><div class="x-box-br"><div class="x-box-bc"></div></div></div>',
  '</div>'].join('');
	}
	return {
		msg : function(title, format){
			if(!msgCt){
				msgCt = Ext.DomHelper.insertFirst(document.body, {id:'msg-div'}, true);
			}
			msgCt.alignTo(document, 't-t');
			var s = String.format.apply(String, Array.prototype.slice.call(arguments, 1));
			var m = Ext.DomHelper.append(msgCt, {html:createBox(title, s)}, true);
			m.slideIn('t').pause(1).ghost("t", {remove:true});
		},

  init : function(){
	  var t = Ext.get('exttheme');
	  if(!t){ // run locally?
		  return;
	  }
	  var theme = Cookies.get('exttheme') || 'aero';
	  if(theme){
		  t.dom.value = theme;
		  Ext.getBody().addClass('x-'+theme);
	  }
	  t.on('change', function(){
		  Cookies.set('exttheme', t.getValue());
		  setTimeout(function(){
			  window.location.reload();
		  }, 250);
	  });

	  var lb = Ext.get('lib-bar');
	  if(lb){
		  lb.show();
	  }
  }
	};
}();

Ext.example.shortBogusMarkup = '<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Sed metus nibh, sodales a, porta at, vulputate eget, dui. Pellentesque ut nisl. Maecenas tortor turpis, interdum non, sodales non, iaculis ac, lacus. Vestibulum auctor, tortor quis iaculis malesuada, libero lectus bibendum purus, sit amet tincidunt quam turpis vel lacus. In pellentesque nisl non sem. Suspendisse nunc sem, pretium eget, cursus a, fringilla vel, urna.';
Ext.example.bogusMarkup = '<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Sed metus nibh, sodales a, porta at, vulputate eget, dui. Pellentesque ut nisl. Maecenas tortor turpis, interdum non, sodales non, iaculis ac, lacus. Vestibulum auctor, tortor quis iaculis malesuada, libero lectus bibendum purus, sit amet tincidunt quam turpis vel lacus. In pellentesque nisl non sem. Suspendisse nunc sem, pretium eget, cursus a, fringilla vel, urna.<br/><br/>Aliquam commodo ullamcorper erat. Nullam vel justo in neque porttitor laoreet. Aenean lacus dui, consequat eu, adipiscing eget, nonummy non, nisi. Morbi nunc est, dignissim non, ornare sed, luctus eu, massa. Vivamus eget quam. Vivamus tincidunt diam nec urna. Curabitur velit.</p>';

Ext.onReady(Ext.example.init, Ext.example);


// old school cookie functions
var Cookies = {};
Cookies.set = function(name, value){
	var argv = arguments;
	var argc = arguments.length;
	var expires = (argc > 2) ? argv[2] : null;
	var path = (argc > 3) ? argv[3] : '/';
	var domain = (argc > 4) ? argv[4] : null;
	var secure = (argc > 5) ? argv[5] : false;
	document.cookie = name + "=" + escape (value) +
				((expires == null) ? "" : ("; expires=" + expires.toGMTString())) +
				((path == null) ? "" : ("; path=" + path)) +
				((domain == null) ? "" : ("; domain=" + domain)) +
				((secure == true) ? "; secure" : "");
};

Cookies.get = function(name){
	var arg = name + "=";
	var alen = arg.length;
	var clen = document.cookie.length;
	var i = 0;
	var j = 0;
	while(i < clen){
		j = i + alen;
		if (document.cookie.substring(i, j) == arg)
		return Cookies.getCookieVal(j);
		i = document.cookie.indexOf(" ", i) + 1;
		if(i == 0)
		break;
	}
	return null;
};

Cookies.clear = function(name) {
	if(Cookies.get(name)){
		document.cookie = name + "=" +
					"; expires=Thu, 01-Jan-70 00:00:01 GMT";
	}
};

Cookies.getCookieVal = function(offset){
	var endstr = document.cookie.indexOf(";", offset);
	if(endstr == -1){
		endstr = document.cookie.length;
	}
	return unescape(document.cookie.substring(offset, endstr));
};

function myGetValue(item){
    //alert(item);
    if( document.getElementById(item) != null && document.getElementById(item).value != ''){
        return document.getElementById(item).value;
    } else {
        return '';
    }
}

function eventsGrid(render){
    
    if(render == null) render = true;

    var store = new Ext.data.Store({
        url: '/cms/features/events/getactiveevents/',
        reader: new Ext.data.JsonReader({
            root: 'entries',
            totalProperty: 'total',
            id: 'eventId'},
            [{name: 'eventId'},
            {name: 'eventTitle'},
            {name: 'eventDate', type: 'date', dateFormat: 'm/d/Y'},
            {name: 'eventLocation'},
            {name: 'eventDescription'},
            {name: 'eventAction'}
            ]),
        baseParams: {"limit":30}});
	store.setDefaultSort('eventDate', 'asc');
    store.load({params: {"start":0,"limit":10}});

    var grid = new Ext.grid.GridPanel({
        bbar: new Ext.PagingToolbar({
                store: store,
                pageSize: 30,
                displayInfo: 'Topics {0} - {1} of {2}',
                emptyMsg: 'No topics to display'}),
        store: store,
		enableColumnHide:false,
        colModel: new Ext.grid.ColumnModel(
                [{header: 'Id',dataIndex: 'eventId',id: 'eventId',sortable: true,css:'padding-top:10px;white-space:normal;',locked: false,hidden:true},
                 {header: 'Event Title',dataIndex: 'eventTitle',id: 'eventTitle',sortable: true,css:'padding-top:10px;white-space:normal;',locked: false},
                 {header: 'Date',dataIndex: 'eventDate',renderer: function(date) { return date.format('m/d/Y');},id: 'eventDate',sortable: true,css:'padding-top:10px;white-space:normal;',locked: false},
                 {header: 'Location',dataIndex: 'eventLocation',sortable: true,css:'padding-top:10px;white-space:normal;',locked: true},
                 {header: 'Description',dataIndex: 'eventDescription',id: 'eventDescription',css:'padding-top:10px;padding-bottom:10px;white-space:normal;',locked: true},
                 {header: 'Action',dataIndex: 'eventAction',id: 'eventAction',css:'padding:10px;white-space:normal;',locked: true}
                ]),
        viewConfig: {
                 enableRowBody:true
        },
        stripeRows: true,
        autoExpandColumn: 'eventDescription',
        height: 350,
        width: 900,
        title: '',
        id: 'grid-events-list',
        listeners: {
            rowclick:function(grid, rowIndex, e) {
                var record = grid.getSelectionModel().getSelected();
//                 showEditWn(record.get('instanceId'));
//                 selectedWn = record.get('instanceId');
            }
        }
    });

     if(render) {
        grid.render('grid_container');
        return true;
    } else {
       return grid;
    }
}

function insightsGrid(render){
    if (document.getElementById('grid_container') == null) { return; }
    document.getElementById('pTitle').style.display = 'none';
    if(render == null) render = true;
    var myId = 283; // default to Articles...
    var tempUrl = window.location.href;
    var tempPart = tempUrl.split('/');
    if(tempPart.length > 3) {
        myId = tempPart[tempPart.length - 3];
    }
    
    var store2 = new Ext.data.Store({
        url: '/cms/insights/index/getlist/pageId/' + myId,
        reader: new Ext.data.JsonReader({
            root: 'entries',
            totalProperty: 'total',
            id: 'insightId'},
            [
            {name: 'insightId'},
			{name: 'createdAt'},
			{name: 'insightTitle'},
            {name: 'industry'},
            {name: 'service'},
            {name: 'content'},
			{name: 'fileUrl'},
			{name: 'requireAccess'}
            ]),
        baseParams: {"limit":10}});
    //store2.setDefaultSort('createdAt', 'asc');
    store2.load({params: {"start":0,"limit":10}});
	
    var grid2 = new Ext.grid.GridPanel({
        bbar: new Ext.PagingToolbar({
                id: 'insights-pages2',
                store: store2,
                pageSize: 10,
                displayInfo: 'Topics {0} - {1} of {2}',
                emptyMsg: 'No topics to display'}),
        store: store2,
		enableColumnHide:false,
        colModel: new Ext.grid.ColumnModel(
                [
				 {header: 'Id',dataIndex: 'insightId',id: 'insightId',sortable: true,css:'padding-top:10px;white-space:normal;',locked: false,hidden:true},
				 {header: 'Date Posted',dataIndex: 'createdAt',id: 'createdAt',sortable: true,css:'padding-top:10px;white-space:normal;',locked: false},
                 {header: 'Title',dataIndex: 'insightTitle',id: 'insightTitle',sortable: true,css:'padding-top:10px;white-space:normal;',locked: false},
                 {header: 'Industry',dataIndex: 'industry',sortable: true,css:'padding-top:10px;white-space:normal;',locked: true},
                 {header: 'Service',dataIndex: 'service',sortable: true,id: 'service',css:'padding-top:10px;padding-bottom:10px;white-space:normal;',locked: true},
                 {header: 'Description',dataIndex: 'content',id: 'content',css:'padding:10px;white-space:normal;',locked: true},
				 {header: 'Id',dataIndex: 'fileUrl',id: 'fileUrl',sortable: true,css:'padding-top:10px;white-space:normal;',locked: false,hidden:true},
				 {header: 'Id',dataIndex: 'requireAccess',id: 'requireAccess',sortable: true,css:'padding-top:10px;white-space:normal;',locked: false,hidden:true}
                ]),
        viewConfig: {
                 enableRowBody:true
        },
        stripeRows: true,
        autoExpandColumn: 'content',
        height: 350,
        width: 710,
        title: '',
        id: 'grid-insights-gid',
        listeners: {
            rowclick:function(grid, rowIndex, e) {
                var record2 = grid2.getSelectionModel().getSelected();
				if(record2.get('requireAccess') == 0){
                    			pageTracker._trackPageview(record2.get('fileUrl'));
					window.location.href=record2.get('fileUrl');
				} else {
					requireFormAccessPopup2(record2.get('fileUrl'), record2.get('insightId'))
				}
            }
        }
    });

     if(render) {
        grid2.render('grid_container');
        return true;
    } else {
       return grid2;
    }
}
