/**
 * Core styles for the basic GridField form field without any specific style.
 *
 * @package framework
 * @subpackage scss
 * @todo Add radial gradient to default delete button state
 * @todo Create SASS mixin-function to simply swap the from/to, to to/from colours in grsdient mixins?
 */

@import "compass/css3";
@import "compass/css3/images";
@import "compass/css3/text-shadow";
@import "compass/css3/border-radius";
@import "../admin/scss/themes/default";
@import "../admin/scss/_mixins";
@import "_elementMixins";

//$experimental-support-for-svg variable comes from 
//imported compass/support file and enables svg gradients in IE9. 
//This is needed for the background gradients to work as desired with 
//multiple images. 
$experimental-support-for-svg: true; 


$gf_colour_gradient_dark: darken($color-base, 8%); 
$gf_colour_header_border: $gf_colour_gradient_dark;
$gf_colour_subheader: saturate(lighten($color-base, 15%),5%);
$gf_colour_border: rgba(0,0,0,.1);
$gf_colour_zebra: #F0F4F7;
$gf_colour_font: #666;
$gf_colour_text_shadow: rgba(0,0,0,.2);
$gf_colour_text_shadow_dark: rgba(0,0,0,.4);
$gf_border_radius:	5px;

$gf_grid_y:	12px;
$gf_grid_x:	16px;


.cms {
	.ss-gridfield {
		& > div {
			margin-bottom: $gf_grid_y*3;
			&.addNewGridFieldButton{
				margin-bottom:$gf_grid_y;
				@include clearfix;
			}
		}

		&[data-selectable] {
			tr.ui-selected, tr.ui-selecting {
				background: #FFFAD6 !important;
			}

			td {
				cursor: pointer;
			}
		}

		span button#action_gridfield_relationfind {
	 		display:none; //hides find button - redundant functionality
	 	}

	 	p button#action_export {
			margin-top:$gf_grid_y;
			span.btn-icon-download-csv {
				height:17px; //exact height of icon
			}
			.ui-button-text {
				padding-left:26px; //to accomodate wider export icon
			} 
	 	}
	 	.right {
	 		float:right;
			& > * {
				float: right;
				margin-left:5px;			
				font-size: $gf_grid_y*1.2;
			}

			.pagination-records-number
			{
				font-size: 1.0em;
				padding: 6px 3px 6px 0;
				color: $color-text-light;
				@include single-text-shadow($gf_colour_text_shadow, 0px, -1px, 0);
				font-weight: normal;
			}
		}
		.left { 
			float:left;
			& > * {
				margin-right:5px;
				float: left;
				font-size: $gf_grid_y*1.2;
			}
		}
	}
	
	.ss-gridfield {
		.grid-levelup {
			text-indent: -9999em;
			a.list-parent-link{
				background: transparent url(../images/gridfield-level-up.png) no-repeat 0 0;
				display:block;
			}
			margin-bottom: 6px;
		}
		.add-existing-autocompleter {
			input.relation-search {
				width: 380px;
			}
			width: 500px;
		}
		.grid-print-button{
			display: inline-block;
		}
		.grid-csv-button{
			display: inline-block;
		}
	}

	table.ss-gridfield-table {
		display: table; 
		@include box-shadow-none;		
		padding: 0;
		border-collapse: separate;	
		border-bottom: 0 none;				
		width: 100%;
		margin-bottom:$gf_grid_y;

		thead {
			color: darken($color-base, 50%);	
			background: transparent;
			tr.filter-header {
				.fieldgroup {
					max-width:$gf_grid_x*32; //max width 512px
					.fieldgroup-field {
						padding:0;
					}
				}
			}
			tr:first-child { //sets 7px border-radius on the top row in the thead - accounts for edgecase where there is no title row.
				th:first-child {
					@include border-top-left-radius($gf_border_radius);
				}
				th:last-child {
					@include border-top-right-radius($gf_border_radius);
				}
			} 
		}
		
		tbody {
			background: #FFF;
			tr {
				// This lets iOS Safari know that these elements are clickable
				// and so to send the click events.
				cursor: pointer;
			}
			td {
				width: auto;
				max-width: 500px; //This number is semi-arbitary. It is acting as a percentage limit, rather than actually constricting the width to 500px.
				word-wrap:break-word;
				// Give browser some hints on which cols take priority:
				// The last column (buttons) should always shrink to fit.
				// Overwritten for IE7, which doesn't support this.			
				&.col-buttons {
					width: auto;
					padding:0 $gf_grid_x/2;
					text-align: right;
					white-space: nowrap;
				}
				&.col-listChildrenLink {
					width:$gf_grid_x;
					border-right:none;
					text-indent:-9999em;
					padding:0;
					.list-children-link {
						background: transparent url(../images/sitetree_ss_default_icons.png) no-repeat 3px -4px;
						display:block;
					}
				}

				&.col-getTreeTitle {
					span.item {
						color:$color-text-blue-link;
					}
					span.badge {
						clear: both;
						text-transform: uppercase;
						display: inline-block;
						padding: 0px 3px;
						font-size: 0.75em;
						line-height: 1em;
						margin-left: 10px;
						margin-right: 6px;
						margin-top:  -1px;
						@include border-radius(2px, 2px);
					}
					
					span.badge.modified {
						color:  #7E7470;
						border: 1px solid #C9B800;
						background-color: #FFF0BC;
					}
					
					span.badge.addedtodraft {
						color:  #7E7470;
						border: 1px solid #C9B800;
						background-color: #FFF0BC;
					}
					
					span.badge.deletedonlive {
						color:  #636363;
						border: 1px solid #E49393;
						background-color: #F2DADB;
					}
					
					span.badge.removedfromdraft {
						color:  #636363;
						border: 1px solid #E49393;
						background-color: #F2DADB;
					}
					
					span.badge.workflow-approval {
						color:  #56660C;
						border: 1px solid #7C8816;
						background-color: #DAE79A;
					}
				}

				button {
					border: none;
					background: none;
					margin: 0 0 0 2px;
					padding: 1px 0;
					width: auto;
					text-shadow: none;
					&.ui-state-hover {
						background:none;
						@include box-shadow-none;
					}
					&.ui-state-active {
						border:none;
						@include box-shadow-none;
					}
					&.gridfield-button-delete {
						width: 20px;
						margin: 0;
						span.btn-icon-decline {
							left: 2px;
						}
					}
				}
				a.view-link, a.edit-link {
					display:inline-block;
					width:20px;
					height:20px; //min height to fit the edit icon
					text-align: left;
					text-indent:-9999em;
					overflow: hidden;
					vertical-align: middle;
				}
				a.view-link {
					background: url(../admin/images/btn-icon/magnifier.png) no-repeat 0 1px;
				}
				a.edit-link {
					background: url(../admin/images/btn-icon/document--pencil.png) no-repeat 2px 0px;
				}
			}
		}

		tfoot {
			color: darken($color-base, 50%);
			tr {
				td {
					background: $color-base;
					padding: .7em;
					border-bottom: 1px solid rgba(0,0,0,.1);
				}
			}
		}
		
		tr {	
			&.title {
				th {
					position: relative;					
					background: $gf_colour_gradient_dark;
					border-bottom: 1px solid darken($gf_colour_gradient_dark,5%);
					padding: 5px;
					min-height: 40px; //this is to accomodate the add new button.
					@include background-image(linear-gradient($color-base, $gf_colour_gradient_dark));
					@include single-text-shadow($gf_colour_text_shadow_dark, 0px, -1px, 0);
				h2{
						padding: 0px;
						font-size: $gf_grid_y*1.4;
						color:#fff;
						margin: 1px 8px 0;
						display:inline-block;
						float:left;
					}					
				}
			}	
			&.sortable-header {		
				background: $gf_colour_subheader;					
				th{
					padding: 0; // Should be padding: 0 1em; like td
					font-weight: normal;
					.ss-ui-button {
						font-weight: normal;
					}
				}			
			}			
			&:hover {
				background: #FFFAD6 !important;
			}
			&:first-child {
				background: transparent;
			}
			&.ss-gridfield-even {
				background: $gf_colour_zebra;

				&.ss-gridfield-last {
					border-bottom: none;
				}
			}
			&.even {
				background: $gf_colour_zebra;
			}
			
			th {
				font-weight: bold;
				font-size: $gf_grid_y;
				color: #FFF;
				padding: 5px;
				border-right: 1px solid $gf_colour_border;
				
				div { 
					&.fieldgroup,&.fieldgroup-field {
						width: 100%;
						position:relative;
					}
					&.fieldgroup {
						min-width: $gf_grid_x*12.5;
						padding-right:0;
						&.filter-buttons{
							min-width:0;
							div{
								width:auto;
								display:inline;
							}
						}
					}
				}
				&.main{
					white-space:nowrap;
					border-top: 1px solid darken($color-base,4%);
					border-left: 1px solid darken($color-base,4%);
					color:#fff;
					background: $gf_colour_gradient_dark;
					border-bottom: 1px solid $gf_colour_border;
					span{
						@include single-text-shadow($gf_colour_text_shadow, 0px, -1px, 0);
						padding-left: $gf_grid_x/2;
						padding-right: $gf_grid_x/2;
						@include hide-text-overflow; // Add ellipses to overflowing text
						margin-right: 8px;

					}
					&.col-listChildrenLink {
						border-right:none;
					}
				}
				&.extra,&.action {
					padding: 0;
					cursor: default;
				}
				&.extra {
					position:relative;
					background:darken($color-dark-grey, 10%);
					background: rgba(#000, 0.7);		
					padding: 5px;	
					border-top:	$gf_colour_text_shadow;
					input {
						height:28px; //height of input field - to match design.
					}
					button.ss-ui-button {
						padding: .3em;
						line-height: 1;
						@include box-shadow-none; 
						position: relative;
						border-bottom-width: 0;	
						@include border-radius(2px, 2px);			
					}				
				}
				&.first {
					@include border-top-left-radius($gf_border_radius);
				}
				&.last {
					@include border-top-right-radius($gf_border_radius);
				}


				
				button {
					&#action_gridfield_relationadd:hover {
						color: #444 !important; /* Not sure why IE think it needs this */
					}
					&:hover {
						color: #ccc !important; /* Not sure why IE think it needs this */ 
					}
					&.ss-gridfield-sort:hover {
						color: #fff !important;
						@include box-shadow-none; 
					}
					&.ss-gridfield-sort {
						background: transparent url(../images/arrows.png) no-repeat right 6px;
						border:none;	
						width:100%;
						text-align: left;
						padding: 2px 8px 2px 0; // Doesn't need to be so big now that filter has moved
						@include single-text-shadow($gf_colour_text_shadow, 0px, -1px, 0);
						color: #fff;
						@include border-radius(0);
						&:hover {
							background-position: right -34px;
						}
						&.ss-gridfield-sorted-desc {
							background-position: right -72px;
						}
						&.ss-gridfield-sorted-asc {
							background-position: right -116px;
						}
					}

					&.ss-ui-button{
						&.ss-gridfield-button-filter{
							$bgImage: url(../images/icons/filter-icons.png) no-repeat;
							background-color:lighten($color-menu-button,10%);
							@include gridFieldButtons;
							@include background(
								$bgImage -15px 4px,
								linear-gradient(
									$color-menu-button, 
									darken($color-menu-button, 10%)
								)
							);	
							width: 26px;					
							border-top: 1px solid lighten($color-menu-button, 5%);	

							&.hover-alike:active, &:active,	&.hover-alike, &:hover {							
								@include background (
								$bgImage -15px 4px,
								linear-gradient(
									lighten($color-menu-button, 10%),
									$color-menu-button								
								));		
							} 	

							&.trigger{	//The magnifying glass before filter is opened						
								margin-left: $gf_grid_y; 							
								border:none;						
								@include background ($bgImage -17px 6px);	
								padding-right: 46px;
								margin: 0 $gf_grid_y/2;

								span{ //this is the dropdown arrow
									opacity: 0.4;
									position:absolute;
									width:10px;
									left:30px;
									top:40%;
									background:	url(../admin/images/btn_arrow_down_grey.png) no-repeat 0px 0px;																
								}
								&:hover{
									@include background ($bgImage -17px -38px);	
									@include box-shadow-none;
									span{//dropdown arrow
										opacity:0.9;
										
									}
								}
							}			
						}
						&.ss-gridfield-button-close{
							$bgImage: url(../images/icons/filter-icons.png) no-repeat;
							@include background ($bgImage 8px -17px);	
							@include gridFieldButtons;		
							width:25px; 
							opacity:0.8;
							margin-right:-5px; //For IE					
							&.hover-alike:active, &:active, &.hover-alike, &:hover {
								opacity:1;
								@include background (
									$bgImage 8px -17px,
									linear-gradient(
										rgba(#fff,0.1),
										rgba(#fff,0.1)								
									)									
								);
							} 					

						}
						&.ss-gridfield-button-reset{
							@include gridFieldButtons;						
							position:absolute;
							top: -21px;
							right: -1px;
							width:20px; 
							height:20px;				
							display:none;		
						
							&.filtered{
								display:block;
								
								background: url(../admin/images/btn-icon/cross.png) no-repeat 0px 0px;
								opacity:0.5;
								&:hover{
									opacity:0.8;
								}			
								&:active {
									opacity:1;								
								}
							}
						}	
					}	
				}

				input {
					&.ss-gridfield-sort {
						height:25px;
						padding: 4px;
						// Placeholder styling done with an each loop because when a browser 
						// doesn’t understand a selector, it invalidates the entire line of selectors. 
						// This avoids that, and keeps the scss tidy
						$browserPlaceholder: "::-webkit-input-placeholder", ":-moz-placeholder", ":-ms-input-placeholder",	":placeholder";
						border: 1px solid #313232;

						@each $browser in $browserPlaceholder {
							&#{$browser}{
								font-style:italic;
								color: lighten($color-dark-grey,30%);
							}
						} 						  
										
						&:focus {
							@include box-shadow-none;
						}

					}
				}

				span.non-sortable {
					display:block;
				}
			}

			td {
				border-right: 1px solid $gf_colour_border;
				padding: $gf_grid_x/2 $gf_grid_x/2;
				color: $gf_colour_font;
				&.bottom-all {
					@include border-bottom-radius($gf_border_radius);
					@include background-image(linear-gradient($color-base, $gf_colour_gradient_dark));
					padding: $gf_grid_x/4 $gf_grid_y;
					
					.datagrid-footer-message {
					    text-align: center;
						padding-top: 6px;
				        color:$color-text-light;
					}
					.datagrid-pagination {
						padding-top:1px;
						position:absolute;
						left:50%;
						margin-left:-116px; //half the width of .datagrid-pagination - centers pagination
						.pagination-page-number {
							color:$color-text-light;
							@include single-text-shadow($gf_colour_text_shadow, 0px, -1px, 0);
							input {
								width:35px; //exact width so that a four digit number can be entered
								height:18px;  
								margin-bottom:-6px; //moves input field up to be aligned with the pagination buttons
								padding:0px;
								border: 1px solid darken($gf_colour_gradient_dark, 5%);
								border-bottom: 1px solid lighten($gf_colour_gradient_dark, 5%);
							}
						}
						z-index:5;
						button{							
							@include box-shadow-none;
							border:none;
							width:10px;
							margin:0 10px;
							span {
								text-indent:-9999em;
							}
							&.ss-gridfield-previouspage {
								@include background (url(../images/icons/pagination-arrows.png) no-repeat -23px 8px);
							}
							&.ss-gridfield-nextpage {
								@include background (url(../images/icons/pagination-arrows.png) no-repeat -47px 8px);
							}
							&.ss-gridfield-firstpage {
								@include background (url(../images/icons/pagination-arrows.png) no-repeat 0px 8px);
							}
							&.ss-gridfield-lastpage {
								@include background (url(../images/icons/pagination-arrows.png) no-repeat -73px 8px);
							}
							&.ssui-button-disabled{
								z-index:-1;
							}
						}
					}
					.pagination-records-number {
						float:right;
						padding:6px 0;
						color:$color-text-light;
						@include single-text-shadow($gf_colour_text_shadow, 0px, -1px, 0);
					}
				}
			}
			
			&.last td {
				border-bottom: 0 none;
			}
		}
		td:first-child{
			border-left: 1px solid $gf_colour_border;
		}
		td:last-child{
			border-right: 1px solid $gf_colour_border;
		}
	}
}
