Commit 90d08215 authored by bmagnin's avatar bmagnin

Changing size of results (frame) in web search app

parent e12e9118
html, body{ html, body{
width: 100%; width: 100%;
padding: 0; padding: 0;
height: auto; height: auto;
background-color: white; background-color: white;
margin: 0; margin: 0;
} }
::-webkit-scrollbar { ::-webkit-scrollbar {
width: 14px; width: 14px;
background-color:white; background-color:white;
} }
::-webkit-scrollbar-thumb { ::-webkit-scrollbar-thumb {
border-radius: 10px; border-radius: 10px;
background-color:lightgray; background-color:lightgray;
border: 2px solid gray; border: 2px solid gray;
} }
::-webkit-scrollbar-button:vertical:start{ ::-webkit-scrollbar-button:vertical:start{
border-radius: 10px; border-radius: 10px;
background-color:lightgray; background-color:lightgray;
background-image: url(../images/trgUp.png); background-image: url(../images/trgUp.png);
background-size: 8px auto; background-size: 8px auto;
background-position: center; background-position: center;
background-repeat: no-repeat; background-repeat: no-repeat;
border: 2px solid gray; border: 2px solid gray;
} }
::-webkit-scrollbar-button:vertical:end{ ::-webkit-scrollbar-button:vertical:end{
border-radius: 10px; border-radius: 10px;
background-color:lightgray; background-color:lightgray;
background-image: url(../images/trgDown.png); background-image: url(../images/trgDown.png);
background-size: 8px auto; background-size: 8px auto;
background-position: center; background-position: center;
background-repeat: no-repeat; background-repeat: no-repeat;
border: 2px solid gray; border: 2px solid gray;
} }
a { a {
text-decoration: underline; text-decoration: underline;
} }
#disc_nav_cont{ #disc_nav_cont{
height: auto; height: auto;
position: fixed; position: fixed;
left: 0; left: 0;
bottom: 0; bottom: 0;
width: 100%; width: 100%;
} }
.disclaimer{ .disclaimer{
padding: 5px; padding: 5px;
text-align: center; text-align: center;
background-color: #BBBBBB; background-color: #BBBBBB;
border-top: solid 4px #EEEEEE; border-top: solid 4px #EEEEEE;
border-bottom: none; border-bottom: none;
font-size: 12px; font-size: 12px;
} }
.resultFooter{ .resultFooter{
width: 100%; width: 100%;
padding: 3px; padding: 3px;
font-family: Verdana,Arial,Helvetica,sans-serif; font-family: Verdana,Arial,Helvetica,sans-serif;
font-weight: bold; font-weight: bold;
font-size: x-large; font-size: x-large;
text-align: center; text-align: center;
background-color: white; background-color: white;
} }
#searchResult { #searchResult {
overflow: hidden; overflow: hidden;
text-align: center; text-align: center;
margin-top: 50px; margin-top: 50px;
margin-bottom: 50px; margin-bottom: 85px;
} }
.search{ .search{
position: fixed; position: fixed;
top: 0; top: 0;
left: 0; left: 0;
padding: 5px; padding: 5px;
background-color: #BBBBBB; background-color: #BBBBBB;
border-bottom: solid 4px #EEEEEE; border-bottom: solid 4px #EEEEEE;
} }
.search, .search,
.disclaimer { .disclaimer {
width: 100%; width: 100%;
box-sizing: border-box; box-sizing: border-box;
-webkit-box-sizing: border-box; -webkit-box-sizing: border-box;
} }
.searchInput{ .searchInput{
padding: 3px; padding: 3px;
float: left; float: left;
width: 100%; width: 100%;
border-radius: 3px; border-radius: 3px;
border-style: none; border-style: none;
height: 22px; height: 22px;
line-height: 18px; line-height: 18px;
vertical-align: middle; vertical-align: middle;
box-sizing: border-box; box-sizing: border-box;
-webkit-box-sizing: border-box; -webkit-box-sizing: border-box;
} }
.searchButton{ .searchButton{
background: url("../images/search_app.png") -38px -38px no-repeat; background: url("../images/search_app.png") -38px -38px no-repeat;
width: 24px; width: 24px;
height: 24px; height: 24px;
overflow: hidden; overflow: hidden;
position: absolute; position: absolute;
right: 30px; right: 30px;
top: 9px; top: 9px;
margin-left: -2px; margin-left: -2px;
cursor: pointer; cursor: pointer;
} }
.subSearch{ .subSearch{
margin: 0; margin: 0;
float: left; float: left;
} }
#subSearchInput{ #subSearchInput{
width: 100%; width: 100%;
float: left; float: left;
box-sizing: border-box; box-sizing: border-box;
-webkit-box-sizing: border-box; -webkit-box-sizing: border-box;
padding: 5px; padding: 5px;
padding-right: 26px; padding-right: 26px;
} }
#subSearchFilter{ #subSearchFilter{
width: 100%; width: 100%;
float: left; float: left;
display: none; display: none;
} }
.searchResult{ .searchResult{
width: 98%; width: 98%;
padding: 3px; padding: 3px;
background-color:#123456; background-color:#123456;
} }
.imgContainer{ .imgContainer{
display: inline-block; display: inline-block;
padding: 3px; padding: 3px;
margin: 3px; margin: 3px;
text-align: center; text-align: center;
overflow: hidden; overflow: hidden;
font-size: small; font-size: small;
font-family: Verdana,Arial,Helvetica,sans-serif; font-family: Verdana,Arial,Helvetica,sans-serif;
border: 1px solid #666; border: 1px solid #666;
border-radius: 5px; border-radius: 5px;
-webkit-box-shadow: #dadada -1px 0 4px; -webkit-box-shadow: #dadada -1px 0 4px;
-webkit-border-radius: 5px; -webkit-border-radius: 5px;
box-shadow: #666 -1px 0 4px; box-shadow: #666 -1px 0 4px;
vertical-align: top; vertical-align: top;
} }
.filterContainer{ .filterContainer{
float: left; float: left;
margin: 2px; margin: 2px;
padding: 2px; padding: 2px;
font-size: 14px; font-size: 14px;
} }
.filterSelect{ .filterSelect{
border-style:none; border-style:none;
-webkit-border-top-right-radius: 15px; -webkit-border-top-right-radius: 15px;
-webkit-border-bottom-right-radius: 15px; -webkit-border-bottom-right-radius: 15px;
-moz-border-radius-topright: 15px; -moz-border-radius-topright: 15px;
-moz-border-radius-bottomright: 15px; -moz-border-radius-bottomright: 15px;
border-top-right-radius: 15px; border-top-right-radius: 15px;
margin-top: 2px; margin-top: 2px;
width: 100%; width: 100%;
} }
span{ span{
font-family: Verdana,Arial,Helvetica,sans-serif; font-family: Verdana,Arial,Helvetica,sans-serif;
color: #666; color: #666;
} }
[draggable] { [draggable] {
-webkit-user-select: none; -webkit-user-select: none;
user-select: none; user-select: none;
} }
.toggleFilters{ .toggleFilters{
margin: 0; margin: 0;
padding: 0; padding: 0;
background-position: center; background-position: center;
background-image: url(../images/down.png); background-image: url(../images/down.png);
position: absolute; position: absolute;
top: 11px; top: 11px;
right: 6px; right: 6px;
width: 20px; width: 20px;
height: 20px; height: 20px;
cursor: pointer; cursor: pointer;
} }
.colors_line { .colors_line {
float: left; float: left;
margin: 4px; margin: 4px;
margin-right: 0; margin-right: 0;
clear: left; clear: left;
} }
.custom { .custom {
opacity: 0; opacity: 0;
position: absolute; position: absolute;
left: -10000px; left: -10000px;
} }
.filter_button.button.color { .filter_button.button.color {
display: inline-block; display: inline-block;
width: 15px; width: 15px;
height: 15px; height: 15px;
border: 1px solid #EBEBEB; border: 1px solid #EBEBEB;
padding: 0; padding: 0;
margin: 0; margin: 0;
box-sizing: border-box; box-sizing: border-box;
-webkit-box-sizing: border-box; -webkit-box-sizing: border-box;
} }
.filter_button.button.color:hover { .filter_button.button.color:hover {
border: 1px solid rgb(128,128,128); border: 1px solid rgb(128,128,128);
cursor: pointer; cursor: pointer;
} }
input[type="radio"]:checked + .filter_button.button.color { input[type="radio"]:checked + .filter_button.button.color {
border: 1px solid rgb(255,255,255); border: 1px solid rgb(255,255,255);
box-shadow: 0 0 0px 1px #000; box-shadow: 0 0 0px 1px #000;
-webkit-box-shadow: 0 0 0px 1px #000; -webkit-box-shadow: 0 0 0px 1px #000;
} }
#allcolor { #allcolor {
background: white url('../images/search_app.png') -43px -144px no-repeat; background: white url('../images/search_app.png') -43px -144px no-repeat;
} }
#colored { #colored {
background: white url('../images/search_app.png') -43px -244px no-repeat; background: white url('../images/search_app.png') -43px -244px no-repeat;
} }
#grayed { #grayed {
background: white url('../images/search_app.png') -45px -343px no-repeat; background: white url('../images/search_app.png') -45px -343px no-repeat;
} }
#black{ #black{
background-color:#ffffff; background-color:#ffffff;
} }
#blue{ #blue{
background-color:#0000FF; background-color:#0000FF;
} }
#brown{ #brown{
background-color:rgba(139, 82, 16, 1); background-color:rgba(139, 82, 16, 1);
} }
#gray{ #gray{
background-color:#999999; background-color:#999999;
} }
#green{ #green{
background-color:#00CC00; background-color:#00CC00;
} }
#orange{ #orange{
background-color:#FB940B; background-color:#FB940B;
} }
#pink{ #pink{
background-color:#FF98BF; background-color:#FF98BF;
} }
#purple{ #purple{
background-color:#762CA7; background-color:#762CA7;
} }
#red{ #red{
background-color:#CC0000; background-color:#CC0000;
} }
#teal{ #teal{
background-color:#03C0C6; background-color:#03C0C6;
} }
#white{ #white{
background-color:#000000; background-color:#000000;
} }
#yellow{ #yellow{
background-color:#FFFF00; background-color:#FFFF00;
} }
.selectBox-dropdown, .selectBox-options li a { .selectBox-dropdown, .selectBox-options li a {
line-height: 1.3 !important; line-height: 1.3 !important;
font-size: 13px; font-size: 13px;
} }
.pager_button { .pager_button {
padding: 3px 5px; padding: 3px 5px;
font-size: 16px; font-size: 16px;
color: black; color: black;
display: inline-block; display: inline-block;
} }
.pager_button.active { .pager_button.active {
border-radius: 3px; border-radius: 3px;
-webkit-border-radius: 3px; -webkit-border-radius: 3px;
background-color: gray; background-color: gray;
color: white; color: white;
} }
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<html xmlns="http://www.w3.org/1999/xhtml"> <html xmlns="http://www.w3.org/1999/xhtml">
<head> <head>
<title>Planete Sankore Image Search</title> <title>Planete Sankore Image Search</title>
<link rel="stylesheet" type="text/css" href="css/basic.css"/> <link rel="stylesheet" type="text/css" href="css/basic.css"/>
<script type="text/javascript" src="scripts/jquery-1.6.2.min.js"></script> <script type="text/javascript" src="scripts/jquery-1.6.2.min.js"></script>
<script type="text/javascript"> <script type="text/javascript">
var category = "audio"; var category = "audio";
var thumbnails = false; var thumbnails = false;
var minHeight = 180; var minHeight = 177;
var minWidth = 150; var minWidth = 150;
var currentIndex = 0; var currentIndex = 0;
var currentTerm = ""; var currentTerm = "";
var limit = 10; var limit = 10;
var filtersDisplayed = false; //display or hide filters var filtersDisplayed = false; //display or hide filters
function addPaginationLinks(totalResults) { function addPaginationLinks(totalResults) {
var curPage = currentIndex; // check what page the app is on var curPage = currentIndex; // check what page the app is on
var pagesDiv = $("<div id='resultFooter' class='resultFooter'>"); var pagesDiv = $("<div id='resultFooter' class='resultFooter'>");
for (var i = 0; i < 8; i++) { for (var i = 0; i < 8; i++) {
if (i * limit < totalResults) { if (i * limit < totalResults) {
var link = $("<a class='pager_button'></a>").attr('href', 'javascript:gotoPage('+i+');').html(i+1).appendTo(pagesDiv); var link = $("<a class='pager_button'></a>").attr('href', 'javascript:gotoPage('+i+');').html(i+1).appendTo(pagesDiv);
if (curPage == i) { if (curPage == i) {
link.addClass('active'); link.addClass('active');
} }
} }
} }
$("#disc_nav_cont #resultFooter").remove(); $("#disc_nav_cont #resultFooter").remove();
pagesDiv.insertBefore($('#disclaimer')); pagesDiv.insertBefore($('#disclaimer'));
$(".imgContainer").each(function(){ $(".imgContainer").each(function(){
this.addEventListener("dragstart", imageDragging, false); this.addEventListener("dragstart", imageDragging, false);
}) })
$(".imgContainer").each(function(){ $(".imgContainer").each(function(){
this.addEventListener("dragenter", imageDragenter, false); this.addEventListener("dragenter", imageDragenter, false);
}) })
$(".imgContainer").each(function(){ $(".imgContainer").each(function(){
this.addEventListener("dragleave", imageDragleave, false); this.addEventListener("dragleave", imageDragleave, false);
}) })
$(".imgContainer").each(function(){ $(".imgContainer").each(function(){
this.addEventListener("dragover", imageDragover, false); this.addEventListener("dragover", imageDragover, false);
}) })
} }
function searchFail(jqXHR, textStatus, errorThrown) { function searchFail(jqXHR, textStatus, errorThrown) {
alert('Impossible to connect to Planete Sankore: ' + textStatus + ' ' + errorThrown); alert('Impossible to connect to Planete Sankore: ' + textStatus + ' ' + errorThrown);
} }
function searchComplete(json) { function searchComplete(json) {
// Grab our content div, clear it. // Grab our content div, clear it.
var totalResults = json.totalResults; var totalResults = json.totalResults;
var contentDiv = $('#searchResult').empty(); var contentDiv = $('#searchResult').empty();
// Loop through our results, printing them to the page. // Loop through our results, printing them to the page.
var results = json.rows; var results = json.rows;
for (var i = 0; i < results.length; i++) { for (var i = 0; i < results.length; i++) {
// For each result write it's title and image to the screen // For each result write it's title and image to the screen
var result = results[i]; var result = results[i];
var imgContainer = $("<div class='imgContainer' draggable='true'>"); var imgContainer = $("<div class='imgContainer' draggable='true'>");
var title = document.createElement('div'); var title = document.createElement('div');
var iUrl = $("<input type='hidden'/>"); var iUrl = $("<input type='hidden'/>");
var iContent = $("<input type='hidden'/>"); var iContent = $("<input type='hidden'/>");
var iHeight = $("<input type='hidden'/>"); var iHeight = $("<input type='hidden'/>");
var iWidth = $("<input type='hidden'/>"); var iWidth = $("<input type='hidden'/>");
var iTitle = $("<input type='hidden'/>"); var iTitle = $("<input type='hidden'/>");
// We use titleNoFormatting so that no HTML tags are left in the // We use titleNoFormatting so that no HTML tags are left in the
// title // title
title.innerHTML = result.title; title.innerHTML = result.title;
var newImg = document.createElement('img'); var newImg = document.createElement('img');
// There is also a result.file property which has the escaped version // There is also a result.file property which has the escaped version
if (thumbnails) { if (thumbnails) {
newImg.src = result.file; newImg.src = result.file;
} else { } else {
newImg.src = "./images/thumbnail_icon.png"; newImg.src = "./images/thumbnail_icon.png";
} }
var imgWidth = (result.tbWidth > minWidth)?result.tbWidth:minWidth; var imgWidth = (result.tbWidth > minWidth)?result.tbWidth:minWidth;
var imgHeight = (result.tbHeight > minHeight)?result.tbHeight:minHeight; var imgHeight = (result.tbHeight > minHeight)?result.tbHeight:minHeight;
imgContainer.width(imgWidth).height(imgHeight); imgContainer.width(imgWidth).height(imgHeight);
imgContainer.append($(newImg)); imgContainer.append($(newImg));
iUrl.attr("value", result.file); iUrl.attr("value", result.file);
iContent.attr("value", result.title); iContent.attr("value", result.title);
iHeight.attr("value", result.height); iHeight.attr("value", result.height);
iWidth.attr("value", result.width); iWidth.attr("value", result.width);
iTitle.attr("value",result.title); iTitle.attr("value",result.title);
imgContainer.append($(title)); imgContainer.append($(title));
imgContainer.append(iUrl); imgContainer.append(iUrl);
imgContainer.append(iContent); imgContainer.append(iContent);
imgContainer.append(iHeight); imgContainer.append(iHeight);
imgContainer.append(iWidth); imgContainer.append(iWidth);
imgContainer.append(iTitle); imgContainer.append(iTitle);
// Put our title + image in the content // Put our title + image in the content
imgContainer.appendTo(contentDiv); imgContainer.appendTo(contentDiv);
} }
// Now add links to additional pages of search results. // Now add links to additional pages of search results.
addPaginationLinks(totalResults); addPaginationLinks(totalResults);
} }
function imageDragging(e){ function imageDragging(e){
e.dataTransfer.setData("text/plain",$(this).find("input:hidden").eq(0).val()); e.dataTransfer.setData("text/plain",$(this).find("input:hidden").eq(0).val());
} }
function imageDragleave(e){ function imageDragleave(e){
return false; return false;
} }
function imageDragover(e){ function imageDragover(e){
return false; return false;
} }
function imageDragenter(e){ function imageDragenter(e){
return false; return false;
} }
$(document).ready(function(){ $(document).ready(function(){
//variables //variables
var mode = false; //search or view mode var mode = false; //search or view mode
var hide = false; //hide or no main panel var hide = false; //hide or no main panel
//basic containers and elements //basic containers and elements
var disc_nav_cont = $("<div id='disc_nav_cont' class='disc_nav_cont'>").appendTo("body"); var disc_nav_cont = $("<div id='disc_nav_cont' class='disc_nav_cont'>").appendTo("body");
var disclaimer = $("<div id='disclaimer' class='disclaimer'>Recherche de documents audio sur Planète Sankoré<div>").appendTo(disc_nav_cont); var disclaimer = $("<div id='disclaimer' class='disclaimer'>Recherche de documents audio sur Planète Sankoré<div>").appendTo(disc_nav_cont);
var search = $("<div id='search' class='search'>").appendTo("body"); var search = $("<div id='search' class='search'>").appendTo("body");
var togglePages = $("<div id='togglePages' class='togglePages'>").appendTo(search); var togglePages = $("<div id='togglePages' class='togglePages'>").appendTo(search);
var toggleIcon = $("<div id='toggleIcon' class='toggleIcon'>").appendTo(togglePages); var toggleIcon = $("<div id='toggleIcon' class='toggleIcon'>").appendTo(togglePages);
var subSearchInput = $("<div id='subSearchInput' class='subSearch'>").appendTo(search); var subSearchInput = $("<div id='subSearchInput' class='subSearch'>").appendTo(search);
var subSearchFilter = $("<div id='subSearchFilter' class='subSearch'>").appendTo(search); var subSearchFilter = $("<div id='subSearchFilter' class='subSearch'>").appendTo(search);
var searchInput = $("<input id='searchInput' class='searchInput' type='text'/>").appendTo(subSearchInput); var searchInput = $("<input id='searchInput' class='searchInput' type='text'/>").appendTo(subSearchInput);
var searchButton = $("<div id='searchButton' class='searchButton'>").appendTo(subSearchInput); var searchButton = $("<div id='searchButton' class='searchButton'>").appendTo(subSearchInput);
// var toggleFilters = $("<div id='toggleFilters' class='toggleFilters'>").appendTo(subSearchInput); // var toggleFilters = $("<div id='toggleFilters' class='toggleFilters'>").appendTo(subSearchInput);
//adding filters to the wgt //adding filters to the wgt
var selectFilter = $("<select id='sizeFilter' class='filterSelect'>") var selectFilter = $("<select id='sizeFilter' class='filterSelect'>")
.append($("<option value='0'>Any</option>")) .append($("<option value='0'>Any</option>"))
.append($("<option value='1'>Small</option>")) .append($("<option value='1'>Small</option>"))
.append($("<option value='2'>Medium</option>")) .append($("<option value='2'>Medium</option>"))
.append($("<option value='3'>Large</option>")) .append($("<option value='3'>Large</option>"))
.append($("<option value='4'>Extra large</option>")); .append($("<option value='4'>Extra large</option>"));
$("<div class='filterContainer'>").append("<span>Size:</span>").append(selectFilter).appendTo(subSearchFilter); $("<div class='filterContainer'>").append("<span>Size:</span>").append(selectFilter).appendTo(subSearchFilter);
//mouse click actions //mouse click actions
/* /*
toggleFilters.click(function(){ toggleFilters.click(function(){
if(filtersDisplayed){ if(filtersDisplayed){
subSearchFilter.hide(); subSearchFilter.hide();
toggleFilters.css("background-image","url(images/down.png)"); toggleFilters.css("background-image","url(images/down.png)");
filtersDisplayed = false; filtersDisplayed = false;
} else { } else {
subSearchFilter.show(); subSearchFilter.show();
toggleFilters.css("background-image","url(images/up.png)"); toggleFilters.css("background-image","url(images/up.png)");
filtersDisplayed = true; filtersDisplayed = true;
} }
}); });
*/ */
/*togglePages.click(function(event){ /*togglePages.click(function(event){
if(mode){ if(mode){
hide = false; hide = false;
$("#search, #disclaimer").slideDown('slow', function(){ $("#search, #disclaimer").slideDown('slow', function(){
toggleIcon.css("background-image","url(images/trgUp.png)"); toggleIcon.css("background-image","url(images/trgUp.png)");
togglePages.appendTo("#search").css("top","").css("bottom","-14px"); togglePages.appendTo("#search").css("top","").css("bottom","-14px");
}); });
mode = false; mode = false;
} else { } else {
hide = true; hide = true;
$("#search, #disclaimer").slideUp('slow', function(){ $("#search, #disclaimer").slideUp('slow', function(){
toggleIcon.css("background-image","url(images/trgDown.png)"); toggleIcon.css("background-image","url(images/trgDown.png)");
togglePages.appendTo("body").css("top","0"); togglePages.appendTo("body").css("top","0");
}); });
mode = true; mode = true;
} }
});*/ });*/
searchButton.click(function(){ searchButton.click(function(){
if(!hide){ if(!hide){
runSearch(searchInput.val(), 0); runSearch(searchInput.val(), 0);
//togglePages.trigger("click"); //togglePages.trigger("click");
} }
}); });
searchInput.keydown(function(event){ searchInput.keydown(function(event){
if(!hide){ if(!hide){
if((event.keyCode == 0xA)||(event.keyCode == 0xD)){ if((event.keyCode == 0xA)||(event.keyCode == 0xD)){
runSearch(searchInput.val(), 0); runSearch(searchInput.val(), 0);
//togglePages.trigger("click"); //togglePages.trigger("click");
} }
} }
}); });
( (
$(".imgContainer").live("click",function(){ $(".imgContainer").live("click",function(){
sankore.sendFileMetadata(createMetaData($(this))); sankore.sendFileMetadata(createMetaData($(this)));
})); }));
/*$(window).resize(function(){ /*$(window).resize(function(){
disclaimer.width($("body").width()-20); disclaimer.width($("body").width()-20);
search.width($("body").width()-20); search.width($("body").width()-20);
toggleIcon.css("margin-left",(togglePages.width()/2 - 7)); toggleIcon.css("margin-left",(togglePages.width()/2 - 7));
})*/ })*/
}); });
function gotoPage(i) { function gotoPage(i) {
runSearch(currentTerm, i); runSearch(currentTerm, i);
} }
// launching the search on planete sankore // launching the search on planete sankore
function runSearch(term, index) { function runSearch(term, index) {
currentTerm = term; currentTerm = term;
currentIndex = index; currentIndex = index;
var start = index * limit; var start = index * limit;
var url = "http://planete.sankore.org/xwiki/bin/view/Search/Resources?xpage=plain&category=" + category + "&level=&sort=title&dir=ASC&terms=" + escape(term) + "&start=" + start + "&limit=" + limit; var url = "http://planete.sankore.org/xwiki/bin/view/Search/Resources?xpage=plain&category=" + category + "&level=&sort=title&dir=ASC&terms=" + escape(term) + "&start=" + start + "&limit=" + limit;
$.ajax({ $.ajax({
url: url, url: url,
success: searchComplete, success: searchComplete,
error: searchFail, error: searchFail,
dataType: "json" dataType: "json"
}); });
} }
function createMetaData(parent){ function createMetaData(parent){
var meta = ""; var meta = "";
//alert($(this).find("input:hidden").eq(0).val()); //alert($(this).find("input:hidden").eq(0).val());
meta = "<metadata><data><key>Type</key><value>Audio</value></data><data><key>Url</key><value>" + meta = "<metadata><data><key>Type</key><value>Audio</value></data><data><key>Url</key><value>" +
parent.find("input:hidden").eq(0).val() + parent.find("input:hidden").eq(0).val() +
"</value></data><data><key>Content</key><value>" + "</value></data><data><key>Content</key><value>" +
parent.find("input:hidden").eq(1).val() + parent.find("input:hidden").eq(1).val() +
"</value></data><data><key>Height</key><value>n/a</value></data>"+ "</value></data><data><key>Height</key><value>n/a</value></data>"+
"<data><key>Width</key><value>n/a</value></data><data><key>Title</key><value>" + "<data><key>Width</key><value>n/a</value></data><data><key>Title</key><value>" +
parent.find("input:hidden").eq(4).val() + parent.find("input:hidden").eq(4).val() +
"</value></data></metadata>"; "</value></data></metadata>";
return meta; return meta;
} }
</script> </script>
</head> </head>
<body style="font-family: Arial;border: 0 none;"> <body style="font-family: Arial;border: 0 none;">
<div id="searchResult"></div> <div id="searchResult"></div>
</body> </body>
</html> </html>
This source diff could not be displayed because it is too large. You can view the blob instead.
html, body{ html, body{
width: 100%; width: 100%;
padding: 0; padding: 0;
height: auto; height: auto;
background-color: white; background-color: white;
margin: 0; margin: 0;
} }
::-webkit-scrollbar { ::-webkit-scrollbar {
width: 14px; width: 14px;
background-color:white; background-color:white;
} }
::-webkit-scrollbar-thumb { ::-webkit-scrollbar-thumb {
border-radius: 10px; border-radius: 10px;
background-color:lightgray; background-color:lightgray;
border: 2px solid gray; border: 2px solid gray;
} }
::-webkit-scrollbar-button:vertical:start{ ::-webkit-scrollbar-button:vertical:start{
border-radius: 10px; border-radius: 10px;
background-color:lightgray; background-color:lightgray;
background-image: url(../images/trgUp.png); background-image: url(../images/trgUp.png);
background-size: 8px auto; background-size: 8px auto;
background-position: center; background-position: center;
background-repeat: no-repeat; background-repeat: no-repeat;
border: 2px solid gray; border: 2px solid gray;
} }
::-webkit-scrollbar-button:vertical:end{ ::-webkit-scrollbar-button:vertical:end{
border-radius: 10px; border-radius: 10px;
background-color:lightgray; background-color:lightgray;
background-image: url(../images/trgDown.png); background-image: url(../images/trgDown.png);
background-size: 8px auto; background-size: 8px auto;
background-position: center; background-position: center;
background-repeat: no-repeat; background-repeat: no-repeat;
border: 2px solid gray; border: 2px solid gray;
} }
a { a {
text-decoration: underline; text-decoration: underline;
} }
#disc_nav_cont{ #disc_nav_cont{
height: auto; height: auto;
position: fixed; position: fixed;
left: 0; left: 0;
bottom: 0; bottom: 0;
width: 100%; width: 100%;
} }
.disclaimer{ .disclaimer{
padding: 5px; padding: 5px;
text-align: center; text-align: center;
background-color: #BBBBBB; background-color: #BBBBBB;
border-top: solid 4px #EEEEEE; border-top: solid 4px #EEEEEE;
border-bottom: none; border-bottom: none;
font-size: 12px; font-size: 12px;
} }
.resultFooter{ .resultFooter{
width: 100%; width: 100%;
padding: 3px; padding: 3px;
font-family: Verdana,Arial,Helvetica,sans-serif; font-family: Verdana,Arial,Helvetica,sans-serif;
font-weight: bold; font-weight: bold;
font-size: x-large; font-size: x-large;
text-align: center; text-align: center;
background-color: white; background-color: white;
} }
#searchResult { #searchResult {
overflow: hidden; overflow: hidden;
text-align: center; text-align: center;
margin-top: 50px; margin-top: 50px;
margin-bottom: 50px; margin-bottom: 85px;
} }
.search{ .search{
position: fixed; position: fixed;
top: 0; top: 0;
left: 0; left: 0;
padding: 5px; padding: 5px;
background-color: #BBBBBB; background-color: #BBBBBB;
border-bottom: solid 4px #EEEEEE; border-bottom: solid 4px #EEEEEE;
} }
.search, .search,
.disclaimer { .disclaimer {
width: 100%; width: 100%;
box-sizing: border-box; box-sizing: border-box;
-webkit-box-sizing: border-box; -webkit-box-sizing: border-box;
} }
.searchInput{ .searchInput{
padding: 3px; padding: 3px;
float: left; float: left;
width: 100%; width: 100%;
border-radius: 3px; border-radius: 3px;
border-style: none; border-style: none;
height: 22px; height: 22px;
line-height: 18px; line-height: 18px;
vertical-align: middle; vertical-align: middle;
box-sizing: border-box; box-sizing: border-box;
-webkit-box-sizing: border-box; -webkit-box-sizing: border-box;
} }
.searchButton{ .searchButton{
background: url("../images/search_app.png") -38px -38px no-repeat; background: url("../images/search_app.png") -38px -38px no-repeat;
width: 24px; width: 24px;
height: 24px; height: 24px;
overflow: hidden; overflow: hidden;
position: absolute; position: absolute;
right: 30px; right: 30px;
top: 9px; top: 9px;
margin-left: -2px; margin-left: -2px;
cursor: pointer; cursor: pointer;
} }
.subSearch{ .subSearch{
margin: 0; margin: 0;
float: left; float: left;
} }
#subSearchInput{ #subSearchInput{
width: 100%; width: 100%;
float: left; float: left;
box-sizing: border-box; box-sizing: border-box;
-webkit-box-sizing: border-box; -webkit-box-sizing: border-box;
padding: 5px; padding: 5px;
padding-right: 26px; padding-right: 26px;
} }
#subSearchFilter{ #subSearchFilter{
width: 100%; width: 100%;
float: left; float: left;
display: none; display: none;
} }
.searchResult{ .searchResult{
width: 98%; width: 98%;
padding: 3px; padding: 3px;
background-color:#123456; background-color:#123456;
} }
.imgContainer{ .imgContainer{
display: inline-block; display: inline-block;
padding: 3px; padding: 3px;
margin: 3px; margin: 3px;
text-align: center; text-align: center;
overflow: hidden; overflow: hidden;
font-size: small; font-size: small;
font-family: Verdana,Arial,Helvetica,sans-serif; font-family: Verdana,Arial,Helvetica,sans-serif;
border: 1px solid #666; border: 1px solid #666;
border-radius: 5px; border-radius: 5px;
-webkit-box-shadow: #dadada -1px 0 4px; -webkit-box-shadow: #dadada -1px 0 4px;
-webkit-border-radius: 5px; -webkit-border-radius: 5px;
box-shadow: #666 -1px 0 4px; box-shadow: #666 -1px 0 4px;
vertical-align: top; vertical-align: top;
} }
.filterContainer{ .filterContainer{
float: left; float: left;
margin: 2px; margin: 2px;
padding: 2px; padding: 2px;
font-size: 14px; font-size: 14px;
} }
.filterSelect{ .filterSelect{
border-style:none; border-style:none;
-webkit-border-top-right-radius: 15px; -webkit-border-top-right-radius: 15px;
-webkit-border-bottom-right-radius: 15px; -webkit-border-bottom-right-radius: 15px;
-moz-border-radius-topright: 15px; -moz-border-radius-topright: 15px;
-moz-border-radius-bottomright: 15px; -moz-border-radius-bottomright: 15px;
border-top-right-radius: 15px; border-top-right-radius: 15px;
margin-top: 2px; margin-top: 2px;
width: 100%; width: 100%;
} }
span{ span{
font-family: Verdana,Arial,Helvetica,sans-serif; font-family: Verdana,Arial,Helvetica,sans-serif;
color: #666; color: #666;
} }
[draggable] { [draggable] {
-webkit-user-select: none; -webkit-user-select: none;
user-select: none; user-select: none;
} }
.toggleFilters{ .toggleFilters{
margin: 0; margin: 0;
padding: 0; padding: 0;
background-position: center; background-position: center;
background-image: url(../images/down.png); background-image: url(../images/down.png);
position: absolute; position: absolute;
top: 11px; top: 11px;
right: 6px; right: 6px;
width: 20px; width: 20px;
height: 20px; height: 20px;
cursor: pointer; cursor: pointer;
} }
.colors_line { .colors_line {
float: left; float: left;
margin: 4px; margin: 4px;
margin-right: 0; margin-right: 0;
clear: left; clear: left;
} }
.custom { .custom {
opacity: 0; opacity: 0;
position: absolute; position: absolute;
left: -10000px; left: -10000px;
} }
.filter_button.button.color { .filter_button.button.color {
display: inline-block; display: inline-block;
width: 15px; width: 15px;
height: 15px; height: 15px;
border: 1px solid #EBEBEB; border: 1px solid #EBEBEB;
padding: 0; padding: 0;
margin: 0; margin: 0;
box-sizing: border-box; box-sizing: border-box;
-webkit-box-sizing: border-box; -webkit-box-sizing: border-box;
} }
.filter_button.button.color:hover { .filter_button.button.color:hover {
border: 1px solid rgb(128,128,128); border: 1px solid rgb(128,128,128);
cursor: pointer; cursor: pointer;
} }
input[type="radio"]:checked + .filter_button.button.color { input[type="radio"]:checked + .filter_button.button.color {
border: 1px solid rgb(255,255,255); border: 1px solid rgb(255,255,255);
box-shadow: 0 0 0px 1px #000; box-shadow: 0 0 0px 1px #000;
-webkit-box-shadow: 0 0 0px 1px #000; -webkit-box-shadow: 0 0 0px 1px #000;
} }
#allcolor { #allcolor {
background: white url('../images/search_app.png') -43px -144px no-repeat; background: white url('../images/search_app.png') -43px -144px no-repeat;
} }
#colored { #colored {
background: white url('../images/search_app.png') -43px -244px no-repeat; background: white url('../images/search_app.png') -43px -244px no-repeat;
} }
#grayed { #grayed {
background: white url('../images/search_app.png') -45px -343px no-repeat; background: white url('../images/search_app.png') -45px -343px no-repeat;
} }
#black{ #black{
background-color:#ffffff; background-color:#ffffff;
} }
#blue{ #blue{
background-color:#0000FF; background-color:#0000FF;
} }
#brown{ #brown{
background-color:rgba(139, 82, 16, 1); background-color:rgba(139, 82, 16, 1);
} }
#gray{ #gray{
background-color:#999999; background-color:#999999;
} }
#green{ #green{
background-color:#00CC00; background-color:#00CC00;
} }
#orange{ #orange{
background-color:#FB940B; background-color:#FB940B;
} }
#pink{ #pink{
background-color:#FF98BF; background-color:#FF98BF;
} }
#purple{ #purple{
background-color:#762CA7; background-color:#762CA7;
} }
#red{ #red{
background-color:#CC0000; background-color:#CC0000;
} }
#teal{ #teal{
background-color:#03C0C6; background-color:#03C0C6;
} }
#white{ #white{
background-color:#000000; background-color:#000000;
} }
#yellow{ #yellow{
background-color:#FFFF00; background-color:#FFFF00;
} }
.selectBox-dropdown, .selectBox-options li a { .selectBox-dropdown, .selectBox-options li a {
line-height: 1.3 !important; line-height: 1.3 !important;
font-size: 13px; font-size: 13px;
} }
.pager_button { .pager_button {
padding: 3px 5px; padding: 3px 5px;
font-size: 16px; font-size: 16px;
color: black; color: black;
display: inline-block; display: inline-block;
} }
.pager_button.active { .pager_button.active {
border-radius: 3px; border-radius: 3px;
-webkit-border-radius: 3px; -webkit-border-radius: 3px;
background-color: gray; background-color: gray;
color: white; color: white;
} }
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<html xmlns="http://www.w3.org/1999/xhtml"> <html xmlns="http://www.w3.org/1999/xhtml">
<head> <head>
<title>Planete Sankore Image Search</title> <title>Planete Sankore Image Search</title>
<link rel="stylesheet" type="text/css" href="css/basic.css"/> <link rel="stylesheet" type="text/css" href="css/basic.css"/>
<script type="text/javascript" src="scripts/jquery-1.6.2.min.js"></script> <script type="text/javascript" src="scripts/jquery-1.6.2.min.js"></script>
<script type="text/javascript"> <script type="text/javascript">
var category = "interactive"; var category = "interactive";
var thumbnails = false; var thumbnails = false;
var minHeight = 180; var minHeight = 177;
var minWidth = 150; var minWidth = 150;
var currentIndex = 0; var currentIndex = 0;
var currentTerm = ""; var currentTerm = "";
var limit = 10; var limit = 10;
var filtersDisplayed = false; //display or hide filters var filtersDisplayed = false; //display or hide filters
function addPaginationLinks(totalResults) { function addPaginationLinks(totalResults) {
var curPage = currentIndex; // check what page the app is on var curPage = currentIndex; // check what page the app is on
var pagesDiv = $("<div id='resultFooter' class='resultFooter'>"); var pagesDiv = $("<div id='resultFooter' class='resultFooter'>");
for (var i = 0; i < 8; i++) { for (var i = 0; i < 8; i++) {
if (i * limit < totalResults) { if (i * limit < totalResults) {
var link = $("<a class='pager_button'></a>").attr('href', 'javascript:gotoPage('+i+');').html(i+1).appendTo(pagesDiv); var link = $("<a class='pager_button'></a>").attr('href', 'javascript:gotoPage('+i+');').html(i+1).appendTo(pagesDiv);
if (curPage == i) { if (curPage == i) {
link.addClass('active'); link.addClass('active');
} }
} }
} }
$("#disc_nav_cont #resultFooter").remove(); $("#disc_nav_cont #resultFooter").remove();
pagesDiv.insertBefore($('#disclaimer')); pagesDiv.insertBefore($('#disclaimer'));
$(".imgContainer").each(function(){ $(".imgContainer").each(function(){
this.addEventListener("dragstart", imageDragging, false); this.addEventListener("dragstart", imageDragging, false);
}) })
$(".imgContainer").each(function(){ $(".imgContainer").each(function(){
this.addEventListener("dragenter", imageDragenter, false); this.addEventListener("dragenter", imageDragenter, false);
}) })
$(".imgContainer").each(function(){ $(".imgContainer").each(function(){
this.addEventListener("dragleave", imageDragleave, false); this.addEventListener("dragleave", imageDragleave, false);
}) })
$(".imgContainer").each(function(){ $(".imgContainer").each(function(){
this.addEventListener("dragover", imageDragover, false); this.addEventListener("dragover", imageDragover, false);
}) })
} }
function searchFail(jqXHR, textStatus, errorThrown) { function searchFail(jqXHR, textStatus, errorThrown) {
alert('Impossible to connect to Planete Sankore: ' + textStatus + ' ' + errorThrown); alert('Impossible to connect to Planete Sankore: ' + textStatus + ' ' + errorThrown);
} }
function searchComplete(json) { function searchComplete(json) {
// Grab our content div, clear it. // Grab our content div, clear it.
var totalResults = json.totalResults; var totalResults = json.totalResults;
var contentDiv = $('#searchResult').empty(); var contentDiv = $('#searchResult').empty();
// Loop through our results, printing them to the page. // Loop through our results, printing them to the page.
var results = json.rows; var results = json.rows;
for (var i = 0; i < results.length; i++) { for (var i = 0; i < results.length; i++) {
// For each result write it's title and image to the screen // For each result write it's title and image to the screen
var result = results[i]; var result = results[i];
var imgContainer = $("<div class='imgContainer' draggable='true'>"); var imgContainer = $("<div class='imgContainer' draggable='true'>");
var title = document.createElement('div'); var title = document.createElement('div');
var iUrl = $("<input type='hidden'/>"); var iUrl = $("<input type='hidden'/>");
var iContent = $("<input type='hidden'/>"); var iContent = $("<input type='hidden'/>");
var iHeight = $("<input type='hidden'/>"); var iHeight = $("<input type='hidden'/>");
var iWidth = $("<input type='hidden'/>"); var iWidth = $("<input type='hidden'/>");
var iTitle = $("<input type='hidden'/>"); var iTitle = $("<input type='hidden'/>");
// We use titleNoFormatting so that no HTML tags are left in the // We use titleNoFormatting so that no HTML tags are left in the
// title // title
title.innerHTML = result.title; title.innerHTML = result.title;
var newImg = document.createElement('img'); var newImg = document.createElement('img');
// There is also a result.file property which has the escaped version // There is also a result.file property which has the escaped version
if (thumbnails) { if (thumbnails) {
newImg.src = result.file; newImg.src = result.file;
} else { } else {
newImg.src = "./images/thumbnail_icon.png"; newImg.src = "./images/thumbnail_icon.png";
} }
var imgWidth = (result.tbWidth > minWidth)?result.tbWidth:minWidth; var imgWidth = (result.tbWidth > minWidth)?result.tbWidth:minWidth;
var imgHeight = (result.tbHeight > minHeight)?result.tbHeight:minHeight; var imgHeight = (result.tbHeight > minHeight)?result.tbHeight:minHeight;
imgContainer.width(imgWidth).height(imgHeight); imgContainer.width(imgWidth).height(imgHeight);
imgContainer.append($(newImg)); imgContainer.append($(newImg));
iUrl.attr("value", result.file); iUrl.attr("value", result.file);
iContent.attr("value", result.title); iContent.attr("value", result.title);
iHeight.attr("value", result.height); iHeight.attr("value", result.height);
iWidth.attr("value", result.width); iWidth.attr("value", result.width);
iTitle.attr("value",result.title); iTitle.attr("value",result.title);
imgContainer.append($(title)); imgContainer.append($(title));
imgContainer.append(iUrl); imgContainer.append(iUrl);
imgContainer.append(iContent); imgContainer.append(iContent);
imgContainer.append(iHeight); imgContainer.append(iHeight);
imgContainer.append(iWidth); imgContainer.append(iWidth);
imgContainer.append(iTitle); imgContainer.append(iTitle);
// Put our title + image in the content // Put our title + image in the content
imgContainer.appendTo(contentDiv); imgContainer.appendTo(contentDiv);
} }
// Now add links to additional pages of search results. // Now add links to additional pages of search results.
addPaginationLinks(totalResults); addPaginationLinks(totalResults);
} }
function imageDragging(e){ function imageDragging(e){
e.dataTransfer.setData("text/plain",$(this).find("input:hidden").eq(0).val()); e.dataTransfer.setData("text/plain",$(this).find("input:hidden").eq(0).val());
// alert($(this).find("input:hidden").eq(0).val()); // alert($(this).find("input:hidden").eq(0).val());
} }
function imageDragleave(e){ function imageDragleave(e){
return false; return false;
} }
function imageDragover(e){ function imageDragover(e){
return false; return false;
} }
function imageDragenter(e){ function imageDragenter(e){
return false; return false;
} }
$(document).ready(function(){ $(document).ready(function(){
//variables //variables
var mode = false; //search or view mode var mode = false; //search or view mode
var hide = false; //hide or no main panel var hide = false; //hide or no main panel
//basic containers and elements //basic containers and elements
var disc_nav_cont = $("<div id='disc_nav_cont' class='disc_nav_cont'>").appendTo("body"); var disc_nav_cont = $("<div id='disc_nav_cont' class='disc_nav_cont'>").appendTo("body");
var disclaimer = $("<div id='disclaimer' class='disclaimer'>Recherche de documents flash sur Planète Sankoré<div>").appendTo(disc_nav_cont); var disclaimer = $("<div id='disclaimer' class='disclaimer'>Recherche de documents flash sur Planète Sankoré<div>").appendTo(disc_nav_cont);
var search = $("<div id='search' class='search'>").appendTo("body"); var search = $("<div id='search' class='search'>").appendTo("body");
var togglePages = $("<div id='togglePages' class='togglePages'>").appendTo(search); var togglePages = $("<div id='togglePages' class='togglePages'>").appendTo(search);
var toggleIcon = $("<div id='toggleIcon' class='toggleIcon'>").appendTo(togglePages); var toggleIcon = $("<div id='toggleIcon' class='toggleIcon'>").appendTo(togglePages);
var subSearchInput = $("<div id='subSearchInput' class='subSearch'>").appendTo(search); var subSearchInput = $("<div id='subSearchInput' class='subSearch'>").appendTo(search);
var subSearchFilter = $("<div id='subSearchFilter' class='subSearch'>").appendTo(search); var subSearchFilter = $("<div id='subSearchFilter' class='subSearch'>").appendTo(search);
var searchInput = $("<input id='searchInput' class='searchInput' type='text'/>").appendTo(subSearchInput); var searchInput = $("<input id='searchInput' class='searchInput' type='text'/>").appendTo(subSearchInput);
var searchButton = $("<div id='searchButton' class='searchButton'>").appendTo(subSearchInput); var searchButton = $("<div id='searchButton' class='searchButton'>").appendTo(subSearchInput);
// var toggleFilters = $("<div id='toggleFilters' class='toggleFilters'>").appendTo(subSearchInput); // var toggleFilters = $("<div id='toggleFilters' class='toggleFilters'>").appendTo(subSearchInput);
//adding filters to the wgt //adding filters to the wgt
var selectFilter = $("<select id='sizeFilter' class='filterSelect'>") var selectFilter = $("<select id='sizeFilter' class='filterSelect'>")
.append($("<option value='0'>Any</option>")) .append($("<option value='0'>Any</option>"))
.append($("<option value='1'>Small</option>")) .append($("<option value='1'>Small</option>"))
.append($("<option value='2'>Medium</option>")) .append($("<option value='2'>Medium</option>"))
.append($("<option value='3'>Large</option>")) .append($("<option value='3'>Large</option>"))
.append($("<option value='4'>Extra large</option>")); .append($("<option value='4'>Extra large</option>"));
$("<div class='filterContainer'>").append("<span>Size:</span>").append(selectFilter).appendTo(subSearchFilter); $("<div class='filterContainer'>").append("<span>Size:</span>").append(selectFilter).appendTo(subSearchFilter);
//mouse click actions //mouse click actions
/* /*
toggleFilters.click(function(){ toggleFilters.click(function(){
if(filtersDisplayed){ if(filtersDisplayed){
subSearchFilter.hide(); subSearchFilter.hide();
toggleFilters.css("background-image","url(images/down.png)"); toggleFilters.css("background-image","url(images/down.png)");
filtersDisplayed = false; filtersDisplayed = false;
} else { } else {
subSearchFilter.show(); subSearchFilter.show();
toggleFilters.css("background-image","url(images/up.png)"); toggleFilters.css("background-image","url(images/up.png)");
filtersDisplayed = true; filtersDisplayed = true;
} }
}); });
*/ */
/*togglePages.click(function(event){ /*togglePages.click(function(event){
if(mode){ if(mode){
hide = false; hide = false;
$("#search, #disclaimer").slideDown('slow', function(){ $("#search, #disclaimer").slideDown('slow', function(){
toggleIcon.css("background-image","url(images/trgUp.png)"); toggleIcon.css("background-image","url(images/trgUp.png)");
togglePages.appendTo("#search").css("top","").css("bottom","-14px"); togglePages.appendTo("#search").css("top","").css("bottom","-14px");
}); });
mode = false; mode = false;
} else { } else {
hide = true; hide = true;
$("#search, #disclaimer").slideUp('slow', function(){ $("#search, #disclaimer").slideUp('slow', function(){
toggleIcon.css("background-image","url(images/trgDown.png)"); toggleIcon.css("background-image","url(images/trgDown.png)");
togglePages.appendTo("body").css("top","0"); togglePages.appendTo("body").css("top","0");
}); });
mode = true; mode = true;
} }
});*/ });*/
searchButton.click(function(){ searchButton.click(function(){
if(!hide){ if(!hide){
runSearch(searchInput.val(), 0); runSearch(searchInput.val(), 0);
//togglePages.trigger("click"); //togglePages.trigger("click");
} }
}); });
searchInput.keydown(function(event){ searchInput.keydown(function(event){
if(!hide){ if(!hide){
if((event.keyCode == 0xA)||(event.keyCode == 0xD)){ if((event.keyCode == 0xA)||(event.keyCode == 0xD)){
runSearch(searchInput.val(), 0); runSearch(searchInput.val(), 0);
//togglePages.trigger("click"); //togglePages.trigger("click");
} }
} }
}); });
( (
$(".imgContainer").live("click",function(){ $(".imgContainer").live("click",function(){
sankore.sendFileMetadata(createMetaData($(this))); sankore.sendFileMetadata(createMetaData($(this)));
})); }));
/*$(window).resize(function(){ /*$(window).resize(function(){
disclaimer.width($("body").width()-20); disclaimer.width($("body").width()-20);
search.width($("body").width()-20); search.width($("body").width()-20);
toggleIcon.css("margin-left",(togglePages.width()/2 - 7)); toggleIcon.css("margin-left",(togglePages.width()/2 - 7));
})*/ })*/
}); });
function gotoPage(i) { function gotoPage(i) {
runSearch(currentTerm, i); runSearch(currentTerm, i);
} }
// launching the search on planete sankore // launching the search on planete sankore
function runSearch(term, index) { function runSearch(term, index) {
currentTerm = term; currentTerm = term;
currentIndex = index; currentIndex = index;
var start = index * limit; var start = index * limit;
var url = "http://planete.sankore.org/xwiki/bin/view/Search/Resources?xpage=plain&category=" + category + "&level=&sort=title&dir=ASC&terms=" + escape(term) + "&start=" + start + "&limit=" + limit; var url = "http://planete.sankore.org/xwiki/bin/view/Search/Resources?xpage=plain&category=" + category + "&level=&sort=title&dir=ASC&terms=" + escape(term) + "&start=" + start + "&limit=" + limit;
$.ajax({ $.ajax({
url: url, url: url,
success: searchComplete, success: searchComplete,
error: searchFail, error: searchFail,
dataType: "json" dataType: "json"
}); });
} }
function createMetaData(parent){ function createMetaData(parent){
var meta = ""; var meta = "";
meta = "<metadata><data><key>Type</key><value>Flash</value></data><data><key>Url</key><value>" + meta = "<metadata><data><key>Type</key><value>Flash</value></data><data><key>Url</key><value>" +
parent.find("input:hidden").eq(0).val() + parent.find("input:hidden").eq(0).val() +
"</value></data><data><key>Content</key><value>" + "</value></data><data><key>Content</key><value>" +
parent.find("input:hidden").eq(1).val() + parent.find("input:hidden").eq(1).val() +
"</value></data><data><key>Height</key><value>n/a</value></data>"+ "</value></data><data><key>Height</key><value>n/a</value></data>"+
"<data><key>Width</key><value>n/a</value></data><data><key>Title</key><value>" + "<data><key>Width</key><value>n/a</value></data><data><key>Title</key><value>" +
parent.find("input:hidden").eq(4).val() + parent.find("input:hidden").eq(4).val() +
"</value></data></metadata>"; "</value></data></metadata>";
return meta; return meta;
} }
</script> </script>
</head> </head>
<body style="font-family: Arial;border: 0 none;"> <body style="font-family: Arial;border: 0 none;">
<div id="searchResult"></div> <div id="searchResult"></div>
</body> </body>
</html> </html>
This source diff could not be displayed because it is too large. You can view the blob instead.
File mode changed from 100644 to 100755
html, body{ html, body{
width: 100%; width: 100%;
padding: 0; padding: 0;
height: auto; height: auto;
background-color: white; background-color: white;
margin: 0; margin: 0;
} }
::-webkit-scrollbar { ::-webkit-scrollbar {
width: 14px; width: 14px;
background-color:white; background-color:white;
} }
::-webkit-scrollbar-thumb { ::-webkit-scrollbar-thumb {
border-radius: 10px; border-radius: 10px;
background-color:lightgray; background-color:lightgray;
border: 2px solid gray; border: 2px solid gray;
} }
::-webkit-scrollbar-button:vertical:start{ ::-webkit-scrollbar-button:vertical:start{
border-radius: 10px; border-radius: 10px;
background-color:lightgray; background-color:lightgray;
background-image: url(../images/trgUp.png); background-image: url(../images/trgUp.png);
background-size: 8px auto; background-size: 8px auto;
background-position: center; background-position: center;
background-repeat: no-repeat; background-repeat: no-repeat;
border: 2px solid gray; border: 2px solid gray;
} }
::-webkit-scrollbar-button:vertical:end{ ::-webkit-scrollbar-button:vertical:end{
border-radius: 10px; border-radius: 10px;
background-color:lightgray; background-color:lightgray;
background-image: url(../images/trgDown.png); background-image: url(../images/trgDown.png);
background-size: 8px auto; background-size: 8px auto;
background-position: center; background-position: center;
background-repeat: no-repeat; background-repeat: no-repeat;
border: 2px solid gray; border: 2px solid gray;
} }
a { a {
text-decoration: underline; text-decoration: underline;
} }
#disc_nav_cont{ #disc_nav_cont{
height: auto; height: auto;
position: fixed; position: fixed;
left: 0; left: 0;
bottom: 0; bottom: 0;
width: 100%; width: 100%;
} }
.disclaimer{ .disclaimer{
padding: 5px; padding: 5px;
text-align: center; text-align: center;
background-color: #BBBBBB; background-color: #BBBBBB;
border-top: solid 4px #EEEEEE; border-top: solid 4px #EEEEEE;
border-bottom: none; border-bottom: none;
font-size: 12px; font-size: 12px;
} }
.resultFooter{ .resultFooter{
width: 100%; width: 100%;
padding: 3px; padding: 3px;
font-family: Verdana,Arial,Helvetica,sans-serif; font-family: Verdana,Arial,Helvetica,sans-serif;
font-weight: bold; font-weight: bold;
font-size: x-large; font-size: x-large;
text-align: center; text-align: center;
background-color: white; background-color: white;
} }
#searchResult { #searchResult {
overflow: hidden; overflow: hidden;
text-align: center; text-align: center;
margin-top: 50px; margin-top: 50px;
margin-bottom: 50px; margin-bottom: 85px;
} }
.search{ .search{
position: fixed; position: fixed;
top: 0; top: 0;
left: 0; left: 0;
padding: 5px; padding: 5px;
background-color: #BBBBBB; background-color: #BBBBBB;
border-bottom: solid 4px #EEEEEE; border-bottom: solid 4px #EEEEEE;
} }
.search, .search,
.disclaimer { .disclaimer {
width: 100%; width: 100%;
box-sizing: border-box; box-sizing: border-box;
-webkit-box-sizing: border-box; -webkit-box-sizing: border-box;
} }
.toggleIcon{ .toggleIcon{
display: inline-block; display: inline-block;
width: 14px; width: 14px;
height: 14px; height: 14px;
background: url(../images/trgUp.png) 50% no-repeat; background: url(../images/trgUp.png) 50% no-repeat;
} }
.searchInput{ .searchInput{
padding: 3px; padding: 3px;
float: left; float: left;
width: 100%; width: 100%;
border-radius: 3px; border-radius: 3px;
border-style: none; border-style: none;
height: 22px; height: 22px;
line-height: 18px; line-height: 18px;
vertical-align: middle; vertical-align: middle;
box-sizing: border-box; box-sizing: border-box;
-webkit-box-sizing: border-box; -webkit-box-sizing: border-box;
} }
.searchButton{ .searchButton{
background: url("../images/search_app.png") -38px -38px no-repeat; background: url("../images/search_app.png") -38px -38px no-repeat;
width: 24px; width: 24px;
height: 24px; height: 24px;
overflow: hidden; overflow: hidden;
position: absolute; position: absolute;
right: 30px; right: 30px;
top: 9px; top: 9px;
margin-left: -2px; margin-left: -2px;
cursor: pointer; cursor: pointer;
} }
.subSearch{ .subSearch{
margin: 0; margin: 0;
float: left; float: left;
} }
#subSearchInput{ #subSearchInput{
width: 100%; width: 100%;
float: left; float: left;
box-sizing: border-box; box-sizing: border-box;
-webkit-box-sizing: border-box; -webkit-box-sizing: border-box;
padding: 5px; padding: 5px;
padding-right: 26px; padding-right: 26px;
} }
#subSearchFilter{ #subSearchFilter{
width: 100%; width: 100%;
float: left; float: left;
display: none; display: none;
} }
.searchResult{ .searchResult{
width: 98%; width: 98%;
padding: 3px; padding: 3px;
background-color:#123456; background-color:#123456;
} }
.imgContainer{ .imgContainer{
display: inline-block; display: inline-block;
padding: 3px; padding: 3px;
margin: 3px; margin: 3px;
text-align: center; text-align: center;
overflow: hidden; overflow: hidden;
font-size: small; font-size: small;
font-family: Verdana,Arial,Helvetica,sans-serif; font-family: Verdana,Arial,Helvetica,sans-serif;
vertical-align: top; vertical-align: top;
} }
.filterContainer{ .filterContainer{
float: left; float: left;
margin: 2px; margin: 2px;
padding: 2px; padding: 2px;
font-size: 14px; font-size: 14px;
} }
.filterSelect{ .filterSelect{
border-style:none; border-style:none;
-webkit-border-top-right-radius: 15px; -webkit-border-top-right-radius: 15px;
-webkit-border-bottom-right-radius: 15px; -webkit-border-bottom-right-radius: 15px;
-moz-border-radius-topright: 15px; -moz-border-radius-topright: 15px;
-moz-border-radius-bottomright: 15px; -moz-border-radius-bottomright: 15px;
border-top-right-radius: 15px; border-top-right-radius: 15px;
margin-top: 2px; margin-top: 2px;
width: 100%; width: 100%;
} }
span{ span{
font-family: Verdana,Arial,Helvetica,sans-serif; font-family: Verdana,Arial,Helvetica,sans-serif;
color: #666; color: #666;
} }
[draggable] { [draggable] {
-webkit-user-select: none; -webkit-user-select: none;
user-select: none; user-select: none;
} }
.toggleFilters{ .toggleFilters{
margin: 0; margin: 0;
padding: 0; padding: 0;
background-position: center; background-position: center;
background-image: url(../images/down.png); background-image: url(../images/down.png);
position: absolute; position: absolute;
top: 11px; top: 11px;
right: 6px; right: 6px;
width: 20px; width: 20px;
height: 20px; height: 20px;
cursor: pointer; cursor: pointer;
} }
.colors_line { .colors_line {
float: left; float: left;
margin: 4px; margin: 4px;
margin-right: 0; margin-right: 0;
clear: left; clear: left;
} }
.custom { .custom {
opacity: 0; opacity: 0;
position: absolute; position: absolute;
left: -10000px; left: -10000px;
} }
.filter_button.button.color { .filter_button.button.color {
display: inline-block; display: inline-block;
width: 15px; width: 15px;
height: 15px; height: 15px;
border: 1px solid #EBEBEB; border: 1px solid #EBEBEB;
padding: 0; padding: 0;
margin: 0; margin: 0;
box-sizing: border-box; box-sizing: border-box;
-webkit-box-sizing: border-box; -webkit-box-sizing: border-box;
} }
.filter_button.button.color:hover { .filter_button.button.color:hover {
border: 1px solid rgb(128,128,128); border: 1px solid rgb(128,128,128);
cursor: pointer; cursor: pointer;
} }
input[type="radio"]:checked + .filter_button.button.color { input[type="radio"]:checked + .filter_button.button.color {
border: 1px solid rgb(255,255,255); border: 1px solid rgb(255,255,255);
box-shadow: 0 0 0px 1px #000; box-shadow: 0 0 0px 1px #000;
-webkit-box-shadow: 0 0 0px 1px #000; -webkit-box-shadow: 0 0 0px 1px #000;
} }
#allcolor { #allcolor {
background: white url('../images/search_app.png') -43px -144px no-repeat; background: white url('../images/search_app.png') -43px -144px no-repeat;
} }
#colored { #colored {
background: white url('../images/search_app.png') -43px -244px no-repeat; background: white url('../images/search_app.png') -43px -244px no-repeat;
} }
#grayed { #grayed {
background: white url('../images/search_app.png') -45px -343px no-repeat; background: white url('../images/search_app.png') -45px -343px no-repeat;
} }
#black{ #black{
background-color:#ffffff; background-color:#ffffff;
} }
#blue{ #blue{
background-color:#0000FF; background-color:#0000FF;
} }
#brown{ #brown{
background-color:rgba(139, 82, 16, 1); background-color:rgba(139, 82, 16, 1);
} }
#gray{ #gray{
background-color:#999999; background-color:#999999;
} }
#green{ #green{
background-color:#00CC00; background-color:#00CC00;
} }
#orange{ #orange{
background-color:#FB940B; background-color:#FB940B;
} }
#pink{ #pink{
background-color:#FF98BF; background-color:#FF98BF;
} }
#purple{ #purple{
background-color:#762CA7; background-color:#762CA7;
} }
#red{ #red{
background-color:#CC0000; background-color:#CC0000;
} }
#teal{ #teal{
background-color:#03C0C6; background-color:#03C0C6;
} }
#white{ #white{
background-color:#000000; background-color:#000000;
} }
#yellow{ #yellow{
background-color:#FFFF00; background-color:#FFFF00;
} }
.selectBox-dropdown, .selectBox-options li a { .selectBox-dropdown, .selectBox-options li a {
line-height: 1.3 !important; line-height: 1.3 !important;
font-size: 13px; font-size: 13px;
} }
.pager_button { .pager_button {
padding: 3px 5px; padding: 3px 5px;
font-size: 16px; font-size: 16px;
color: black; color: black;
display: inline-block; display: inline-block;
} }
.pager_button.active { .pager_button.active {
border-radius: 3px; border-radius: 3px;
-webkit-border-radius: 3px; -webkit-border-radius: 3px;
background-color: gray; background-color: gray;
color: white; color: white;
} }
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<html xmlns="http://www.w3.org/1999/xhtml"> <html xmlns="http://www.w3.org/1999/xhtml">
<head> <head>
<title>Google Image Search</title> <title>Google Image Search</title>
<link rel="stylesheet" type="text/css" href="css/basic.css"/> <link rel="stylesheet" type="text/css" href="css/basic.css"/>
<script type="text/javascript" src="locales/locales.js"></script> <script type="text/javascript" src="locales/locales.js"></script>
<script type="text/javascript" src="http://www.google.com/uds"></script> <script type="text/javascript" src="http://www.google.com/uds"></script>
<script type="text/javascript" src="scripts/jquery-1.6.2.min.js"></script> <script type="text/javascript" src="scripts/jquery-1.6.2.min.js"></script>
<script type="text/javascript" src="select/jquery.selectBox.js"></script> <script type="text/javascript" src="select/jquery.selectBox.js"></script>
<link type="text/css" rel="stylesheet" href="select/jquery.selectBox.css" /> <link type="text/css" rel="stylesheet" href="select/jquery.selectBox.css" />
<script type="text/javascript"> <script type="text/javascript">
//begin google API //begin google API
google.load("search","1"); google.load("search","1");
var imageSearch; var imageSearch;
var minHeight = 180; var minHeight = 180;
var minWidht = 150; var minWidht = 150;
var filtersDisplayed = false; //display or hide filters var filtersDisplayed = false; //display or hide filters
function addPaginationLinks() { function addPaginationLinks() {
// To paginate search results, use the cursor function. // To paginate search results, use the cursor function.
var cursor = imageSearch.cursor; var cursor = imageSearch.cursor;
var curPage = cursor.currentPageIndex; // check what page the app is on var curPage = cursor.currentPageIndex; // check what page the app is on
var pagesDiv = $("<div id='resultFooter' class='resultFooter'>"); var pagesDiv = $("<div id='resultFooter' class='resultFooter'>");
for (var i = 0; i < cursor.pages.length; i++) { for (var i = 0; i < cursor.pages.length; i++) {
var page = cursor.pages[i]; var page = cursor.pages[i];
var link = $("<a class='pager_button'></a>").attr('href', 'javascript:imageSearch.gotoPage('+i+');').html(page.label).appendTo(pagesDiv); var link = $("<a class='pager_button'></a>").attr('href', 'javascript:imageSearch.gotoPage('+i+');').html(page.label).appendTo(pagesDiv);
if (curPage == i) { if (curPage == i) {
link.addClass('active'); link.addClass('active');
} }
} }
$("#disc_nav_cont #resultFooter").remove(); $("#disc_nav_cont #resultFooter").remove();
pagesDiv.insertBefore($('#disclaimer')); pagesDiv.insertBefore($('#disclaimer'));
$(".imgContainer").each(function(){ $(".imgContainer").each(function(){
this.addEventListener("dragstart", imageDragging, false); this.addEventListener("dragstart", imageDragging, false);
}) })
$(".imgContainer").each(function(){ $(".imgContainer").each(function(){
this.addEventListener("dragenter", imageDragenter, false); this.addEventListener("dragenter", imageDragenter, false);
}) })
$(".imgContainer").each(function(){ $(".imgContainer").each(function(){
this.addEventListener("dragleave", imageDragleave, false); this.addEventListener("dragleave", imageDragleave, false);
}) })
$(".imgContainer").each(function(){ $(".imgContainer").each(function(){
this.addEventListener("dragover", imageDragover, false); this.addEventListener("dragover", imageDragover, false);
}) })
} }
function searchComplete() { function searchComplete() {
// Check that we got results // Check that we got results
if (imageSearch.results && imageSearch.results.length > 0) { if (imageSearch.results && imageSearch.results.length > 0) {
// Grab our content div, clear it. // Grab our content div, clear it.
var contentDiv = $('#searchResult').empty(); var contentDiv = $('#searchResult').empty();
// Loop through our results, printing them to the page. // Loop through our results, printing them to the page.
var results = imageSearch.results; var results = imageSearch.results;
console.log(results); console.log(results);
for (var i = 0; i < results.length; i++) { for (var i = 0; i < results.length; i++) {
// For each result write it's title and image to the screen // For each result write it's title and image to the screen
var result = results[i]; var result = results[i];
var imgContainer = $("<div class='imgContainer' draggable='true'>"); var imgContainer = $("<div class='imgContainer' draggable='true'>");
//var title = document.createElement('div'); //var title = document.createElement('div');
var iUrl = $("<input type='hidden'/>"); var iUrl = $("<input type='hidden'/>");
var iContent = $("<input type='hidden'/>"); var iContent = $("<input type='hidden'/>");
var iHeight = $("<input type='hidden'/>"); var iHeight = $("<input type='hidden'/>");
var iWidth = $("<input type='hidden'/>"); var iWidth = $("<input type='hidden'/>");
var iTitle = $("<input type='hidden'/>"); var iTitle = $("<input type='hidden'/>");
// We use titleNoFormatting so that no HTML tags are left in the // We use titleNoFormatting so that no HTML tags are left in the
// title // title
//title.innerHTML = result.title; //title.innerHTML = result.title;
var newImg = document.createElement('img'); var newImg = document.createElement('img');
// There is also a result.url property which has the escaped version // There is also a result.url property which has the escaped version
newImg.src = result.tbUrl; newImg.src = result.tbUrl;
iUrl.attr("value", result.url); iUrl.attr("value", result.url);
iContent.attr("value", result.contentNoFormatting); iContent.attr("value", result.contentNoFormatting);
iHeight.attr("value", result.height); iHeight.attr("value", result.height);
iWidth.attr("value", result.width); iWidth.attr("value", result.width);
iTitle.attr("value",result.titleNoFormatting); iTitle.attr("value",result.titleNoFormatting);
var imgWidth = (result.tbWidth > minWidht)?result.tbWidth:minWidht; var imgWidth = (result.tbWidth > minWidht)?result.tbWidth:minWidht;
var imgHeight = (result.tbHeight > minHeight)?result.tbHeight:minHeight; var imgHeight = (result.tbHeight > minHeight)?result.tbHeight:minHeight;
imgContainer.width(imgWidth).height(imgHeight); imgContainer.width(imgWidth).height(imgHeight);
imgContainer.append($(newImg)); imgContainer.append($(newImg));
//imgContainer.append($(title)); //imgContainer.append($(title));
imgContainer.append(iUrl); imgContainer.append(iUrl);
imgContainer.append(iContent); imgContainer.append(iContent);
imgContainer.append(iHeight); imgContainer.append(iHeight);
imgContainer.append(iWidth); imgContainer.append(iWidth);
imgContainer.append(iTitle); imgContainer.append(iTitle);
// Put our title + image in the content // Put our title + image in the content
imgContainer.appendTo(contentDiv); imgContainer.appendTo(contentDiv);
} }
// Now add links to additional pages of search results. // Now add links to additional pages of search results.
addPaginationLinks(imageSearch); addPaginationLinks(imageSearch);
} }
setTimeout(function(){ setTimeout(function(){
$(window).trigger('resize'); $(window).trigger('resize');
}, 1000); }, 1000);
} }
function OnLoad() { function OnLoad() {
// Create an Image Search instance. // Create an Image Search instance.
imageSearch = new google.search.ImageSearch(); imageSearch = new google.search.ImageSearch();
// Set searchComplete as the callback function when a search is // Set searchComplete as the callback function when a search is
// complete. The imageSearch object will have results in it. // complete. The imageSearch object will have results in it.
imageSearch.setSearchCompleteCallback(this, searchComplete, null); imageSearch.setSearchCompleteCallback(this, searchComplete, null);
imageSearch.setResultSetSize(8); imageSearch.setResultSetSize(8);
//imageSearch.setQueryAddition("Subaru STI"); //imageSearch.setQueryAddition("Subaru STI");
// Find me a beautiful car. // Find me a beautiful car.
//imageSearch.execute("Sankore"); //imageSearch.execute("Sankore");
// Include the required Google branding // Include the required Google branding
google.search.Search.getBranding('branding'); google.search.Search.getBranding('branding');
} }
google.setOnLoadCallback(OnLoad); google.setOnLoadCallback(OnLoad);
//end of Google API //end of Google API
//No google API below //No google API below
function imageDragging(e){ function imageDragging(e){
e.dataTransfer.setData("text/plain",$(this).find("input:hidden").eq(0).val()); e.dataTransfer.setData("text/plain",$(this).find("input:hidden").eq(0).val());
//alert($(this).find("input:hidden").val()); //alert($(this).find("input:hidden").val());
} }
function imageDragleave(e){ function imageDragleave(e){
return false; return false;
} }
function imageDragover(e){ function imageDragover(e){
return false; return false;
} }
function imageDragenter(e){ function imageDragenter(e){
return false; return false;
} }
$(document).ready(function(){ $(document).ready(function(){
//variables //variables
var mode = false; //search or view mode var mode = false; //search or view mode
var hide = false; //hide or no main panel var hide = false; //hide or no main panel
//basic containers and elements //basic containers and elements
var lang = window.sankore ? sankore.locale().substr(0,2) : "en"; //locale language var lang = window.sankore ? sankore.locale().substr(0,2) : "en"; //locale language
//localization //localization
locale = locales[lang]; locale = locales[lang];
var disc_nav_cont = $("<div id='disc_nav_cont' class='disc_nav_cont'>").appendTo("body"); var disc_nav_cont = $("<div id='disc_nav_cont' class='disc_nav_cont'>").appendTo("body");
var disclaimer = $("<div id='disclaimer' class='disclaimer'>"+locale.disclaimer_title+"<div>").appendTo(disc_nav_cont); var disclaimer = $("<div id='disclaimer' class='disclaimer'>"+locale.disclaimer_title+"<div>").appendTo(disc_nav_cont);
var search = $("<div id='search' class='search'>").appendTo("body"); var search = $("<div id='search' class='search'>").appendTo("body");
//var togglePages = $("<div id='togglePages' class='togglePages'>").appendTo(search); //var togglePages = $("<div id='togglePages' class='togglePages'>").appendTo(search);
//var toggleIcon = $("<div id='toggleIcon' class='toggleIcon'>").appendTo(togglePages); //var toggleIcon = $("<div id='toggleIcon' class='toggleIcon'>").appendTo(togglePages);
var subSearchInput = $("<div id='subSearchInput' class='subSearch'>").appendTo(search); var subSearchInput = $("<div id='subSearchInput' class='subSearch'>").appendTo(search);
var subSearchFilter = $("<div id='subSearchFilter' class='subSearch'>").appendTo(search); var subSearchFilter = $("<div id='subSearchFilter' class='subSearch'>").appendTo(search);
var searchInput = $("<input id='searchInput' class='searchInput' type='text'/>").appendTo(subSearchInput); var searchInput = $("<input id='searchInput' class='searchInput' type='text'/>").appendTo(subSearchInput);
var searchButton = $("<div id='searchButton' class='searchButton'>").appendTo(subSearchInput); var searchButton = $("<div id='searchButton' class='searchButton'>").appendTo(subSearchInput);
var toggleFilters = $("<div id='toggleFilters' class='toggleFilters'>").appendTo(subSearchInput); var toggleFilters = $("<div id='toggleFilters' class='toggleFilters'>").appendTo(subSearchInput);
//adding filters to the wgt //adding filters to the wgt
var selectFilter = $("<select id='sizeFilter' class='filterSelect'>") var selectFilter = $("<select id='sizeFilter' class='filterSelect'>")
.append($("<option value='0'>"+locale.def_opts_val_size+"</option>")) .append($("<option value='0'>"+locale.def_opts_val_size+"</option>"))
.append($("<option value='1'>"+locale.size_small+"</option>")) .append($("<option value='1'>"+locale.size_small+"</option>"))
.append($("<option value='2'>"+locale.size_medium+"</option>")) .append($("<option value='2'>"+locale.size_medium+"</option>"))
.append($("<option value='3'>"+locale.size_large+"</option>")) .append($("<option value='3'>"+locale.size_large+"</option>"))
.append($("<option value='4'>"+locale.size_extra_large+"</option>")); .append($("<option value='4'>"+locale.size_extra_large+"</option>"));
$("<div class='filterContainer'>").append("<span>"+locale.size_title+":</span><br/>").append(selectFilter).appendTo(subSearchFilter); $("<div class='filterContainer'>").append("<span>"+locale.size_title+":</span><br/>").append(selectFilter).appendTo(subSearchFilter);
selectFilter = $("<select id='fileTypeFilter' class='filterSelect'>") selectFilter = $("<select id='fileTypeFilter' class='filterSelect'>")
.append($("<option value='0'>"+locale.def_opts_val_type+"</option>")) .append($("<option value='0'>"+locale.def_opts_val_type+"</option>"))
.append($("<option value='1'>*.JPG</option>")) .append($("<option value='1'>*.JPG</option>"))
.append($("<option value='2'>*.PNG</option>")) .append($("<option value='2'>*.PNG</option>"))
.append($("<option value='3'>*.GIF</option>")) .append($("<option value='3'>*.GIF</option>"))
.append($("<option value='4'>*.BMP</option>")); .append($("<option value='4'>*.BMP</option>"));
$("<div class='filterContainer'>").append("<span>"+locale.file_type_title+":</span><br/>").append(selectFilter).appendTo(subSearchFilter); $("<div class='filterContainer'>").append("<span>"+locale.file_type_title+":</span><br/>").append(selectFilter).appendTo(subSearchFilter);
selectFilter = $("<select id='typeFilter' class='filterSelect'>") selectFilter = $("<select id='typeFilter' class='filterSelect'>")
.append($("<option value='0'>"+locale.def_opts_val_image+"</option>")) .append($("<option value='0'>"+locale.def_opts_val_image+"</option>"))
.append($("<option value='1'>"+locale.image_type_faces+"</option>")) .append($("<option value='1'>"+locale.image_type_faces+"</option>"))
.append($("<option value='2'>"+locale.image_type_photo+"</option>")) .append($("<option value='2'>"+locale.image_type_photo+"</option>"))
.append($("<option value='3'>"+locale.image_type_clipart+"</option>")) .append($("<option value='3'>"+locale.image_type_clipart+"</option>"))
.append($("<option value='4'>"+locale.image_type_lineart+"</option>")); .append($("<option value='4'>"+locale.image_type_lineart+"</option>"));
$("<div class='filterContainer'>").append("<span>"+locale.image_type_title+":</span><br/>").append(selectFilter).appendTo(subSearchFilter); $("<div class='filterContainer'>").append("<span>"+locale.image_type_title+":</span><br/>").append(selectFilter).appendTo(subSearchFilter);
selectFilter = $("<select id='rightsFilter' class='filterSelect'>") selectFilter = $("<select id='rightsFilter' class='filterSelect'>")
.append($("<option value='0'>"+locale.def_opts_val_copyright+"</option>")) .append($("<option value='0'>"+locale.def_opts_val_copyright+"</option>"))
.append($("<option value='1'>"+locale.image_license_reuse+"</option>")) .append($("<option value='1'>"+locale.image_license_reuse+"</option>"))
.append($("<option value='2'>"+locale.image_license_comm_reuse+"</option>")) .append($("<option value='2'>"+locale.image_license_comm_reuse+"</option>"))
.append($("<option value='3'>"+locale.image_license_modif+"</option>")) .append($("<option value='3'>"+locale.image_license_modif+"</option>"))
.append($("<option value='4'>"+locale.image_license_comm_modif+"</option>")); .append($("<option value='4'>"+locale.image_license_comm_modif+"</option>"));
$("<div class='filterContainer'>").append("<span>"+locale.image_license_title+":</span><br/>").append(selectFilter).appendTo(subSearchFilter); $("<div class='filterContainer'>").append("<span>"+locale.image_license_title+":</span><br/>").append(selectFilter).appendTo(subSearchFilter);
var colors_line = $('<div class="colors_line"></div>'); var colors_line = $('<div class="colors_line"></div>');
subSearchFilter.append(colors_line); subSearchFilter.append(colors_line);
colors_line.html('<input type="radio" value="allcolor" id="color_shem_allcolor" class="custom" name="color" checked="true">\ colors_line.html('<input type="radio" value="allcolor" id="color_shem_allcolor" class="custom" name="color" checked="true">\
<label id="allcolor" class="filter_button button color active" for="color_shem_allcolor"></label>\ <label id="allcolor" class="filter_button button color active" for="color_shem_allcolor"></label>\
<input type="radio" value="color" id="color_shem_color" class="custom" name="color">\ <input type="radio" value="color" id="color_shem_color" class="custom" name="color">\
<label id="colored" class="filter_button button color" for="color_shem_color"></label>\ <label id="colored" class="filter_button button color" for="color_shem_color"></label>\
<input type="radio" value="grayscale" id="color_shem_gray" class="custom" name="color">\ <input type="radio" value="grayscale" id="color_shem_gray" class="custom" name="color">\
<label id="grayed" class="filter_button button color" for="color_shem_gray"></label>\ <label id="grayed" class="filter_button button color" for="color_shem_gray"></label>\
<label style="border-right: 1px solid #fff; margin-right:7px; margin-left:7px; height: 15px; display: inline-block;"></label>\ <label style="border-right: 1px solid #fff; margin-right:7px; margin-left:7px; height: 15px; display: inline-block;"></label>\
<input type="radio" value="red" id="design9" class="custom" name="color">\ <input type="radio" value="red" id="design9" class="custom" name="color">\
<label id="red" class="filter_button button color" for="design9"></label>\ <label id="red" class="filter_button button color" for="design9"></label>\
<input type="radio" value="orange" id="design6" class="custom" name="color">\ <input type="radio" value="orange" id="design6" class="custom" name="color">\
<label id="orange" class="filter_button button color" for="design6"></label>\ <label id="orange" class="filter_button button color" for="design6"></label>\
<input type="radio" value="yellow" id="design12" class="custom" name="color">\ <input type="radio" value="yellow" id="design12" class="custom" name="color">\
<label id="yellow" class="filter_button button color" for="design12"></label>\ <label id="yellow" class="filter_button button color" for="design12"></label>\
<input type="radio" value="green" id="design5" class="custom" name="color">\ <input type="radio" value="green" id="design5" class="custom" name="color">\
<label id="green" class="filter_button button color" for="design5"></label>\ <label id="green" class="filter_button button color" for="design5"></label>\
<input type="radio" value="teal" id="design10" class="custom" name="color">\ <input type="radio" value="teal" id="design10" class="custom" name="color">\
<label id="teal" class="filter_button button color" for="design10"></label>\ <label id="teal" class="filter_button button color" for="design10"></label>\
<input type="radio" value="blue" id="design2" class="custom" name="color">\ <input type="radio" value="blue" id="design2" class="custom" name="color">\
<label id="blue" class="filter_button button color" for="design2"></label>\ <label id="blue" class="filter_button button color" for="design2"></label>\
<input type="radio" value="purple" id="design8" class="custom" name="color">\ <input type="radio" value="purple" id="design8" class="custom" name="color">\
<label id="purple" class="filter_button button color" for="design8"></label>\ <label id="purple" class="filter_button button color" for="design8"></label>\
<input type="radio" value="pink" id="design7" class="custom" name="color">\ <input type="radio" value="pink" id="design7" class="custom" name="color">\
<label id="pink" class="filter_button button color" for="design7"></label>\ <label id="pink" class="filter_button button color" for="design7"></label>\
<input type="radio" value="white" id="design11" class="custom" name="color">\ <input type="radio" value="white" id="design11" class="custom" name="color">\
<label id="white" class="filter_button button color" for="design11"></label>\ <label id="white" class="filter_button button color" for="design11"></label>\
<input type="radio" value="gray" id="design4" class="custom" name="color">\ <input type="radio" value="gray" id="design4" class="custom" name="color">\
<label id="gray" class="filter_button button color" for="design4"></label>\ <label id="gray" class="filter_button button color" for="design4"></label>\
<input type="radio" value="black" id="design1" class="custom" name="color">\ <input type="radio" value="black" id="design1" class="custom" name="color">\
<label id="black" class="filter_button button color" for="design1"></label>\ <label id="black" class="filter_button button color" for="design1"></label>\
<input type="radio" value="brown" id="design3" class="custom" name="color">\ <input type="radio" value="brown" id="design3" class="custom" name="color">\
<label id="brown" class="filter_button button color" for="design3"></label>'); <label id="brown" class="filter_button button color" for="design3"></label>');
//mouse click actions //mouse click actions
toggleFilters.click(function(){ toggleFilters.click(function(){
if(filtersDisplayed){ if(filtersDisplayed){
subSearchFilter.hide(); subSearchFilter.hide();
//$("#search").height(46); //$("#search").height(46);
toggleFilters.css("background-image","url(images/down.png)"); toggleFilters.css("background-image","url(images/down.png)");
filtersDisplayed = false; filtersDisplayed = false;
} else { } else {
//$("#search").height(120); //$("#search").height(120);
subSearchFilter.show(); subSearchFilter.show();
toggleFilters.css("background-image","url(images/up.png)"); toggleFilters.css("background-image","url(images/up.png)");
filtersDisplayed = true; filtersDisplayed = true;
} }
}); });
/*togglePages.click(function(event){ /*togglePages.click(function(event){
if(mode){ if(mode){
hide = false; hide = false;
$("#search, #disclaimer").slideDown('fast', function(){ $("#search, #disclaimer").slideDown('fast', function(){
toggleIcon.css("background-image","url(images/trgUp.png)"); toggleIcon.css("background-image","url(images/trgUp.png)");
togglePages.appendTo("#search").css("top","").css("bottom","-14px"); togglePages.appendTo("#search").css("top","").css("bottom","-14px");
}); });
mode = false; mode = false;
} else { } else {
hide = true; hide = true;
$("#search, #disclaimer").slideUp('fast', function(){ $("#search, #disclaimer").slideUp('fast', function(){
toggleIcon.css("background-image","url(images/trgDown.png)"); toggleIcon.css("background-image","url(images/trgDown.png)");
togglePages.appendTo("body").css("top","0"); togglePages.appendTo("body").css("top","0");
}); });
mode = true; mode = true;
} }
});*/ });*/
searchButton.click(function(){ searchButton.click(function(){
if(!hide){ if(!hide){
checkFilters(imageSearch).execute(searchInput.val()); checkFilters(imageSearch).execute(searchInput.val());
//togglePages.trigger("click"); //togglePages.trigger("click");
} }
}); });
searchInput.keydown(function(event){ searchInput.keydown(function(event){
if(!hide){ if(!hide){
if((event.keyCode == 0xA)||(event.keyCode == 0xD)){ if((event.keyCode == 0xA)||(event.keyCode == 0xD)){
checkFilters(imageSearch).execute(searchInput.val()); checkFilters(imageSearch).execute(searchInput.val());
//togglePages.trigger("click"); //togglePages.trigger("click");
} }
} }
}); });
$('.filterSelect, .colors_line input[name=color]').change(function(){ $('.filterSelect, .colors_line input[name=color]').change(function(){
checkFilters(imageSearch).execute(searchInput.val()); checkFilters(imageSearch).execute(searchInput.val());
}); });
$(".imgContainer").live("click",function(){ $(".imgContainer").live("click",function(){
sankore.sendFileMetadata(createMetaData($(this))); sankore.sendFileMetadata(createMetaData($(this)));
}); });
//checking filters //checking filters
function checkFilters(imgSearch){ function checkFilters(imgSearch){
var value = $("#sizeFilter option:selected").val(); var value = $("#sizeFilter option:selected").val();
switch(value){ switch(value){
case "0": case "0":
imgSearch.setRestriction(google.search.ImageSearch.RESTRICT_IMAGESIZE,null); imgSearch.setRestriction(google.search.ImageSearch.RESTRICT_IMAGESIZE,null);
break; break;
case "1": case "1":
imgSearch.setRestriction(google.search.ImageSearch.RESTRICT_IMAGESIZE,google.search.ImageSearch.IMAGESIZE_SMALL); imgSearch.setRestriction(google.search.ImageSearch.RESTRICT_IMAGESIZE,google.search.ImageSearch.IMAGESIZE_SMALL);
break; break;
case "2": case "2":
imgSearch.setRestriction(google.search.ImageSearch.RESTRICT_IMAGESIZE,google.search.ImageSearch.IMAGESIZE_MEDIUM); imgSearch.setRestriction(google.search.ImageSearch.RESTRICT_IMAGESIZE,google.search.ImageSearch.IMAGESIZE_MEDIUM);
break; break;
case "3": case "3":
imgSearch.setRestriction(google.search.ImageSearch.RESTRICT_IMAGESIZE,google.search.ImageSearch.IMAGESIZE_LARGE); imgSearch.setRestriction(google.search.ImageSearch.RESTRICT_IMAGESIZE,google.search.ImageSearch.IMAGESIZE_LARGE);
break; break;
case "4": case "4":
imgSearch.setRestriction(google.search.ImageSearch.RESTRICT_IMAGESIZE,google.search.ImageSearch.IMAGESIZE_EXTRA_LARGE); imgSearch.setRestriction(google.search.ImageSearch.RESTRICT_IMAGESIZE,google.search.ImageSearch.IMAGESIZE_EXTRA_LARGE);
break; break;
} }
value = $(".colors_line input[name=color]:checked").val(); value = $(".colors_line input[name=color]:checked").val();
imgSearch.setRestriction(google.search.ImageSearch.RESTRICT_COLORFILTER,null); imgSearch.setRestriction(google.search.ImageSearch.RESTRICT_COLORFILTER,null);
imgSearch.setRestriction(google.search.ImageSearch.RESTRICT_COLORIZATION,null); imgSearch.setRestriction(google.search.ImageSearch.RESTRICT_COLORIZATION,null);
switch(value){ switch(value){
case "allcolor": case "allcolor":
imgSearch.setRestriction(google.search.ImageSearch.RESTRICT_COLORIZATION,null); imgSearch.setRestriction(google.search.ImageSearch.RESTRICT_COLORIZATION,null);
break; break;
case "grayscale": case "grayscale":
imgSearch.setRestriction(google.search.ImageSearch.RESTRICT_COLORIZATION,google.search.ImageSearch.COLORIZATION_GRAYSCALE); imgSearch.setRestriction(google.search.ImageSearch.RESTRICT_COLORIZATION,google.search.ImageSearch.COLORIZATION_GRAYSCALE);
break; break;
case "color": case "color":
imgSearch.setRestriction(google.search.ImageSearch.RESTRICT_COLORIZATION,google.search.ImageSearch.COLORIZATION_COLOR); imgSearch.setRestriction(google.search.ImageSearch.RESTRICT_COLORIZATION,google.search.ImageSearch.COLORIZATION_COLOR);
break; break;
case "black": case "black":
imgSearch.setRestriction(google.search.ImageSearch.RESTRICT_COLORFILTER,google.search.ImageSearch.COLOR_BLACK); imgSearch.setRestriction(google.search.ImageSearch.RESTRICT_COLORFILTER,google.search.ImageSearch.COLOR_BLACK);
break; break;
case "blue": case "blue":
imgSearch.setRestriction(google.search.ImageSearch.RESTRICT_COLORFILTER,google.search.ImageSearch.COLOR_BLUE); imgSearch.setRestriction(google.search.ImageSearch.RESTRICT_COLORFILTER,google.search.ImageSearch.COLOR_BLUE);
break; break;
case "brown": case "brown":
imgSearch.setRestriction(google.search.ImageSearch.RESTRICT_COLORFILTER,google.search.ImageSearch.COLOR_BROWN); imgSearch.setRestriction(google.search.ImageSearch.RESTRICT_COLORFILTER,google.search.ImageSearch.COLOR_BROWN);
break; break;
case "gray": case "gray":
imgSearch.setRestriction(google.search.ImageSearch.RESTRICT_COLORFILTER,google.search.ImageSearch.COLOR_GRAY); imgSearch.setRestriction(google.search.ImageSearch.RESTRICT_COLORFILTER,google.search.ImageSearch.COLOR_GRAY);
break; break;
case "green": case "green":
imgSearch.setRestriction(google.search.ImageSearch.RESTRICT_COLORFILTER,google.search.ImageSearch.COLOR_GREEN); imgSearch.setRestriction(google.search.ImageSearch.RESTRICT_COLORFILTER,google.search.ImageSearch.COLOR_GREEN);
break; break;
case "orange": case "orange":
imgSearch.setRestriction(google.search.ImageSearch.RESTRICT_COLORFILTER,google.search.ImageSearch.COLOR_ORANGE); imgSearch.setRestriction(google.search.ImageSearch.RESTRICT_COLORFILTER,google.search.ImageSearch.COLOR_ORANGE);
break; break;
case "pink": case "pink":
imgSearch.setRestriction(google.search.ImageSearch.RESTRICT_COLORFILTER,google.search.ImageSearch.COLOR_PINK); imgSearch.setRestriction(google.search.ImageSearch.RESTRICT_COLORFILTER,google.search.ImageSearch.COLOR_PINK);
break; break;
case "purple": case "purple":
imgSearch.setRestriction(google.search.ImageSearch.RESTRICT_COLORFILTER,google.search.ImageSearch.COLOR_PURPLE); imgSearch.setRestriction(google.search.ImageSearch.RESTRICT_COLORFILTER,google.search.ImageSearch.COLOR_PURPLE);
break; break;
case "red": case "red":
imgSearch.setRestriction(google.search.ImageSearch.RESTRICT_COLORFILTER,google.search.ImageSearch.COLOR_RED); imgSearch.setRestriction(google.search.ImageSearch.RESTRICT_COLORFILTER,google.search.ImageSearch.COLOR_RED);
break; break;
case "teal": case "teal":
imgSearch.setRestriction(google.search.ImageSearch.RESTRICT_COLORFILTER,google.search.ImageSearch.COLOR_TEAL); imgSearch.setRestriction(google.search.ImageSearch.RESTRICT_COLORFILTER,google.search.ImageSearch.COLOR_TEAL);
break; break;
case "white": case "white":
imgSearch.setRestriction(google.search.ImageSearch.RESTRICT_COLORFILTER,google.search.ImageSearch.COLOR_WHITE); imgSearch.setRestriction(google.search.ImageSearch.RESTRICT_COLORFILTER,google.search.ImageSearch.COLOR_WHITE);
break; break;
case "yellow": case "yellow":
imgSearch.setRestriction(google.search.ImageSearch.RESTRICT_COLORFILTER,google.search.ImageSearch.COLOR_YELLOW); imgSearch.setRestriction(google.search.ImageSearch.RESTRICT_COLORFILTER,google.search.ImageSearch.COLOR_YELLOW);
break; break;
} }
value = $("#fileTypeFilter option:selected").val(); value = $("#fileTypeFilter option:selected").val();
switch(value){ switch(value){
case "0": case "0":
imgSearch.setRestriction(google.search.ImageSearch.RESTRICT_FILETYPE,null); imgSearch.setRestriction(google.search.ImageSearch.RESTRICT_FILETYPE,null);
break; break;
case "1": case "1":
imgSearch.setRestriction(google.search.ImageSearch.RESTRICT_FILETYPE,google.search.ImageSearch.FILETYPE_JPG); imgSearch.setRestriction(google.search.ImageSearch.RESTRICT_FILETYPE,google.search.ImageSearch.FILETYPE_JPG);
break; break;
case "2": case "2":
imgSearch.setRestriction(google.search.ImageSearch.RESTRICT_FILETYPE,google.search.ImageSearch.FILETYPE_PNG); imgSearch.setRestriction(google.search.ImageSearch.RESTRICT_FILETYPE,google.search.ImageSearch.FILETYPE_PNG);
break; break;
case "3": case "3":
imgSearch.setRestriction(google.search.ImageSearch.RESTRICT_FILETYPE,google.search.ImageSearch.FILETYPE_GIF); imgSearch.setRestriction(google.search.ImageSearch.RESTRICT_FILETYPE,google.search.ImageSearch.FILETYPE_GIF);
break; break;
case "4": case "4":
imgSearch.setRestriction(google.search.ImageSearch.RESTRICT_FILETYPE,google.search.ImageSearch.FILETYPE_BMP); imgSearch.setRestriction(google.search.ImageSearch.RESTRICT_FILETYPE,google.search.ImageSearch.FILETYPE_BMP);
break; break;
} }
value = $("#typeFilter option:selected").val(); value = $("#typeFilter option:selected").val();
switch(value){ switch(value){
case "0": case "0":
imgSearch.setRestriction(google.search.ImageSearch.RESTRICT_IMAGETYPE,null); imgSearch.setRestriction(google.search.ImageSearch.RESTRICT_IMAGETYPE,null);
break; break;
case "1": case "1":
imgSearch.setRestriction(google.search.ImageSearch.RESTRICT_IMAGETYPE,google.search.ImageSearch.IMAGETYPE_FACES); imgSearch.setRestriction(google.search.ImageSearch.RESTRICT_IMAGETYPE,google.search.ImageSearch.IMAGETYPE_FACES);
break; break;
case "2": case "2":
imgSearch.setRestriction(google.search.ImageSearch.RESTRICT_IMAGETYPE,google.search.ImageSearch.IMAGETYPE_PHOTO); imgSearch.setRestriction(google.search.ImageSearch.RESTRICT_IMAGETYPE,google.search.ImageSearch.IMAGETYPE_PHOTO);
break; break;
case "3": case "3":
imgSearch.setRestriction(google.search.ImageSearch.RESTRICT_IMAGETYPE,google.search.ImageSearch.IMAGETYPE_CLIPART); imgSearch.setRestriction(google.search.ImageSearch.RESTRICT_IMAGETYPE,google.search.ImageSearch.IMAGETYPE_CLIPART);
break; break;
case "4": case "4":
imgSearch.setRestriction(google.search.ImageSearch.RESTRICT_IMAGETYPE,google.search.ImageSearch.IMAGETYPE_LINEART); imgSearch.setRestriction(google.search.ImageSearch.RESTRICT_IMAGETYPE,google.search.ImageSearch.IMAGETYPE_LINEART);
break; break;
} }
value = $("#rightsFilter option:selected").val(); value = $("#rightsFilter option:selected").val();
switch(value){ switch(value){
case "0": case "0":
imgSearch.setRestriction(google.search.ImageSearch.RESTRICT_RIGHTS,null); imgSearch.setRestriction(google.search.ImageSearch.RESTRICT_RIGHTS,null);
break; break;
case "1": case "1":
imgSearch.setRestriction(google.search.ImageSearch.RESTRICT_RIGHTS,google.search.ImageSearch.RIGHTS_REUSE); imgSearch.setRestriction(google.search.ImageSearch.RESTRICT_RIGHTS,google.search.ImageSearch.RIGHTS_REUSE);
break; break;
case "2": case "2":
imgSearch.setRestriction(google.search.ImageSearch.RESTRICT_RIGHTS,google.search.ImageSearch.RIGHTS_COMERCIAL_REUSE); imgSearch.setRestriction(google.search.ImageSearch.RESTRICT_RIGHTS,google.search.ImageSearch.RIGHTS_COMERCIAL_REUSE);
break; break;
case "3": case "3":
imgSearch.setRestriction(google.search.ImageSearch.RESTRICT_RIGHTS,google.search.ImageSearch.RIGHTS_MODIFICATION); imgSearch.setRestriction(google.search.ImageSearch.RESTRICT_RIGHTS,google.search.ImageSearch.RIGHTS_MODIFICATION);
break; break;
case "4": case "4":
imgSearch.setRestriction(google.search.ImageSearch.RESTRICT_RIGHTS,google.search.ImageSearch.RIGHTS_COMMERCIAL_MODIFICATION); imgSearch.setRestriction(google.search.ImageSearch.RESTRICT_RIGHTS,google.search.ImageSearch.RIGHTS_COMMERCIAL_MODIFICATION);
break; break;
} }
return imgSearch; return imgSearch;
} }
$(window).resize(function(){ $(window).resize(function(){
var width = "200px"; var width = "200px";
if ($('#search').width() < 230) { if ($('#search').width() < 230) {
width = $("#search").width()-40; width = $("#search").width()-40;
} else { } else {
width = "200px"; width = "200px";
} }
$('select').selectBox('destroy').css('width', width).selectBox(); $('select').selectBox('destroy').css('width', width).selectBox();
}); });
$(window).trigger("resize"); $(window).trigger("resize");
}); });
function createMetaData(parent){ function createMetaData(parent){
var meta = ""; var meta = "";
meta = "<metadata><data><key>Type</key><value>Image</value></data><data><key>Url</key><value>" + meta = "<metadata><data><key>Type</key><value>Image</value></data><data><key>Url</key><value>" +
parent.find("input:hidden").eq(0).val() + parent.find("input:hidden").eq(0).val() +
"</value></data><data><key>thumbnailUrl</key><value>" + "</value></data><data><key>thumbnailUrl</key><value>" +
parent.find("img").attr("src") + parent.find("img").attr("src") +
"</value></data><data><key>Content</key><value>" + "</value></data><data><key>Content</key><value>" +
parent.find("input:hidden").eq(1).val() + parent.find("input:hidden").eq(1).val() +
"</value></data><data><key>Height</key><value>" + "</value></data><data><key>Height</key><value>" +
parent.find("input:hidden").eq(2).val() + parent.find("input:hidden").eq(2).val() +
"</value></data><data><key>Width</key><value>" + "</value></data><data><key>Width</key><value>" +
parent.find("input:hidden").eq(3).val() + parent.find("input:hidden").eq(3).val() +
"</value></data><data><key>Title</key><value>" + "</value></data><data><key>Title</key><value>" +
parent.find("input:hidden").eq(4).val() + parent.find("input:hidden").eq(4).val() +
"</value></data></metadata>"; "</value></data></metadata>";
return meta; return meta;
} }
</script> </script>
</head> </head>
<body style="font-family: Arial;border: 0 none;"> <body style="font-family: Arial;border: 0 none;">
<div id="searchResult"></div> <div id="searchResult"></div>
</body> </body>
</html> </html>
var locales = { var locales = {
'en': { 'en': {
'def_opts_val_size': 'Any', 'def_opts_val_size': 'Any',
'def_opts_val_type': 'Any', 'def_opts_val_type': 'Any',
'def_opts_val_image': 'Any', 'def_opts_val_image': 'Any',
'def_opts_val_copyright': 'Any', 'def_opts_val_copyright': 'Any',
'size_title': 'Size', 'size_title': 'Size',
'size_small': 'Small', 'size_small': 'Small',
'size_medium': 'Medium', 'size_medium': 'Medium',
'size_large': 'Large', 'size_large': 'Large',
'size_extra_large': 'Extra large', 'size_extra_large': 'Extra large',
'colorization_title': 'Colorization', 'colorization_title': 'Colorization',
'coloriz_grayscale': 'Grayscale', 'coloriz_grayscale': 'Grayscale',
'coloriz_color': 'Color', 'coloriz_color': 'Color',
'main_color_title': 'Main color', 'main_color_title': 'Main color',
'm_color_black': 'Black', 'm_color_black': 'Black',
'm_color_blue': 'Blue', 'm_color_blue': 'Blue',
'm_color_brown': 'Brown', 'm_color_brown': 'Brown',
'm_color_gray': 'Gray', 'm_color_gray': 'Gray',
'm_color_green': 'Green', 'm_color_green': 'Green',
'm_color_orange': 'Orange', 'm_color_orange': 'Orange',
'm_color_pink': 'Pink', 'm_color_pink': 'Pink',
'm_color_purple': 'Purple', 'm_color_purple': 'Purple',
'm_color_red': 'Red', 'm_color_red': 'Red',
'm_color_teal': 'Teal', 'm_color_teal': 'Teal',
'm_color_white': 'White', 'm_color_white': 'White',
'm_color_yellow': 'Yellow', 'm_color_yellow': 'Yellow',
'file_type_title': 'File type', 'file_type_title': 'File type',
'image_type_title': 'Image type', 'image_type_title': 'Image type',
'image_type_faces': 'Faces', 'image_type_faces': 'Faces',
'image_type_photo': 'Photo', 'image_type_photo': 'Photo',
'image_type_clipart': 'Clipart', 'image_type_clipart': 'Clipart',
'image_type_lineart': 'Lineart', 'image_type_lineart': 'Lineart',
'image_license_title': 'Licence', 'image_license_title': 'Licence',
'image_license_reuse': 'Reuse', 'image_license_reuse': 'Reuse',
'image_license_comm_reuse': 'Commercial reuse', 'image_license_comm_reuse': 'Commercial reuse',
'image_license_modif': 'Modification', 'image_license_modif': 'Modification',
'image_license_comm_modif': 'Commercial modification', 'image_license_comm_modif': 'Commercial modification',
'disclaimer_title': 'This API is based on Google Image. Please refer to terms of use of this service.' 'disclaimer_title': 'This API is based on Google Image. Please refer to terms of use of this service.'
}, },
'fr': { 'fr': {
'def_opts_val_size': 'Toutes', 'def_opts_val_size': 'Toutes',
'def_opts_val_type': 'Tous', 'def_opts_val_type': 'Tous',
'def_opts_val_image': 'Toutes', 'def_opts_val_image': 'Toutes',
'def_opts_val_copyright': 'Tous', 'def_opts_val_copyright': 'Tous',
'size_title': 'Tailles', 'size_title': 'Tailles',
'size_small': 'Petite', 'size_small': 'Petite',
'size_medium': 'Moyenne', 'size_medium': 'Moyenne',
'size_large': 'Grande', 'size_large': 'Grande',
'size_extra_large': 'Extra large', 'size_extra_large': 'Extra large',
'colorization_title': 'Couleurs de l\'image', 'colorization_title': 'Couleurs de l\'image',
'coloriz_grayscale': 'Noir et blanc', 'coloriz_grayscale': 'Noir et blanc',
'coloriz_color': 'En couleur', 'coloriz_color': 'En couleur',
'main_color_title': 'Couleur électronique', 'main_color_title': 'Couleur électronique',
'm_color_black': 'Noir', 'm_color_black': 'Noir',
'm_color_blue': 'Bleu', 'm_color_blue': 'Bleu',
'm_color_brown': 'Brun', 'm_color_brown': 'Brun',
'm_color_gray': 'Gris', 'm_color_gray': 'Gris',
'm_color_green': 'Vert', 'm_color_green': 'Vert',
'm_color_orange': 'Orange', 'm_color_orange': 'Orange',
'm_color_pink': 'Rose', 'm_color_pink': 'Rose',
'm_color_purple': 'Pourpre', 'm_color_purple': 'Pourpre',
'm_color_red': 'Rouge', 'm_color_red': 'Rouge',
'm_color_teal': 'Sarcelle', 'm_color_teal': 'Sarcelle',
'm_color_white': 'Blanc', 'm_color_white': 'Blanc',
'm_color_yellow': 'Jaune', 'm_color_yellow': 'Jaune',
'file_type_title': 'Types de fichier', 'file_type_title': 'Types de fichier',
'image_type_title': 'Types d\'image', 'image_type_title': 'Types d\'image',
'image_type_faces': 'Visages', 'image_type_faces': 'Visages',
'image_type_photo': 'Photo', 'image_type_photo': 'Photo',
'image_type_clipart': 'Images clipart', 'image_type_clipart': 'Images clipart',
'image_type_lineart': 'Dessins au trait', 'image_type_lineart': 'Dessins au trait',
'image_license_title': 'Droits d\'usage', 'image_license_title': 'Droits d\'usage',
'image_license_reuse': 'Usage, distribution', 'image_license_reuse': 'Usage, distribution',
'image_license_comm_reuse': 'Usage, distribution, commercial', 'image_license_comm_reuse': 'Usage, distribution, commercial',
'image_license_modif': 'Usage, distribution, modification', 'image_license_modif': 'Usage, distribution, modification',
'image_license_comm_modif': 'Usage, distribution, modification, commercial', 'image_license_comm_modif': 'Usage, distribution, modification, commercial',
'disclaimer_title': 'Cette recherche utilise les services de Google Images. Veuillez vous référer aux conditions d\'utilisation de ce service.' 'disclaimer_title': 'Cette recherche utilise les services de Google Images. Veuillez vous référer aux conditions d\'utilisation de ce service.'
} }
}; };
This source diff could not be displayed because it is too large. You can view the blob instead.
/* Dropdown control */ /* Dropdown control */
.selectBox-dropdown { .selectBox-dropdown {
min-width: 60px; min-width: 60px;
position: relative; position: relative;
/*border: solid 1px #BBB;*/ /*border: solid 1px #BBB;*/
line-height: 1.5; line-height: 1.5;
text-decoration: none; text-decoration: none;
text-align: left; text-align: left;
color: #000; color: #000;
outline: none; outline: none;
vertical-align: middle; vertical-align: middle;
background: #F2F2F2; background: #F2F2F2;
background: -moz-linear-gradient(top, #F8F8F8 1%, #E1E1E1 100%); background: -moz-linear-gradient(top, #F8F8F8 1%, #E1E1E1 100%);
background: -webkit-gradient(linear, left top, left bottom, color-stop(1%, #F8F8F8), color-stop(100%, #E1E1E1)); background: -webkit-gradient(linear, left top, left bottom, color-stop(1%, #F8F8F8), color-stop(100%, #E1E1E1));
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#F8F8F8', endColorstr='#E1E1E1', GradientType=0); filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#F8F8F8', endColorstr='#E1E1E1', GradientType=0);
-moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .75); -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .75);
-webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .75); -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .75);
box-shadow: 0 1px 0 rgba(255, 255, 255, .75); box-shadow: 0 1px 0 rgba(255, 255, 255, .75);
-webkit-border-radius: 4px; -webkit-border-radius: 4px;
-moz-border-radius: 4px; -moz-border-radius: 4px;
border-radius: 4px; border-radius: 4px;
display: inline-block; display: inline-block;
cursor: default; cursor: default;
} }
.selectBox-dropdown:focus, .selectBox-dropdown:focus,
.selectBox-dropdown:focus .selectBox-arrow { .selectBox-dropdown:focus .selectBox-arrow {
border-color: #666; border-color: #666;
} }
.selectBox-dropdown.selectBox-menuShowing { .selectBox-dropdown.selectBox-menuShowing {
-moz-border-radius-bottomleft: 0; -moz-border-radius-bottomleft: 0;
-moz-border-radius-bottomright: 0; -moz-border-radius-bottomright: 0;
-webkit-border-bottom-left-radius: 0; -webkit-border-bottom-left-radius: 0;
-webkit-border-bottom-right-radius: 0; -webkit-border-bottom-right-radius: 0;
border-bottom-left-radius: 0; border-bottom-left-radius: 0;
border-bottom-right-radius: 0; border-bottom-right-radius: 0;
} }
.selectBox-dropdown .selectBox-label { .selectBox-dropdown .selectBox-label {
padding: 2px 8px; padding: 2px 8px;
display: inline-block; display: inline-block;
white-space: nowrap; white-space: nowrap;
overflow: hidden; overflow: hidden;
} }
.selectBox-dropdown .selectBox-arrow { .selectBox-dropdown .selectBox-arrow {
position: absolute; position: absolute;
top: 0; top: 0;
right: 0; right: 0;
width: 23px; width: 23px;
height: 100%; height: 100%;
background: url(jquery.selectBox-arrow.gif) 50% center no-repeat; background: url(jquery.selectBox-arrow.gif) 50% center no-repeat;
border-left: solid 1px #BBB; border-left: solid 1px #BBB;
} }
/* Dropdown menu */ /* Dropdown menu */
.selectBox-dropdown-menu { .selectBox-dropdown-menu {
position: absolute; position: absolute;
z-index: 99999; z-index: 99999;
max-height: 200px; max-height: 200px;
min-height: 1em; min-height: 1em;
border: solid 1px #BBB; /* should be the same border width as .selectBox-dropdown */ border: solid 1px #BBB; /* should be the same border width as .selectBox-dropdown */
background: #FFF; background: #FFF;
-moz-box-shadow: 0 2px 6px rgba(0, 0, 0, .2); -moz-box-shadow: 0 2px 6px rgba(0, 0, 0, .2);
-webkit-box-shadow: 0 2px 6px rgba(0, 0, 0, .2); -webkit-box-shadow: 0 2px 6px rgba(0, 0, 0, .2);
box-shadow: 0 2px 6px rgba(0, 0, 0, .2); box-shadow: 0 2px 6px rgba(0, 0, 0, .2);
overflow: auto; overflow: auto;
} }
/* Inline control */ /* Inline control */
.selectBox-inline { .selectBox-inline {
min-width: 150px; min-width: 150px;
outline: none; outline: none;
border: solid 1px #BBB; border: solid 1px #BBB;
background: #FFF; background: #FFF;
display: inline-block; display: inline-block;
-webkit-border-radius: 4px; -webkit-border-radius: 4px;
-moz-border-radius: 4px; -moz-border-radius: 4px;
border-radius: 4px; border-radius: 4px;
overflow: auto; overflow: auto;
} }
.selectBox-inline:focus { .selectBox-inline:focus {
border-color: #666; border-color: #666;
} }
/* Options */ /* Options */
.selectBox-options, .selectBox-options,
.selectBox-options LI, .selectBox-options LI,
.selectBox-options LI A { .selectBox-options LI A {
list-style: none; list-style: none;
display: block; display: block;
cursor: default; cursor: default;
padding: 0; padding: 0;
margin: 0; margin: 0;
} }
.selectBox-options LI A { .selectBox-options LI A {
line-height: 1.5; line-height: 1.5;
padding: 0 .5em; padding: 0 .5em;
white-space: nowrap; white-space: nowrap;
overflow: hidden; overflow: hidden;
background: 6px center no-repeat; background: 6px center no-repeat;
} }
.selectBox-options LI.selectBox-hover A { .selectBox-options LI.selectBox-hover A {
background-color: #EEE; background-color: #EEE;
} }
.selectBox-options LI.selectBox-disabled A { .selectBox-options LI.selectBox-disabled A {
color: #888; color: #888;
background-color: transparent; background-color: transparent;
} }
.selectBox-options LI.selectBox-selected A { .selectBox-options LI.selectBox-selected A {
background-color: #C8DEF4; background-color: #C8DEF4;
} }
.selectBox-options .selectBox-optgroup { .selectBox-options .selectBox-optgroup {
color: #666; color: #666;
background: #EEE; background: #EEE;
font-weight: bold; font-weight: bold;
line-height: 1.5; line-height: 1.5;
padding: 0 .3em; padding: 0 .3em;
white-space: nowrap; white-space: nowrap;
} }
/* Disabled state */ /* Disabled state */
.selectBox.selectBox-disabled { .selectBox.selectBox-disabled {
color: #888 !important; color: #888 !important;
} }
.selectBox-dropdown.selectBox-disabled .selectBox-arrow { .selectBox-dropdown.selectBox-disabled .selectBox-arrow {
opacity: .5; opacity: .5;
filter: alpha(opacity=50); filter: alpha(opacity=50);
border-color: #666; border-color: #666;
} }
.selectBox-inline.selectBox-disabled { .selectBox-inline.selectBox-disabled {
color: #888 !important; color: #888 !important;
} }
.selectBox-inline.selectBox-disabled .selectBox-options A { .selectBox-inline.selectBox-disabled .selectBox-options A {
background-color: transparent !important; background-color: transparent !important;
} }
\ No newline at end of file
/* /*
* jQuery selectBox - A cosmetic, styleable replacement for SELECT elements * jQuery selectBox - A cosmetic, styleable replacement for SELECT elements
* *
* Copyright 2012 Cory LaViska for A Beautiful Site, LLC. * Copyright 2012 Cory LaViska for A Beautiful Site, LLC.
* *
* https://github.com/claviska/jquery-selectBox * https://github.com/claviska/jquery-selectBox
* *
* Licensed under both the MIT license and the GNU GPLv2 (same as jQuery: http://jquery.org/license) * Licensed under both the MIT license and the GNU GPLv2 (same as jQuery: http://jquery.org/license)
* *
*/ */
if(jQuery) (function($) { if(jQuery) (function($) {
$.extend($.fn, { $.extend($.fn, {
selectBox: function(method, data) { selectBox: function(method, data) {
var typeTimer, var typeTimer,
typeSearch = '', typeSearch = '',
isMac = navigator.platform.match(/mac/i); isMac = navigator.platform.match(/mac/i);
// //
// Private methods // Private methods
// //
var init = function(select, data) { var init = function(select, data) {
var options; var options;
// Disable for iOS devices (their native controls are more suitable for a touch device) // Disable for iOS devices (their native controls are more suitable for a touch device)
if( navigator.userAgent.match(/iPad|iPhone|Android|IEMobile|BlackBerry/i) ) return false; if( navigator.userAgent.match(/iPad|iPhone|Android|IEMobile|BlackBerry/i) ) return false;
// Element must be a select control // Element must be a select control
if( select.tagName.toLowerCase() !== 'select' ) return false; if( select.tagName.toLowerCase() !== 'select' ) return false;
select = $(select); select = $(select);
if( select.data('selectBox-control') ) return false; if( select.data('selectBox-control') ) return false;
var control = $('<a class="selectBox" />'), var control = $('<a class="selectBox" />'),
inline = select.attr('multiple') || parseInt(select.attr('size')) > 1; inline = select.attr('multiple') || parseInt(select.attr('size')) > 1;
var settings = data || {}; var settings = data || {};
control control
.width(select.outerWidth()) .width(select.outerWidth())
.addClass(select.attr('class')) .addClass(select.attr('class'))
.attr('title', select.attr('title') || '') .attr('title', select.attr('title') || '')
.attr('tabindex', parseInt(select.attr('tabindex'))) .attr('tabindex', parseInt(select.attr('tabindex')))
.css('display', 'inline-block') .css('display', 'inline-block')
.bind('focus.selectBox', function() { .bind('focus.selectBox', function() {
if( this !== document.activeElement && document.body !== document.activeElement ) $(document.activeElement).blur(); if( this !== document.activeElement && document.body !== document.activeElement ) $(document.activeElement).blur();
if( control.hasClass('selectBox-active') ) return; if( control.hasClass('selectBox-active') ) return;
control.addClass('selectBox-active'); control.addClass('selectBox-active');
select.trigger('focus'); select.trigger('focus');
}) })
.bind('blur.selectBox', function() { .bind('blur.selectBox', function() {
if( !control.hasClass('selectBox-active') ) return; if( !control.hasClass('selectBox-active') ) return;
control.removeClass('selectBox-active'); control.removeClass('selectBox-active');
select.trigger('blur'); select.trigger('blur');
}); });
if( !$(window).data('selectBox-bindings') ) { if( !$(window).data('selectBox-bindings') ) {
$(window) $(window)
.data('selectBox-bindings', true) .data('selectBox-bindings', true)
.bind('scroll.selectBox', hideMenus) .bind('scroll.selectBox', hideMenus)
.bind('resize.selectBox', hideMenus); .bind('resize.selectBox', hideMenus);
} }
if( select.attr('disabled') ) control.addClass('selectBox-disabled'); if( select.attr('disabled') ) control.addClass('selectBox-disabled');
// Focus on control when label is clicked // Focus on control when label is clicked
select.bind('click.selectBox', function(event) { select.bind('click.selectBox', function(event) {
control.focus(); control.focus();
event.preventDefault(); event.preventDefault();
}); });
// Generate control // Generate control
if( inline ) { if( inline ) {
// //
// Inline controls // Inline controls
// //
options = getOptions(select, 'inline'); options = getOptions(select, 'inline');
control control
.append(options) .append(options)
.data('selectBox-options', options) .data('selectBox-options', options)
.addClass('selectBox-inline selectBox-menuShowing') .addClass('selectBox-inline selectBox-menuShowing')
.bind('keydown.selectBox', function(event) { .bind('keydown.selectBox', function(event) {
handleKeyDown(select, event); handleKeyDown(select, event);
}) })
.bind('keypress.selectBox', function(event) { .bind('keypress.selectBox', function(event) {
handleKeyPress(select, event); handleKeyPress(select, event);
}) })
.bind('mousedown.selectBox', function(event) { .bind('mousedown.selectBox', function(event) {
if( $(event.target).is('A.selectBox-inline') ) event.preventDefault(); if( $(event.target).is('A.selectBox-inline') ) event.preventDefault();
if( !control.hasClass('selectBox-focus') ) control.focus(); if( !control.hasClass('selectBox-focus') ) control.focus();
}) })
.insertAfter(select); .insertAfter(select);
// Auto-height based on size attribute // Auto-height based on size attribute
if( !select[0].style.height ) { if( !select[0].style.height ) {
var size = select.attr('size') ? parseInt(select.attr('size')) : 5; var size = select.attr('size') ? parseInt(select.attr('size')) : 5;
// Draw a dummy control off-screen, measure, and remove it // Draw a dummy control off-screen, measure, and remove it
var tmp = control var tmp = control
.clone() .clone()
.removeAttr('id') .removeAttr('id')
.css({ .css({
position: 'absolute', position: 'absolute',
top: '-9999em' top: '-9999em'
}) })
.show() .show()
.appendTo('body'); .appendTo('body');
tmp.find('.selectBox-options').html('<li><a>\u00A0</a></li>'); tmp.find('.selectBox-options').html('<li><a>\u00A0</a></li>');
var optionHeight = parseInt(tmp.find('.selectBox-options A:first').html('&nbsp;').outerHeight()); var optionHeight = parseInt(tmp.find('.selectBox-options A:first').html('&nbsp;').outerHeight());
tmp.remove(); tmp.remove();
control.height(optionHeight * size); control.height(optionHeight * size);
} }
disableSelection(control); disableSelection(control);
} else { } else {
// //
// Dropdown controls // Dropdown controls
// //
var label = $('<span class="selectBox-label" />'), var label = $('<span class="selectBox-label" />'),
arrow = $('<span class="selectBox-arrow" />'); arrow = $('<span class="selectBox-arrow" />');
// Update label // Update label
label label
.attr('class', getLabelClass(select)) .attr('class', getLabelClass(select))
.text(getLabelText(select)); .text(getLabelText(select));
options = getOptions(select, 'dropdown'); options = getOptions(select, 'dropdown');
options.appendTo('BODY'); options.appendTo('BODY');
control control
.data('selectBox-options', options) .data('selectBox-options', options)
.addClass('selectBox-dropdown') .addClass('selectBox-dropdown')
.append(label) .append(label)
.append(arrow) .append(arrow)
.bind('mousedown.selectBox', function(event) { .bind('mousedown.selectBox', function(event) {
if( control.hasClass('selectBox-menuShowing') ) { if( control.hasClass('selectBox-menuShowing') ) {
hideMenus(); hideMenus();
} else { } else {
event.stopPropagation(); event.stopPropagation();
// Webkit fix to prevent premature selection of options // Webkit fix to prevent premature selection of options
options.data('selectBox-down-at-x', event.screenX).data('selectBox-down-at-y', event.screenY); options.data('selectBox-down-at-x', event.screenX).data('selectBox-down-at-y', event.screenY);
showMenu(select); showMenu(select);
} }
}) })
.bind('keydown.selectBox', function(event) { .bind('keydown.selectBox', function(event) {
handleKeyDown(select, event); handleKeyDown(select, event);
}) })
.bind('keypress.selectBox', function(event) { .bind('keypress.selectBox', function(event) {
handleKeyPress(select, event); handleKeyPress(select, event);
}) })
.bind('open.selectBox', function(event, triggerData) { .bind('open.selectBox', function(event, triggerData) {
if(triggerData && triggerData._selectBox === true) return; if(triggerData && triggerData._selectBox === true) return;
showMenu(select); showMenu(select);
}) })
.bind('close.selectBox', function(event, triggerData) { .bind('close.selectBox', function(event, triggerData) {
if(triggerData && triggerData._selectBox === true) return; if(triggerData && triggerData._selectBox === true) return;
hideMenus(); hideMenus();
}) })
.insertAfter(select); .insertAfter(select);
// Set label width // Set label width
var labelWidth = control.width() - arrow.outerWidth() - parseInt(label.css('paddingLeft')) - parseInt(label.css('paddingLeft')); var labelWidth = control.width() - arrow.outerWidth() - parseInt(label.css('paddingLeft')) - parseInt(label.css('paddingLeft'));
label.width(labelWidth); label.width(labelWidth);
disableSelection(control); disableSelection(control);
} }
// Store data for later use and show the control // Store data for later use and show the control
select select
.addClass('selectBox') .addClass('selectBox')
.data('selectBox-control', control) .data('selectBox-control', control)
.data('selectBox-settings', settings) .data('selectBox-settings', settings)
.hide(); .hide();
}; };
var getOptions = function(select, type) { var getOptions = function(select, type) {
var options; var options;
// Private function to handle recursion in the getOptions function. // Private function to handle recursion in the getOptions function.
var _getOptions = function(select, options) { var _getOptions = function(select, options) {
// Loop through the set in order of element children. // Loop through the set in order of element children.
select.children('OPTION, OPTGROUP').each( function() { select.children('OPTION, OPTGROUP').each( function() {
// If the element is an option, add it to the list. // If the element is an option, add it to the list.
if ($(this).is('OPTION')) { if ($(this).is('OPTION')) {
// Check for a value in the option found. // Check for a value in the option found.
if($(this).length > 0) { if($(this).length > 0) {
// Create an option form the found element. // Create an option form the found element.
generateOptions($(this), options); generateOptions($(this), options);
} }
else { else {
// No option information found, so add an empty. // No option information found, so add an empty.
options.append('<li>\u00A0</li>'); options.append('<li>\u00A0</li>');
} }
} }
else { else {
// If the element is an option group, add the group and call this function on it. // If the element is an option group, add the group and call this function on it.
var optgroup = $('<li class="selectBox-optgroup" />'); var optgroup = $('<li class="selectBox-optgroup" />');
optgroup.text($(this).attr('label')); optgroup.text($(this).attr('label'));
options.append(optgroup); options.append(optgroup);
options = _getOptions($(this), options); options = _getOptions($(this), options);
} }
}); });
// Return the built strin // Return the built strin
return options; return options;
}; };
switch( type ) { switch( type ) {
case 'inline': case 'inline':
options = $('<ul class="selectBox-options" />'); options = $('<ul class="selectBox-options" />');
options = _getOptions(select, options); options = _getOptions(select, options);
options options
.find('A') .find('A')
.bind('mouseover.selectBox', function(event) { .bind('mouseover.selectBox', function(event) {
addHover(select, $(this).parent()); addHover(select, $(this).parent());
}) })
.bind('mouseout.selectBox', function(event) { .bind('mouseout.selectBox', function(event) {
removeHover(select, $(this).parent()); removeHover(select, $(this).parent());
}) })
.bind('mousedown.selectBox', function(event) { .bind('mousedown.selectBox', function(event) {
event.preventDefault(); // Prevent options from being "dragged" event.preventDefault(); // Prevent options from being "dragged"
if( !select.selectBox('control').hasClass('selectBox-active') ) select.selectBox('control').focus(); if( !select.selectBox('control').hasClass('selectBox-active') ) select.selectBox('control').focus();
}) })
.bind('mouseup.selectBox', function(event) { .bind('mouseup.selectBox', function(event) {
hideMenus(); hideMenus();
selectOption(select, $(this).parent(), event); selectOption(select, $(this).parent(), event);
}); });
disableSelection(options); disableSelection(options);
return options; return options;
case 'dropdown': case 'dropdown':
options = $('<ul class="selectBox-dropdown-menu selectBox-options" />'); options = $('<ul class="selectBox-dropdown-menu selectBox-options" />');
options = _getOptions(select, options); options = _getOptions(select, options);
options options
.data('selectBox-select', select) .data('selectBox-select', select)
.css('display', 'none') .css('display', 'none')
.appendTo('BODY') .appendTo('BODY')
.find('A') .find('A')
.bind('mousedown.selectBox', function(event) { .bind('mousedown.selectBox', function(event) {
event.preventDefault(); // Prevent options from being "dragged" event.preventDefault(); // Prevent options from being "dragged"
if( event.screenX === options.data('selectBox-down-at-x') && event.screenY === options.data('selectBox-down-at-y') ) { if( event.screenX === options.data('selectBox-down-at-x') && event.screenY === options.data('selectBox-down-at-y') ) {
options.removeData('selectBox-down-at-x').removeData('selectBox-down-at-y'); options.removeData('selectBox-down-at-x').removeData('selectBox-down-at-y');
hideMenus(); hideMenus();
} }
}) })
.bind('mouseup.selectBox', function(event) { .bind('mouseup.selectBox', function(event) {
if( event.screenX === options.data('selectBox-down-at-x') && event.screenY === options.data('selectBox-down-at-y') ) { if( event.screenX === options.data('selectBox-down-at-x') && event.screenY === options.data('selectBox-down-at-y') ) {
return; return;
} else { } else {
options.removeData('selectBox-down-at-x').removeData('selectBox-down-at-y'); options.removeData('selectBox-down-at-x').removeData('selectBox-down-at-y');
} }
selectOption(select, $(this).parent()); selectOption(select, $(this).parent());
hideMenus(); hideMenus();
}).bind('mouseover.selectBox', function(event) { }).bind('mouseover.selectBox', function(event) {
addHover(select, $(this).parent()); addHover(select, $(this).parent());
}) })
.bind('mouseout.selectBox', function(event) { .bind('mouseout.selectBox', function(event) {
removeHover(select, $(this).parent()); removeHover(select, $(this).parent());
}); });
// Inherit classes for dropdown menu // Inherit classes for dropdown menu
var classes = select.attr('class') || ''; var classes = select.attr('class') || '';
if( classes !== '' ) { if( classes !== '' ) {
classes = classes.split(' '); classes = classes.split(' ');
for( var i in classes ) options.addClass(classes[i] + '-selectBox-dropdown-menu'); for( var i in classes ) options.addClass(classes[i] + '-selectBox-dropdown-menu');
} }
disableSelection(options); disableSelection(options);
return options; return options;
} }
}; };
var getLabelClass = function(select) { var getLabelClass = function(select) {
var selected = $(select).find('OPTION:selected'); var selected = $(select).find('OPTION:selected');
return ('selectBox-label ' + (selected.attr('class') || '')).replace(/\s+$/, ''); return ('selectBox-label ' + (selected.attr('class') || '')).replace(/\s+$/, '');
}; };
var getLabelText = function(select) { var getLabelText = function(select) {
var selected = $(select).find('OPTION:selected'); var selected = $(select).find('OPTION:selected');
return selected.text() || '\u00A0'; return selected.text() || '\u00A0';
}; };
var setLabel = function(select) { var setLabel = function(select) {
select = $(select); select = $(select);
var control = select.data('selectBox-control'); var control = select.data('selectBox-control');
if( !control ) return; if( !control ) return;
control.find('.selectBox-label').attr('class', getLabelClass(select)).text(getLabelText(select)); control.find('.selectBox-label').attr('class', getLabelClass(select)).text(getLabelText(select));
}; };
var destroy = function(select) { var destroy = function(select) {
select = $(select); select = $(select);
var control = select.data('selectBox-control'); var control = select.data('selectBox-control');
if( !control ) return; if( !control ) return;
var options = control.data('selectBox-options'); var options = control.data('selectBox-options');
options.remove(); options.remove();
control.remove(); control.remove();
select select
.removeClass('selectBox') .removeClass('selectBox')
.removeData('selectBox-control').data('selectBox-control', null) .removeData('selectBox-control').data('selectBox-control', null)
.removeData('selectBox-settings').data('selectBox-settings', null) .removeData('selectBox-settings').data('selectBox-settings', null)
.show(); .show();
}; };
var refresh = function(select) { var refresh = function(select) {
select = $(select); select = $(select);
select.selectBox('options', select.html()); select.selectBox('options', select.html());
}; };
var showMenu = function(select) { var showMenu = function(select) {
select = $(select); select = $(select);
var control = select.data('selectBox-control'), var control = select.data('selectBox-control'),
settings = select.data('selectBox-settings'), settings = select.data('selectBox-settings'),
options = control.data('selectBox-options'); options = control.data('selectBox-options');
if( control.hasClass('selectBox-disabled') ) return false; if( control.hasClass('selectBox-disabled') ) return false;
hideMenus(); hideMenus();
var borderBottomWidth = isNaN(control.css('borderBottomWidth')) ? 0 : parseInt(control.css('borderBottomWidth')); var borderBottomWidth = isNaN(control.css('borderBottomWidth')) ? 0 : parseInt(control.css('borderBottomWidth'));
// Menu position // Menu position
options options
.css('min-width', control.innerWidth()) .css('min-width', control.innerWidth())
.css({ .css({
top: control.offset().top + control.outerHeight() - borderBottomWidth, top: control.offset().top + control.outerHeight() - borderBottomWidth,
left: control.offset().left left: control.offset().left
}); });
if( select.triggerHandler('beforeopen') ) return false; if( select.triggerHandler('beforeopen') ) return false;
var dispatchOpenEvent = function() { var dispatchOpenEvent = function() {
select.triggerHandler('open', { _selectBox: true }); select.triggerHandler('open', { _selectBox: true });
}; };
// Show menu // Show menu
switch( settings.menuTransition ) { switch( settings.menuTransition ) {
case 'fade': case 'fade':
options.fadeIn(settings.menuSpeed, dispatchOpenEvent); options.fadeIn(settings.menuSpeed, dispatchOpenEvent);
break; break;
case 'slide': case 'slide':
options.slideDown(settings.menuSpeed, dispatchOpenEvent); options.slideDown(settings.menuSpeed, dispatchOpenEvent);
break; break;
default: default:
options.show(settings.menuSpeed, dispatchOpenEvent); options.show(settings.menuSpeed, dispatchOpenEvent);
break; break;
} }
if( !settings.menuSpeed ) dispatchOpenEvent(); if( !settings.menuSpeed ) dispatchOpenEvent();
// Center on selected option // Center on selected option
var li = options.find('.selectBox-selected:first'); var li = options.find('.selectBox-selected:first');
keepOptionInView(select, li, true); keepOptionInView(select, li, true);
addHover(select, li); addHover(select, li);
control.addClass('selectBox-menuShowing'); control.addClass('selectBox-menuShowing');
$(document).bind('mousedown.selectBox', function(event) { $(document).bind('mousedown.selectBox', function(event) {
if( $(event.target).parents().andSelf().hasClass('selectBox-options') ) return; if( $(event.target).parents().andSelf().hasClass('selectBox-options') ) return;
hideMenus(); hideMenus();
}); });
}; };
var hideMenus = function() { var hideMenus = function() {
if( $(".selectBox-dropdown-menu:visible").length === 0 ) return; if( $(".selectBox-dropdown-menu:visible").length === 0 ) return;
$(document).unbind('mousedown.selectBox'); $(document).unbind('mousedown.selectBox');
$(".selectBox-dropdown-menu").each( function() { $(".selectBox-dropdown-menu").each( function() {
var options = $(this), var options = $(this),
select = options.data('selectBox-select'), select = options.data('selectBox-select'),
control = select.data('selectBox-control'), control = select.data('selectBox-control'),
settings = select.data('selectBox-settings'); settings = select.data('selectBox-settings');
if( select.triggerHandler('beforeclose') ) return false; if( select.triggerHandler('beforeclose') ) return false;
var dispatchCloseEvent = function() { var dispatchCloseEvent = function() {
select.triggerHandler('close', { _selectBox: true }); select.triggerHandler('close', { _selectBox: true });
}; };
switch( settings.menuTransition ) { switch( settings.menuTransition ) {
case 'fade': case 'fade':
options.fadeOut(settings.menuSpeed, dispatchCloseEvent); options.fadeOut(settings.menuSpeed, dispatchCloseEvent);
break; break;
case 'slide': case 'slide':
options.slideUp(settings.menuSpeed, dispatchCloseEvent); options.slideUp(settings.menuSpeed, dispatchCloseEvent);
break; break;
default: default:
options.hide(settings.menuSpeed, dispatchCloseEvent); options.hide(settings.menuSpeed, dispatchCloseEvent);
break; break;
} }
if( !settings.menuSpeed ) dispatchCloseEvent(); if( !settings.menuSpeed ) dispatchCloseEvent();
control.removeClass('selectBox-menuShowing'); control.removeClass('selectBox-menuShowing');
}); });
}; };
var selectOption = function(select, li, event) { var selectOption = function(select, li, event) {
select = $(select); select = $(select);
li = $(li); li = $(li);
var control = select.data('selectBox-control'), var control = select.data('selectBox-control'),
settings = select.data('selectBox-settings'); settings = select.data('selectBox-settings');
if( control.hasClass('selectBox-disabled') ) return false; if( control.hasClass('selectBox-disabled') ) return false;
if( li.length === 0 || li.hasClass('selectBox-disabled') ) return false; if( li.length === 0 || li.hasClass('selectBox-disabled') ) return false;
if( select.attr('multiple') ) { if( select.attr('multiple') ) {
// If event.shiftKey is true, this will select all options between li and the last li selected // If event.shiftKey is true, this will select all options between li and the last li selected
if( event.shiftKey && control.data('selectBox-last-selected') ) { if( event.shiftKey && control.data('selectBox-last-selected') ) {
li.toggleClass('selectBox-selected'); li.toggleClass('selectBox-selected');
var affectedOptions; var affectedOptions;
if( li.index() > control.data('selectBox-last-selected').index() ) { if( li.index() > control.data('selectBox-last-selected').index() ) {
affectedOptions = li.siblings().slice(control.data('selectBox-last-selected').index(), li.index()); affectedOptions = li.siblings().slice(control.data('selectBox-last-selected').index(), li.index());
} else { } else {
affectedOptions = li.siblings().slice(li.index(), control.data('selectBox-last-selected').index()); affectedOptions = li.siblings().slice(li.index(), control.data('selectBox-last-selected').index());
} }
affectedOptions = affectedOptions.not('.selectBox-optgroup, .selectBox-disabled'); affectedOptions = affectedOptions.not('.selectBox-optgroup, .selectBox-disabled');
if( li.hasClass('selectBox-selected') ) { if( li.hasClass('selectBox-selected') ) {
affectedOptions.addClass('selectBox-selected'); affectedOptions.addClass('selectBox-selected');
} else { } else {
affectedOptions.removeClass('selectBox-selected'); affectedOptions.removeClass('selectBox-selected');
} }
} else if( (isMac && event.metaKey) || (!isMac && event.ctrlKey) ) { } else if( (isMac && event.metaKey) || (!isMac && event.ctrlKey) ) {
li.toggleClass('selectBox-selected'); li.toggleClass('selectBox-selected');
} else { } else {
li.siblings().removeClass('selectBox-selected'); li.siblings().removeClass('selectBox-selected');
li.addClass('selectBox-selected'); li.addClass('selectBox-selected');
} }
} else { } else {
li.siblings().removeClass('selectBox-selected'); li.siblings().removeClass('selectBox-selected');
li.addClass('selectBox-selected'); li.addClass('selectBox-selected');
} }
if( control.hasClass('selectBox-dropdown') ) { if( control.hasClass('selectBox-dropdown') ) {
control.find('.selectBox-label').text(li.text()); control.find('.selectBox-label').text(li.text());
} }
// Update original control's value // Update original control's value
var i = 0, selection = []; var i = 0, selection = [];
if( select.attr('multiple') ) { if( select.attr('multiple') ) {
control.find('.selectBox-selected A').each( function() { control.find('.selectBox-selected A').each( function() {
selection[i++] = $(this).attr('rel'); selection[i++] = $(this).attr('rel');
}); });
} else { } else {
selection = li.find('A').attr('rel'); selection = li.find('A').attr('rel');
} }
// Remember most recently selected item // Remember most recently selected item
control.data('selectBox-last-selected', li); control.data('selectBox-last-selected', li);
// Change callback // Change callback
if( select.val() !== selection ) { if( select.val() !== selection ) {
select.val(selection); select.val(selection);
setLabel(select); setLabel(select);
select.trigger('change'); select.trigger('change');
} }
return true; return true;
}; };
var addHover = function(select, li) { var addHover = function(select, li) {
select = $(select); select = $(select);
li = $(li); li = $(li);
var control = select.data('selectBox-control'), var control = select.data('selectBox-control'),
options = control.data('selectBox-options'); options = control.data('selectBox-options');
options.find('.selectBox-hover').removeClass('selectBox-hover'); options.find('.selectBox-hover').removeClass('selectBox-hover');
li.addClass('selectBox-hover'); li.addClass('selectBox-hover');
}; };
var removeHover = function(select, li) { var removeHover = function(select, li) {
select = $(select); select = $(select);
li = $(li); li = $(li);
var control = select.data('selectBox-control'), var control = select.data('selectBox-control'),
options = control.data('selectBox-options'); options = control.data('selectBox-options');
options.find('.selectBox-hover').removeClass('selectBox-hover'); options.find('.selectBox-hover').removeClass('selectBox-hover');
}; };
var keepOptionInView = function(select, li, center) { var keepOptionInView = function(select, li, center) {
if( !li || li.length === 0 ) return; if( !li || li.length === 0 ) return;
select = $(select); select = $(select);
var control = select.data('selectBox-control'), var control = select.data('selectBox-control'),
options = control.data('selectBox-options'), options = control.data('selectBox-options'),
scrollBox = control.hasClass('selectBox-dropdown') ? options : options.parent(), scrollBox = control.hasClass('selectBox-dropdown') ? options : options.parent(),
top = parseInt(li.offset().top - scrollBox.position().top), top = parseInt(li.offset().top - scrollBox.position().top),
bottom = parseInt(top + li.outerHeight()); bottom = parseInt(top + li.outerHeight());
if( center ) { if( center ) {
scrollBox.scrollTop( li.offset().top - scrollBox.offset().top + scrollBox.scrollTop() - (scrollBox.height() / 2) ); scrollBox.scrollTop( li.offset().top - scrollBox.offset().top + scrollBox.scrollTop() - (scrollBox.height() / 2) );
} else { } else {
if( top < 0 ) { if( top < 0 ) {
scrollBox.scrollTop( li.offset().top - scrollBox.offset().top + scrollBox.scrollTop() ); scrollBox.scrollTop( li.offset().top - scrollBox.offset().top + scrollBox.scrollTop() );
} }
if( bottom > scrollBox.height() ) { if( bottom > scrollBox.height() ) {
scrollBox.scrollTop( (li.offset().top + li.outerHeight()) - scrollBox.offset().top + scrollBox.scrollTop() - scrollBox.height() ); scrollBox.scrollTop( (li.offset().top + li.outerHeight()) - scrollBox.offset().top + scrollBox.scrollTop() - scrollBox.height() );
} }
} }
}; };
var handleKeyDown = function(select, event) { var handleKeyDown = function(select, event) {
// //
// Handles open/close and arrow key functionality // Handles open/close and arrow key functionality
// //
select = $(select); select = $(select);
var control = select.data('selectBox-control'), var control = select.data('selectBox-control'),
options = control.data('selectBox-options'), options = control.data('selectBox-options'),
settings = select.data('selectBox-settings'), settings = select.data('selectBox-settings'),
totalOptions = 0, totalOptions = 0,
i = 0; i = 0;
if( control.hasClass('selectBox-disabled') ) return; if( control.hasClass('selectBox-disabled') ) return;
switch( event.keyCode ) { switch( event.keyCode ) {
case 8: // backspace case 8: // backspace
event.preventDefault(); event.preventDefault();
typeSearch = ''; typeSearch = '';
break; break;
case 9: // tab case 9: // tab
case 27: // esc case 27: // esc
hideMenus(); hideMenus();
removeHover(select); removeHover(select);
break; break;
case 13: // enter case 13: // enter
if( control.hasClass('selectBox-menuShowing') ) { if( control.hasClass('selectBox-menuShowing') ) {
selectOption(select, options.find('LI.selectBox-hover:first'), event); selectOption(select, options.find('LI.selectBox-hover:first'), event);
if( control.hasClass('selectBox-dropdown') ) hideMenus(); if( control.hasClass('selectBox-dropdown') ) hideMenus();
} else { } else {
showMenu(select); showMenu(select);
} }
break; break;
case 38: // up case 38: // up
case 37: // left case 37: // left
event.preventDefault(); event.preventDefault();
if( control.hasClass('selectBox-menuShowing') ) { if( control.hasClass('selectBox-menuShowing') ) {
var prev = options.find('.selectBox-hover').prev('LI'); var prev = options.find('.selectBox-hover').prev('LI');
totalOptions = options.find('LI:not(.selectBox-optgroup)').length; totalOptions = options.find('LI:not(.selectBox-optgroup)').length;
i = 0; i = 0;
while( prev.length === 0 || prev.hasClass('selectBox-disabled') || prev.hasClass('selectBox-optgroup') ) { while( prev.length === 0 || prev.hasClass('selectBox-disabled') || prev.hasClass('selectBox-optgroup') ) {
prev = prev.prev('LI'); prev = prev.prev('LI');
if( prev.length === 0 ) { if( prev.length === 0 ) {
if (settings.loopOptions) { if (settings.loopOptions) {
prev = options.find('LI:last'); prev = options.find('LI:last');
} else { } else {
prev = options.find('LI:first'); prev = options.find('LI:first');
} }
} }
if( ++i >= totalOptions ) break; if( ++i >= totalOptions ) break;
} }
addHover(select, prev); addHover(select, prev);
selectOption(select, prev, event); selectOption(select, prev, event);
keepOptionInView(select, prev); keepOptionInView(select, prev);
} else { } else {
showMenu(select); showMenu(select);
} }
break; break;
case 40: // down case 40: // down
case 39: // right case 39: // right
event.preventDefault(); event.preventDefault();
if( control.hasClass('selectBox-menuShowing') ) { if( control.hasClass('selectBox-menuShowing') ) {
var next = options.find('.selectBox-hover').next('LI'); var next = options.find('.selectBox-hover').next('LI');
totalOptions = options.find('LI:not(.selectBox-optgroup)').length; totalOptions = options.find('LI:not(.selectBox-optgroup)').length;
i = 0; i = 0;
while( next.length === 0 || next.hasClass('selectBox-disabled') || next.hasClass('selectBox-optgroup') ) { while( next.length === 0 || next.hasClass('selectBox-disabled') || next.hasClass('selectBox-optgroup') ) {
next = next.next('LI'); next = next.next('LI');
if( next.length === 0 ) { if( next.length === 0 ) {
if (settings.loopOptions) { if (settings.loopOptions) {
next = options.find('LI:first'); next = options.find('LI:first');
} else { } else {
next = options.find('LI:last'); next = options.find('LI:last');
} }
} }
if( ++i >= totalOptions ) break; if( ++i >= totalOptions ) break;
} }
addHover(select, next); addHover(select, next);
selectOption(select, next, event); selectOption(select, next, event);
keepOptionInView(select, next); keepOptionInView(select, next);
} else { } else {
showMenu(select); showMenu(select);
} }
break; break;
} }
}; };
var handleKeyPress = function(select, event) { var handleKeyPress = function(select, event) {
// //
// Handles type-to-find functionality // Handles type-to-find functionality
// //
select = $(select); select = $(select);
var control = select.data('selectBox-control'), var control = select.data('selectBox-control'),
options = control.data('selectBox-options'); options = control.data('selectBox-options');
if( control.hasClass('selectBox-disabled') ) return; if( control.hasClass('selectBox-disabled') ) return;
switch( event.keyCode ) { switch( event.keyCode ) {
case 9: // tab case 9: // tab
case 27: // esc case 27: // esc
case 13: // enter case 13: // enter
case 38: // up case 38: // up
case 37: // left case 37: // left
case 40: // down case 40: // down
case 39: // right case 39: // right
// Don't interfere with the keydown event! // Don't interfere with the keydown event!
break; break;
default: // Type to find default: // Type to find
if( !control.hasClass('selectBox-menuShowing') ) showMenu(select); if( !control.hasClass('selectBox-menuShowing') ) showMenu(select);
event.preventDefault(); event.preventDefault();
clearTimeout(typeTimer); clearTimeout(typeTimer);
typeSearch += String.fromCharCode(event.charCode || event.keyCode); typeSearch += String.fromCharCode(event.charCode || event.keyCode);
options.find('A').each( function() { options.find('A').each( function() {
if( $(this).text().substr(0, typeSearch.length).toLowerCase() === typeSearch.toLowerCase() ) { if( $(this).text().substr(0, typeSearch.length).toLowerCase() === typeSearch.toLowerCase() ) {
addHover(select, $(this).parent()); addHover(select, $(this).parent());
keepOptionInView(select, $(this).parent()); keepOptionInView(select, $(this).parent());
return false; return false;
} }
}); });
// Clear after a brief pause // Clear after a brief pause
typeTimer = setTimeout( function() { typeSearch = ''; }, 1000); typeTimer = setTimeout( function() { typeSearch = ''; }, 1000);
break; break;
} }
}; };
var enable = function(select) { var enable = function(select) {
select = $(select); select = $(select);
select.attr('disabled', false); select.attr('disabled', false);
var control = select.data('selectBox-control'); var control = select.data('selectBox-control');
if( !control ) return; if( !control ) return;
control.removeClass('selectBox-disabled'); control.removeClass('selectBox-disabled');
}; };
var disable = function(select) { var disable = function(select) {
select = $(select); select = $(select);
select.attr('disabled', true); select.attr('disabled', true);
var control = select.data('selectBox-control'); var control = select.data('selectBox-control');
if( !control ) return; if( !control ) return;
control.addClass('selectBox-disabled'); control.addClass('selectBox-disabled');
}; };
var setValue = function(select, value) { var setValue = function(select, value) {
select = $(select); select = $(select);
select.val(value); select.val(value);
value = select.val(); value = select.val();
var control = select.data('selectBox-control'); var control = select.data('selectBox-control');
if( !control ) return; if( !control ) return;
var settings = select.data('selectBox-settings'), var settings = select.data('selectBox-settings'),
options = control.data('selectBox-options'); options = control.data('selectBox-options');
// Update label // Update label
setLabel(select); setLabel(select);
// Update control values // Update control values
options.find('.selectBox-selected').removeClass('selectBox-selected'); options.find('.selectBox-selected').removeClass('selectBox-selected');
options.find('A').each( function() { options.find('A').each( function() {
if( typeof(value) === 'object' ) { if( typeof(value) === 'object' ) {
for( var i = 0; i < value.length; i++ ) { for( var i = 0; i < value.length; i++ ) {
if( $(this).attr('rel') == value[i] ) { if( $(this).attr('rel') == value[i] ) {
$(this).parent().addClass('selectBox-selected'); $(this).parent().addClass('selectBox-selected');
} }
} }
} else { } else {
if( $(this).attr('rel') == value ) { if( $(this).attr('rel') == value ) {
$(this).parent().addClass('selectBox-selected'); $(this).parent().addClass('selectBox-selected');
} }
} }
}); });
if( settings.change ) settings.change.call(select); if( settings.change ) settings.change.call(select);
}; };
var setOptions = function(select, options) { var setOptions = function(select, options) {
select = $(select); select = $(select);
var control = select.data('selectBox-control'), var control = select.data('selectBox-control'),
settings = select.data('selectBox-settings'); settings = select.data('selectBox-settings');
switch( typeof(data) ) { switch( typeof(data) ) {
case 'string': case 'string':
select.html(data); select.html(data);
break; break;
case 'object': case 'object':
select.html(''); select.html('');
for( var i in data ) { for( var i in data ) {
if( data[i] === null ) continue; if( data[i] === null ) continue;
if( typeof(data[i]) === 'object' ) { if( typeof(data[i]) === 'object' ) {
var optgroup = $('<optgroup label="' + i + '" />'); var optgroup = $('<optgroup label="' + i + '" />');
for( var j in data[i] ) { for( var j in data[i] ) {
optgroup.append('<option value="' + j + '">' + data[i][j] + '</option>'); optgroup.append('<option value="' + j + '">' + data[i][j] + '</option>');
} }
select.append(optgroup); select.append(optgroup);
} else { } else {
var option = $('<option value="' + i + '">' + data[i] + '</option>'); var option = $('<option value="' + i + '">' + data[i] + '</option>');
select.append(option); select.append(option);
} }
} }
break; break;
} }
if( !control ) return; if( !control ) return;
// Remove old options // Remove old options
control.data('selectBox-options').remove(); control.data('selectBox-options').remove();
// Generate new options // Generate new options
var type = control.hasClass('selectBox-dropdown') ? 'dropdown' : 'inline'; var type = control.hasClass('selectBox-dropdown') ? 'dropdown' : 'inline';
options = getOptions(select, type); options = getOptions(select, type);
control.data('selectBox-options', options); control.data('selectBox-options', options);
switch( type ) { switch( type ) {
case 'inline': case 'inline':
control.append(options); control.append(options);
break; break;
case 'dropdown': case 'dropdown':
// Update label // Update label
setLabel(select); setLabel(select);
$("BODY").append(options); $("BODY").append(options);
break; break;
} }
}; };
var disableSelection = function(selector) { var disableSelection = function(selector) {
$(selector) $(selector)
.css('MozUserSelect', 'none') .css('MozUserSelect', 'none')
.bind('selectstart', function(event) { .bind('selectstart', function(event) {
event.preventDefault(); event.preventDefault();
}); });
}; };
var generateOptions = function(self, options){ var generateOptions = function(self, options){
var li = $('<li />'), var li = $('<li />'),
a = $('<a />'); a = $('<a />');
li.addClass( self.attr('class') ); li.addClass( self.attr('class') );
li.data( self.data() ); li.data( self.data() );
a.attr('rel', self.val()).text( self.text() ); a.attr('rel', self.val()).text( self.text() );
li.append(a); li.append(a);
if( self.attr('disabled') ) li.addClass('selectBox-disabled'); if( self.attr('disabled') ) li.addClass('selectBox-disabled');
if( self.attr('selected') ) li.addClass('selectBox-selected'); if( self.attr('selected') ) li.addClass('selectBox-selected');
options.append(li); options.append(li);
}; };
// //
// Public methods // Public methods
// //
switch( method ) { switch( method ) {
case 'control': case 'control':
return $(this).data('selectBox-control'); return $(this).data('selectBox-control');
case 'settings': case 'settings':
if( !data ) return $(this).data('selectBox-settings'); if( !data ) return $(this).data('selectBox-settings');
$(this).each( function() { $(this).each( function() {
$(this).data('selectBox-settings', $.extend(true, $(this).data('selectBox-settings'), data)); $(this).data('selectBox-settings', $.extend(true, $(this).data('selectBox-settings'), data));
}); });
break; break;
case 'options': case 'options':
// Getter // Getter
if( data === undefined ) return $(this).data('selectBox-control').data('selectBox-options'); if( data === undefined ) return $(this).data('selectBox-control').data('selectBox-options');
// Setter // Setter
$(this).each( function() { $(this).each( function() {
setOptions(this, data); setOptions(this, data);
}); });
break; break;
case 'value': case 'value':
// Empty string is a valid value // Empty string is a valid value
if( data === undefined ) return $(this).val(); if( data === undefined ) return $(this).val();
$(this).each( function() { $(this).each( function() {
setValue(this, data); setValue(this, data);
}); });
break; break;
case 'refresh': case 'refresh':
$(this).each( function() { $(this).each( function() {
refresh(this); refresh(this);
}); });
break; break;
case 'enable': case 'enable':
$(this).each( function() { $(this).each( function() {
enable(this); enable(this);
}); });
break; break;
case 'disable': case 'disable':
$(this).each( function() { $(this).each( function() {
disable(this); disable(this);
}); });
break; break;
case 'destroy': case 'destroy':
$(this).each( function() { $(this).each( function() {
destroy(this); destroy(this);
}); });
break; break;
default: default:
$(this).each( function() { $(this).each( function() {
init(this, method); init(this, method);
}); });
break; break;
} }
return $(this); return $(this);
} }
}); });
})(jQuery); })(jQuery);
\ No newline at end of file
/* jQuery SelectBox - https://github.com/claviska/jquery-selectBox */ /* jQuery SelectBox - https://github.com/claviska/jquery-selectBox */
if(jQuery)(function($){$.extend($.fn,{selectBox:function(method,data){var typeTimer,typeSearch='',isMac=navigator.platform.match(/mac/i);var init=function(select,data){var options;if(navigator.userAgent.match(/iPad|iPhone|Android|IEMobile|BlackBerry/i))return false;if(select.tagName.toLowerCase()!=='select')return false;select=$(select);if(select.data('selectBox-control'))return false;var control=$('<a class="selectBox" />'),inline=select.attr('multiple')||parseInt(select.attr('size'))>1;var settings=data||{};control.width(select.outerWidth()).addClass(select.attr('class')).attr('title',select.attr('title')||'').attr('tabindex',parseInt(select.attr('tabindex'))).css('display','inline-block').bind('focus.selectBox',function(){if(this!==document.activeElement&&document.body!==document.activeElement)$(document.activeElement).blur();if(control.hasClass('selectBox-active'))return;control.addClass('selectBox-active');select.trigger('focus')}).bind('blur.selectBox',function(){if(!control.hasClass('selectBox-active'))return;control.removeClass('selectBox-active');select.trigger('blur')});if(!$(window).data('selectBox-bindings')){$(window).data('selectBox-bindings',true).bind('scroll.selectBox',hideMenus).bind('resize.selectBox',hideMenus)}if(select.attr('disabled'))control.addClass('selectBox-disabled');select.bind('click.selectBox',function(event){control.focus();event.preventDefault()});if(inline){options=getOptions(select,'inline');control.append(options).data('selectBox-options',options).addClass('selectBox-inline selectBox-menuShowing').bind('keydown.selectBox',function(event){handleKeyDown(select,event)}).bind('keypress.selectBox',function(event){handleKeyPress(select,event)}).bind('mousedown.selectBox',function(event){if($(event.target).is('A.selectBox-inline'))event.preventDefault();if(!control.hasClass('selectBox-focus'))control.focus()}).insertAfter(select);if(!select[0].style.height){var size=select.attr('size')?parseInt(select.attr('size')):5;var tmp=control.clone().removeAttr('id').css({position:'absolute',top:'-9999em'}).show().appendTo('body');tmp.find('.selectBox-options').html('<li><a>\u00A0</a></li>');var optionHeight=parseInt(tmp.find('.selectBox-options A:first').html('&nbsp;').outerHeight());tmp.remove();control.height(optionHeight*size)}disableSelection(control)}else{var label=$('<span class="selectBox-label" />'),arrow=$('<span class="selectBox-arrow" />');label.attr('class',getLabelClass(select)).text(getLabelText(select));options=getOptions(select,'dropdown');options.appendTo('BODY');control.data('selectBox-options',options).addClass('selectBox-dropdown').append(label).append(arrow).bind('mousedown.selectBox',function(event){if(control.hasClass('selectBox-menuShowing')){hideMenus()}else{event.stopPropagation();options.data('selectBox-down-at-x',event.screenX).data('selectBox-down-at-y',event.screenY);showMenu(select)}}).bind('keydown.selectBox',function(event){handleKeyDown(select,event)}).bind('keypress.selectBox',function(event){handleKeyPress(select,event)}).bind('open.selectBox',function(event,triggerData){if(triggerData&&triggerData._selectBox===true)return;showMenu(select)}).bind('close.selectBox',function(event,triggerData){if(triggerData&&triggerData._selectBox===true)return;hideMenus()}).insertAfter(select);var labelWidth=control.width()-arrow.outerWidth()-parseInt(label.css('paddingLeft'))-parseInt(label.css('paddingLeft'));label.width(labelWidth);disableSelection(control)}select.addClass('selectBox').data('selectBox-control',control).data('selectBox-settings',settings).hide()};var getOptions=function(select,type){var options;var _getOptions=function(select,options){select.children('OPTION, OPTGROUP').each(function(){if($(this).is('OPTION')){if($(this).length>0){generateOptions($(this),options)}else{options.append('<li>\u00A0</li>')}}else{var optgroup=$('<li class="selectBox-optgroup" />');optgroup.text($(this).attr('label'));options.append(optgroup);options=_getOptions($(this),options)}});return options};switch(type){case'inline':options=$('<ul class="selectBox-options" />');options=_getOptions(select,options);options.find('A').bind('mouseover.selectBox',function(event){addHover(select,$(this).parent())}).bind('mouseout.selectBox',function(event){removeHover(select,$(this).parent())}).bind('mousedown.selectBox',function(event){event.preventDefault();if(!select.selectBox('control').hasClass('selectBox-active'))select.selectBox('control').focus()}).bind('mouseup.selectBox',function(event){hideMenus();selectOption(select,$(this).parent(),event)});disableSelection(options);return options;case'dropdown':options=$('<ul class="selectBox-dropdown-menu selectBox-options" />');options=_getOptions(select,options);options.data('selectBox-select',select).css('display','none').appendTo('BODY').find('A').bind('mousedown.selectBox',function(event){event.preventDefault();if(event.screenX===options.data('selectBox-down-at-x')&&event.screenY===options.data('selectBox-down-at-y')){options.removeData('selectBox-down-at-x').removeData('selectBox-down-at-y');hideMenus()}}).bind('mouseup.selectBox',function(event){if(event.screenX===options.data('selectBox-down-at-x')&&event.screenY===options.data('selectBox-down-at-y')){return}else{options.removeData('selectBox-down-at-x').removeData('selectBox-down-at-y')}selectOption(select,$(this).parent());hideMenus()}).bind('mouseover.selectBox',function(event){addHover(select,$(this).parent())}).bind('mouseout.selectBox',function(event){removeHover(select,$(this).parent())});var classes=select.attr('class')||'';if(classes!==''){classes=classes.split(' ');for(var i in classes)options.addClass(classes[i]+'-selectBox-dropdown-menu')}disableSelection(options);return options}};var getLabelClass=function(select){var selected=$(select).find('OPTION:selected');return('selectBox-label '+(selected.attr('class')||'')).replace(/\s+$/,'')};var getLabelText=function(select){var selected=$(select).find('OPTION:selected');return selected.text()||'\u00A0'};var setLabel=function(select){select=$(select);var control=select.data('selectBox-control');if(!control)return;control.find('.selectBox-label').attr('class',getLabelClass(select)).text(getLabelText(select))};var destroy=function(select){select=$(select);var control=select.data('selectBox-control');if(!control)return;var options=control.data('selectBox-options');options.remove();control.remove();select.removeClass('selectBox').removeData('selectBox-control').data('selectBox-control',null).removeData('selectBox-settings').data('selectBox-settings',null).show()};var refresh=function(select){select=$(select);select.selectBox('options',select.html())};var showMenu=function(select){select=$(select);var control=select.data('selectBox-control'),settings=select.data('selectBox-settings'),options=control.data('selectBox-options');if(control.hasClass('selectBox-disabled'))return false;hideMenus();var borderBottomWidth=isNaN(control.css('borderBottomWidth'))?0:parseInt(control.css('borderBottomWidth'));options.width(control.innerWidth()).css({top:control.offset().top+control.outerHeight()-borderBottomWidth,left:control.offset().left});if(select.triggerHandler('beforeopen'))return false;var dispatchOpenEvent=function(){select.triggerHandler('open',{_selectBox:true})};switch(settings.menuTransition){case'fade':options.fadeIn(settings.menuSpeed,dispatchOpenEvent);break;case'slide':options.slideDown(settings.menuSpeed,dispatchOpenEvent);break;default:options.show(settings.menuSpeed,dispatchOpenEvent);break}if(!settings.menuSpeed)dispatchOpenEvent();var li=options.find('.selectBox-selected:first');keepOptionInView(select,li,true);addHover(select,li);control.addClass('selectBox-menuShowing');$(document).bind('mousedown.selectBox',function(event){if($(event.target).parents().andSelf().hasClass('selectBox-options'))return;hideMenus()})};var hideMenus=function(){if($(".selectBox-dropdown-menu:visible").length===0)return;$(document).unbind('mousedown.selectBox');$(".selectBox-dropdown-menu").each(function(){var options=$(this),select=options.data('selectBox-select'),control=select.data('selectBox-control'),settings=select.data('selectBox-settings');if(select.triggerHandler('beforeclose'))return false;var dispatchCloseEvent=function(){select.triggerHandler('close',{_selectBox:true})};switch(settings.menuTransition){case'fade':options.fadeOut(settings.menuSpeed,dispatchCloseEvent);break;case'slide':options.slideUp(settings.menuSpeed,dispatchCloseEvent);break;default:options.hide(settings.menuSpeed,dispatchCloseEvent);break}if(!settings.menuSpeed)dispatchCloseEvent();control.removeClass('selectBox-menuShowing')})};var selectOption=function(select,li,event){select=$(select);li=$(li);var control=select.data('selectBox-control'),settings=select.data('selectBox-settings');if(control.hasClass('selectBox-disabled'))return false;if(li.length===0||li.hasClass('selectBox-disabled'))return false;if(select.attr('multiple')){if(event.shiftKey&&control.data('selectBox-last-selected')){li.toggleClass('selectBox-selected');var affectedOptions;if(li.index()>control.data('selectBox-last-selected').index()){affectedOptions=li.siblings().slice(control.data('selectBox-last-selected').index(),li.index())}else{affectedOptions=li.siblings().slice(li.index(),control.data('selectBox-last-selected').index())}affectedOptions=affectedOptions.not('.selectBox-optgroup, .selectBox-disabled');if(li.hasClass('selectBox-selected')){affectedOptions.addClass('selectBox-selected')}else{affectedOptions.removeClass('selectBox-selected')}}else if((isMac&&event.metaKey)||(!isMac&&event.ctrlKey)){li.toggleClass('selectBox-selected')}else{li.siblings().removeClass('selectBox-selected');li.addClass('selectBox-selected')}}else{li.siblings().removeClass('selectBox-selected');li.addClass('selectBox-selected')}if(control.hasClass('selectBox-dropdown')){control.find('.selectBox-label').text(li.text())}var i=0,selection=[];if(select.attr('multiple')){control.find('.selectBox-selected A').each(function(){selection[i++]=$(this).attr('rel')})}else{selection=li.find('A').attr('rel')}control.data('selectBox-last-selected',li);if(select.val()!==selection){select.val(selection);setLabel(select);select.trigger('change')}return true};var addHover=function(select,li){select=$(select);li=$(li);var control=select.data('selectBox-control'),options=control.data('selectBox-options');options.find('.selectBox-hover').removeClass('selectBox-hover');li.addClass('selectBox-hover')};var removeHover=function(select,li){select=$(select);li=$(li);var control=select.data('selectBox-control'),options=control.data('selectBox-options');options.find('.selectBox-hover').removeClass('selectBox-hover')};var keepOptionInView=function(select,li,center){if(!li||li.length===0)return;select=$(select);var control=select.data('selectBox-control'),options=control.data('selectBox-options'),scrollBox=control.hasClass('selectBox-dropdown')?options:options.parent(),top=parseInt(li.offset().top-scrollBox.position().top),bottom=parseInt(top+li.outerHeight());if(center){scrollBox.scrollTop(li.offset().top-scrollBox.offset().top+scrollBox.scrollTop()-(scrollBox.height()/2))}else{if(top<0){scrollBox.scrollTop(li.offset().top-scrollBox.offset().top+scrollBox.scrollTop())}if(bottom>scrollBox.height()){scrollBox.scrollTop((li.offset().top+li.outerHeight())-scrollBox.offset().top+scrollBox.scrollTop()-scrollBox.height())}}};var handleKeyDown=function(select,event){select=$(select);var control=select.data('selectBox-control'),options=control.data('selectBox-options'),settings=select.data('selectBox-settings'),totalOptions=0,i=0;if(control.hasClass('selectBox-disabled'))return;switch(event.keyCode){case 8:event.preventDefault();typeSearch='';break;case 9:case 27:hideMenus();removeHover(select);break;case 13:if(control.hasClass('selectBox-menuShowing')){selectOption(select,options.find('LI.selectBox-hover:first'),event);if(control.hasClass('selectBox-dropdown'))hideMenus()}else{showMenu(select)}break;case 38:case 37:event.preventDefault();if(control.hasClass('selectBox-menuShowing')){var prev=options.find('.selectBox-hover').prev('LI');totalOptions=options.find('LI:not(.selectBox-optgroup)').length;i=0;while(prev.length===0||prev.hasClass('selectBox-disabled')||prev.hasClass('selectBox-optgroup')){prev=prev.prev('LI');if(prev.length===0){if(settings.loopOptions){prev=options.find('LI:last')}else{prev=options.find('LI:first')}}if(++i>=totalOptions)break}addHover(select,prev);selectOption(select,prev,event);keepOptionInView(select,prev)}else{showMenu(select)}break;case 40:case 39:event.preventDefault();if(control.hasClass('selectBox-menuShowing')){var next=options.find('.selectBox-hover').next('LI');totalOptions=options.find('LI:not(.selectBox-optgroup)').length;i=0;while(next.length===0||next.hasClass('selectBox-disabled')||next.hasClass('selectBox-optgroup')){next=next.next('LI');if(next.length===0){if(settings.loopOptions){next=options.find('LI:first')}else{next=options.find('LI:last')}}if(++i>=totalOptions)break}addHover(select,next);selectOption(select,next,event);keepOptionInView(select,next)}else{showMenu(select)}break}};var handleKeyPress=function(select,event){select=$(select);var control=select.data('selectBox-control'),options=control.data('selectBox-options');if(control.hasClass('selectBox-disabled'))return;switch(event.keyCode){case 9:case 27:case 13:case 38:case 37:case 40:case 39:break;default:if(!control.hasClass('selectBox-menuShowing'))showMenu(select);event.preventDefault();clearTimeout(typeTimer);typeSearch+=String.fromCharCode(event.charCode||event.keyCode);options.find('A').each(function(){if($(this).text().substr(0,typeSearch.length).toLowerCase()===typeSearch.toLowerCase()){addHover(select,$(this).parent());keepOptionInView(select,$(this).parent());return false}});typeTimer=setTimeout(function(){typeSearch=''},1000);break}};var enable=function(select){select=$(select);select.attr('disabled',false);var control=select.data('selectBox-control');if(!control)return;control.removeClass('selectBox-disabled')};var disable=function(select){select=$(select);select.attr('disabled',true);var control=select.data('selectBox-control');if(!control)return;control.addClass('selectBox-disabled')};var setValue=function(select,value){select=$(select);select.val(value);value=select.val();var control=select.data('selectBox-control');if(!control)return;var settings=select.data('selectBox-settings'),options=control.data('selectBox-options');setLabel(select);options.find('.selectBox-selected').removeClass('selectBox-selected');options.find('A').each(function(){if(typeof(value)==='object'){for(var i=0;i<value.length;i++){if($(this).attr('rel')==value[i]){$(this).parent().addClass('selectBox-selected')}}}else{if($(this).attr('rel')==value){$(this).parent().addClass('selectBox-selected')}}});if(settings.change)settings.change.call(select)};var setOptions=function(select,options){select=$(select);var control=select.data('selectBox-control'),settings=select.data('selectBox-settings');switch(typeof(data)){case'string':select.html(data);break;case'object':select.html('');for(var i in data){if(data[i]===null)continue;if(typeof(data[i])==='object'){var optgroup=$('<optgroup label="'+i+'" />');for(var j in data[i]){optgroup.append('<option value="'+j+'">'+data[i][j]+'</option>')}select.append(optgroup)}else{var option=$('<option value="'+i+'">'+data[i]+'</option>');select.append(option)}}break}if(!control)return;control.data('selectBox-options').remove();var type=control.hasClass('selectBox-dropdown')?'dropdown':'inline';options=getOptions(select,type);control.data('selectBox-options',options);switch(type){case'inline':control.append(options);break;case'dropdown':setLabel(select);$("BODY").append(options);break}};var disableSelection=function(selector){$(selector).css('MozUserSelect','none').bind('selectstart',function(event){event.preventDefault()})};var generateOptions=function(self,options){var li=$('<li />'),a=$('<a />');li.addClass(self.attr('class'));li.data(self.data());a.attr('rel',self.val()).text(self.text());li.append(a);if(self.attr('disabled'))li.addClass('selectBox-disabled');if(self.attr('selected'))li.addClass('selectBox-selected');options.append(li)};switch(method){case'control':return $(this).data('selectBox-control');case'settings':if(!data)return $(this).data('selectBox-settings');$(this).each(function(){$(this).data('selectBox-settings',$.extend(true,$(this).data('selectBox-settings'),data))});break;case'options':if(data===undefined)return $(this).data('selectBox-control').data('selectBox-options');$(this).each(function(){setOptions(this,data)});break;case'value':if(data===undefined)return $(this).val();$(this).each(function(){setValue(this,data)});break;case'refresh':$(this).each(function(){refresh(this)});break;case'enable':$(this).each(function(){enable(this)});break;case'disable':$(this).each(function(){disable(this)});break;case'destroy':$(this).each(function(){destroy(this)});break;default:$(this).each(function(){init(this,method)});break}return $(this)}})})(jQuery); if(jQuery)(function($){$.extend($.fn,{selectBox:function(method,data){var typeTimer,typeSearch='',isMac=navigator.platform.match(/mac/i);var init=function(select,data){var options;if(navigator.userAgent.match(/iPad|iPhone|Android|IEMobile|BlackBerry/i))return false;if(select.tagName.toLowerCase()!=='select')return false;select=$(select);if(select.data('selectBox-control'))return false;var control=$('<a class="selectBox" />'),inline=select.attr('multiple')||parseInt(select.attr('size'))>1;var settings=data||{};control.width(select.outerWidth()).addClass(select.attr('class')).attr('title',select.attr('title')||'').attr('tabindex',parseInt(select.attr('tabindex'))).css('display','inline-block').bind('focus.selectBox',function(){if(this!==document.activeElement&&document.body!==document.activeElement)$(document.activeElement).blur();if(control.hasClass('selectBox-active'))return;control.addClass('selectBox-active');select.trigger('focus')}).bind('blur.selectBox',function(){if(!control.hasClass('selectBox-active'))return;control.removeClass('selectBox-active');select.trigger('blur')});if(!$(window).data('selectBox-bindings')){$(window).data('selectBox-bindings',true).bind('scroll.selectBox',hideMenus).bind('resize.selectBox',hideMenus)}if(select.attr('disabled'))control.addClass('selectBox-disabled');select.bind('click.selectBox',function(event){control.focus();event.preventDefault()});if(inline){options=getOptions(select,'inline');control.append(options).data('selectBox-options',options).addClass('selectBox-inline selectBox-menuShowing').bind('keydown.selectBox',function(event){handleKeyDown(select,event)}).bind('keypress.selectBox',function(event){handleKeyPress(select,event)}).bind('mousedown.selectBox',function(event){if($(event.target).is('A.selectBox-inline'))event.preventDefault();if(!control.hasClass('selectBox-focus'))control.focus()}).insertAfter(select);if(!select[0].style.height){var size=select.attr('size')?parseInt(select.attr('size')):5;var tmp=control.clone().removeAttr('id').css({position:'absolute',top:'-9999em'}).show().appendTo('body');tmp.find('.selectBox-options').html('<li><a>\u00A0</a></li>');var optionHeight=parseInt(tmp.find('.selectBox-options A:first').html('&nbsp;').outerHeight());tmp.remove();control.height(optionHeight*size)}disableSelection(control)}else{var label=$('<span class="selectBox-label" />'),arrow=$('<span class="selectBox-arrow" />');label.attr('class',getLabelClass(select)).text(getLabelText(select));options=getOptions(select,'dropdown');options.appendTo('BODY');control.data('selectBox-options',options).addClass('selectBox-dropdown').append(label).append(arrow).bind('mousedown.selectBox',function(event){if(control.hasClass('selectBox-menuShowing')){hideMenus()}else{event.stopPropagation();options.data('selectBox-down-at-x',event.screenX).data('selectBox-down-at-y',event.screenY);showMenu(select)}}).bind('keydown.selectBox',function(event){handleKeyDown(select,event)}).bind('keypress.selectBox',function(event){handleKeyPress(select,event)}).bind('open.selectBox',function(event,triggerData){if(triggerData&&triggerData._selectBox===true)return;showMenu(select)}).bind('close.selectBox',function(event,triggerData){if(triggerData&&triggerData._selectBox===true)return;hideMenus()}).insertAfter(select);var labelWidth=control.width()-arrow.outerWidth()-parseInt(label.css('paddingLeft'))-parseInt(label.css('paddingLeft'));label.width(labelWidth);disableSelection(control)}select.addClass('selectBox').data('selectBox-control',control).data('selectBox-settings',settings).hide()};var getOptions=function(select,type){var options;var _getOptions=function(select,options){select.children('OPTION, OPTGROUP').each(function(){if($(this).is('OPTION')){if($(this).length>0){generateOptions($(this),options)}else{options.append('<li>\u00A0</li>')}}else{var optgroup=$('<li class="selectBox-optgroup" />');optgroup.text($(this).attr('label'));options.append(optgroup);options=_getOptions($(this),options)}});return options};switch(type){case'inline':options=$('<ul class="selectBox-options" />');options=_getOptions(select,options);options.find('A').bind('mouseover.selectBox',function(event){addHover(select,$(this).parent())}).bind('mouseout.selectBox',function(event){removeHover(select,$(this).parent())}).bind('mousedown.selectBox',function(event){event.preventDefault();if(!select.selectBox('control').hasClass('selectBox-active'))select.selectBox('control').focus()}).bind('mouseup.selectBox',function(event){hideMenus();selectOption(select,$(this).parent(),event)});disableSelection(options);return options;case'dropdown':options=$('<ul class="selectBox-dropdown-menu selectBox-options" />');options=_getOptions(select,options);options.data('selectBox-select',select).css('display','none').appendTo('BODY').find('A').bind('mousedown.selectBox',function(event){event.preventDefault();if(event.screenX===options.data('selectBox-down-at-x')&&event.screenY===options.data('selectBox-down-at-y')){options.removeData('selectBox-down-at-x').removeData('selectBox-down-at-y');hideMenus()}}).bind('mouseup.selectBox',function(event){if(event.screenX===options.data('selectBox-down-at-x')&&event.screenY===options.data('selectBox-down-at-y')){return}else{options.removeData('selectBox-down-at-x').removeData('selectBox-down-at-y')}selectOption(select,$(this).parent());hideMenus()}).bind('mouseover.selectBox',function(event){addHover(select,$(this).parent())}).bind('mouseout.selectBox',function(event){removeHover(select,$(this).parent())});var classes=select.attr('class')||'';if(classes!==''){classes=classes.split(' ');for(var i in classes)options.addClass(classes[i]+'-selectBox-dropdown-menu')}disableSelection(options);return options}};var getLabelClass=function(select){var selected=$(select).find('OPTION:selected');return('selectBox-label '+(selected.attr('class')||'')).replace(/\s+$/,'')};var getLabelText=function(select){var selected=$(select).find('OPTION:selected');return selected.text()||'\u00A0'};var setLabel=function(select){select=$(select);var control=select.data('selectBox-control');if(!control)return;control.find('.selectBox-label').attr('class',getLabelClass(select)).text(getLabelText(select))};var destroy=function(select){select=$(select);var control=select.data('selectBox-control');if(!control)return;var options=control.data('selectBox-options');options.remove();control.remove();select.removeClass('selectBox').removeData('selectBox-control').data('selectBox-control',null).removeData('selectBox-settings').data('selectBox-settings',null).show()};var refresh=function(select){select=$(select);select.selectBox('options',select.html())};var showMenu=function(select){select=$(select);var control=select.data('selectBox-control'),settings=select.data('selectBox-settings'),options=control.data('selectBox-options');if(control.hasClass('selectBox-disabled'))return false;hideMenus();var borderBottomWidth=isNaN(control.css('borderBottomWidth'))?0:parseInt(control.css('borderBottomWidth'));options.width(control.innerWidth()).css({top:control.offset().top+control.outerHeight()-borderBottomWidth,left:control.offset().left});if(select.triggerHandler('beforeopen'))return false;var dispatchOpenEvent=function(){select.triggerHandler('open',{_selectBox:true})};switch(settings.menuTransition){case'fade':options.fadeIn(settings.menuSpeed,dispatchOpenEvent);break;case'slide':options.slideDown(settings.menuSpeed,dispatchOpenEvent);break;default:options.show(settings.menuSpeed,dispatchOpenEvent);break}if(!settings.menuSpeed)dispatchOpenEvent();var li=options.find('.selectBox-selected:first');keepOptionInView(select,li,true);addHover(select,li);control.addClass('selectBox-menuShowing');$(document).bind('mousedown.selectBox',function(event){if($(event.target).parents().andSelf().hasClass('selectBox-options'))return;hideMenus()})};var hideMenus=function(){if($(".selectBox-dropdown-menu:visible").length===0)return;$(document).unbind('mousedown.selectBox');$(".selectBox-dropdown-menu").each(function(){var options=$(this),select=options.data('selectBox-select'),control=select.data('selectBox-control'),settings=select.data('selectBox-settings');if(select.triggerHandler('beforeclose'))return false;var dispatchCloseEvent=function(){select.triggerHandler('close',{_selectBox:true})};switch(settings.menuTransition){case'fade':options.fadeOut(settings.menuSpeed,dispatchCloseEvent);break;case'slide':options.slideUp(settings.menuSpeed,dispatchCloseEvent);break;default:options.hide(settings.menuSpeed,dispatchCloseEvent);break}if(!settings.menuSpeed)dispatchCloseEvent();control.removeClass('selectBox-menuShowing')})};var selectOption=function(select,li,event){select=$(select);li=$(li);var control=select.data('selectBox-control'),settings=select.data('selectBox-settings');if(control.hasClass('selectBox-disabled'))return false;if(li.length===0||li.hasClass('selectBox-disabled'))return false;if(select.attr('multiple')){if(event.shiftKey&&control.data('selectBox-last-selected')){li.toggleClass('selectBox-selected');var affectedOptions;if(li.index()>control.data('selectBox-last-selected').index()){affectedOptions=li.siblings().slice(control.data('selectBox-last-selected').index(),li.index())}else{affectedOptions=li.siblings().slice(li.index(),control.data('selectBox-last-selected').index())}affectedOptions=affectedOptions.not('.selectBox-optgroup, .selectBox-disabled');if(li.hasClass('selectBox-selected')){affectedOptions.addClass('selectBox-selected')}else{affectedOptions.removeClass('selectBox-selected')}}else if((isMac&&event.metaKey)||(!isMac&&event.ctrlKey)){li.toggleClass('selectBox-selected')}else{li.siblings().removeClass('selectBox-selected');li.addClass('selectBox-selected')}}else{li.siblings().removeClass('selectBox-selected');li.addClass('selectBox-selected')}if(control.hasClass('selectBox-dropdown')){control.find('.selectBox-label').text(li.text())}var i=0,selection=[];if(select.attr('multiple')){control.find('.selectBox-selected A').each(function(){selection[i++]=$(this).attr('rel')})}else{selection=li.find('A').attr('rel')}control.data('selectBox-last-selected',li);if(select.val()!==selection){select.val(selection);setLabel(select);select.trigger('change')}return true};var addHover=function(select,li){select=$(select);li=$(li);var control=select.data('selectBox-control'),options=control.data('selectBox-options');options.find('.selectBox-hover').removeClass('selectBox-hover');li.addClass('selectBox-hover')};var removeHover=function(select,li){select=$(select);li=$(li);var control=select.data('selectBox-control'),options=control.data('selectBox-options');options.find('.selectBox-hover').removeClass('selectBox-hover')};var keepOptionInView=function(select,li,center){if(!li||li.length===0)return;select=$(select);var control=select.data('selectBox-control'),options=control.data('selectBox-options'),scrollBox=control.hasClass('selectBox-dropdown')?options:options.parent(),top=parseInt(li.offset().top-scrollBox.position().top),bottom=parseInt(top+li.outerHeight());if(center){scrollBox.scrollTop(li.offset().top-scrollBox.offset().top+scrollBox.scrollTop()-(scrollBox.height()/2))}else{if(top<0){scrollBox.scrollTop(li.offset().top-scrollBox.offset().top+scrollBox.scrollTop())}if(bottom>scrollBox.height()){scrollBox.scrollTop((li.offset().top+li.outerHeight())-scrollBox.offset().top+scrollBox.scrollTop()-scrollBox.height())}}};var handleKeyDown=function(select,event){select=$(select);var control=select.data('selectBox-control'),options=control.data('selectBox-options'),settings=select.data('selectBox-settings'),totalOptions=0,i=0;if(control.hasClass('selectBox-disabled'))return;switch(event.keyCode){case 8:event.preventDefault();typeSearch='';break;case 9:case 27:hideMenus();removeHover(select);break;case 13:if(control.hasClass('selectBox-menuShowing')){selectOption(select,options.find('LI.selectBox-hover:first'),event);if(control.hasClass('selectBox-dropdown'))hideMenus()}else{showMenu(select)}break;case 38:case 37:event.preventDefault();if(control.hasClass('selectBox-menuShowing')){var prev=options.find('.selectBox-hover').prev('LI');totalOptions=options.find('LI:not(.selectBox-optgroup)').length;i=0;while(prev.length===0||prev.hasClass('selectBox-disabled')||prev.hasClass('selectBox-optgroup')){prev=prev.prev('LI');if(prev.length===0){if(settings.loopOptions){prev=options.find('LI:last')}else{prev=options.find('LI:first')}}if(++i>=totalOptions)break}addHover(select,prev);selectOption(select,prev,event);keepOptionInView(select,prev)}else{showMenu(select)}break;case 40:case 39:event.preventDefault();if(control.hasClass('selectBox-menuShowing')){var next=options.find('.selectBox-hover').next('LI');totalOptions=options.find('LI:not(.selectBox-optgroup)').length;i=0;while(next.length===0||next.hasClass('selectBox-disabled')||next.hasClass('selectBox-optgroup')){next=next.next('LI');if(next.length===0){if(settings.loopOptions){next=options.find('LI:first')}else{next=options.find('LI:last')}}if(++i>=totalOptions)break}addHover(select,next);selectOption(select,next,event);keepOptionInView(select,next)}else{showMenu(select)}break}};var handleKeyPress=function(select,event){select=$(select);var control=select.data('selectBox-control'),options=control.data('selectBox-options');if(control.hasClass('selectBox-disabled'))return;switch(event.keyCode){case 9:case 27:case 13:case 38:case 37:case 40:case 39:break;default:if(!control.hasClass('selectBox-menuShowing'))showMenu(select);event.preventDefault();clearTimeout(typeTimer);typeSearch+=String.fromCharCode(event.charCode||event.keyCode);options.find('A').each(function(){if($(this).text().substr(0,typeSearch.length).toLowerCase()===typeSearch.toLowerCase()){addHover(select,$(this).parent());keepOptionInView(select,$(this).parent());return false}});typeTimer=setTimeout(function(){typeSearch=''},1000);break}};var enable=function(select){select=$(select);select.attr('disabled',false);var control=select.data('selectBox-control');if(!control)return;control.removeClass('selectBox-disabled')};var disable=function(select){select=$(select);select.attr('disabled',true);var control=select.data('selectBox-control');if(!control)return;control.addClass('selectBox-disabled')};var setValue=function(select,value){select=$(select);select.val(value);value=select.val();var control=select.data('selectBox-control');if(!control)return;var settings=select.data('selectBox-settings'),options=control.data('selectBox-options');setLabel(select);options.find('.selectBox-selected').removeClass('selectBox-selected');options.find('A').each(function(){if(typeof(value)==='object'){for(var i=0;i<value.length;i++){if($(this).attr('rel')==value[i]){$(this).parent().addClass('selectBox-selected')}}}else{if($(this).attr('rel')==value){$(this).parent().addClass('selectBox-selected')}}});if(settings.change)settings.change.call(select)};var setOptions=function(select,options){select=$(select);var control=select.data('selectBox-control'),settings=select.data('selectBox-settings');switch(typeof(data)){case'string':select.html(data);break;case'object':select.html('');for(var i in data){if(data[i]===null)continue;if(typeof(data[i])==='object'){var optgroup=$('<optgroup label="'+i+'" />');for(var j in data[i]){optgroup.append('<option value="'+j+'">'+data[i][j]+'</option>')}select.append(optgroup)}else{var option=$('<option value="'+i+'">'+data[i]+'</option>');select.append(option)}}break}if(!control)return;control.data('selectBox-options').remove();var type=control.hasClass('selectBox-dropdown')?'dropdown':'inline';options=getOptions(select,type);control.data('selectBox-options',options);switch(type){case'inline':control.append(options);break;case'dropdown':setLabel(select);$("BODY").append(options);break}};var disableSelection=function(selector){$(selector).css('MozUserSelect','none').bind('selectstart',function(event){event.preventDefault()})};var generateOptions=function(self,options){var li=$('<li />'),a=$('<a />');li.addClass(self.attr('class'));li.data(self.data());a.attr('rel',self.val()).text(self.text());li.append(a);if(self.attr('disabled'))li.addClass('selectBox-disabled');if(self.attr('selected'))li.addClass('selectBox-selected');options.append(li)};switch(method){case'control':return $(this).data('selectBox-control');case'settings':if(!data)return $(this).data('selectBox-settings');$(this).each(function(){$(this).data('selectBox-settings',$.extend(true,$(this).data('selectBox-settings'),data))});break;case'options':if(data===undefined)return $(this).data('selectBox-control').data('selectBox-options');$(this).each(function(){setOptions(this,data)});break;case'value':if(data===undefined)return $(this).val();$(this).each(function(){setValue(this,data)});break;case'refresh':$(this).each(function(){refresh(this)});break;case'enable':$(this).each(function(){enable(this)});break;case'disable':$(this).each(function(){disable(this)});break;case'destroy':$(this).each(function(){destroy(this)});break;default:$(this).each(function(){init(this,method)});break}return $(this)}})})(jQuery);
\ No newline at end of file
...@@ -73,7 +73,7 @@ a { ...@@ -73,7 +73,7 @@ a {
overflow: hidden; overflow: hidden;
text-align: center; text-align: center;
margin-top: 50px; margin-top: 50px;
margin-bottom: 50px; margin-bottom: 85px;
} }
.search{ .search{
......
html, body{ html, body{
width: 100%; width: 100%;
padding: 0; padding: 0;
height: auto; height: auto;
background-color: white; background-color: white;
margin: 0; margin: 0;
} }
::-webkit-scrollbar { ::-webkit-scrollbar {
width: 14px; width: 14px;
background-color:white; background-color:white;
} }
::-webkit-scrollbar-thumb { ::-webkit-scrollbar-thumb {
border-radius: 10px; border-radius: 10px;
background-color:lightgray; background-color:lightgray;
border: 2px solid gray; border: 2px solid gray;
} }
::-webkit-scrollbar-button:vertical:start{ ::-webkit-scrollbar-button:vertical:start{
border-radius: 10px; border-radius: 10px;
background-color:lightgray; background-color:lightgray;
background-image: url(../images/trgUp.png); background-image: url(../images/trgUp.png);
background-size: 8px auto; background-size: 8px auto;
background-position: center; background-position: center;
background-repeat: no-repeat; background-repeat: no-repeat;
border: 2px solid gray; border: 2px solid gray;
} }
::-webkit-scrollbar-button:vertical:end{ ::-webkit-scrollbar-button:vertical:end{
border-radius: 10px; border-radius: 10px;
background-color:lightgray; background-color:lightgray;
background-image: url(../images/trgDown.png); background-image: url(../images/trgDown.png);
background-size: 8px auto; background-size: 8px auto;
background-position: center; background-position: center;
background-repeat: no-repeat; background-repeat: no-repeat;
border: 2px solid gray; border: 2px solid gray;
} }
a { a {
text-decoration: underline; text-decoration: underline;
} }
#disc_nav_cont{ #disc_nav_cont{
height: auto; height: auto;
position: fixed; position: fixed;
left: 0; left: 0;
bottom: 0; bottom: 0;
width: 100%; width: 100%;
} }
.disclaimer{ .disclaimer{
padding: 5px; padding: 5px;
text-align: center; text-align: center;
background-color: #BBBBBB; background-color: #BBBBBB;
border-top: solid 4px #EEEEEE; border-top: solid 4px #EEEEEE;
border-bottom: none; border-bottom: none;
font-size: 12px; font-size: 12px;
} }
.resultFooter{ .resultFooter{
width: 100%; width: 100%;
padding: 3px; padding: 3px;
font-family: Verdana,Arial,Helvetica,sans-serif; font-family: Verdana,Arial,Helvetica,sans-serif;
font-weight: bold; font-weight: bold;
font-size: x-large; font-size: x-large;
text-align: center; text-align: center;
background-color: white; background-color: white;
} }
#searchResult { #searchResult {
overflow: hidden; overflow: hidden;
text-align: center; text-align: center;
margin-top: 50px; margin-top: 50px;
margin-bottom: 50px; margin-bottom: 85px;
} }
.search{ .search{
position: fixed; position: fixed;
top: 0; top: 0;
left: 0; left: 0;
padding: 5px; padding: 5px;
background-color: #BBBBBB; background-color: #BBBBBB;
border-bottom: solid 4px #EEEEEE; border-bottom: solid 4px #EEEEEE;
} }
.search, .search,
.disclaimer { .disclaimer {
width: 100%; width: 100%;
box-sizing: border-box; box-sizing: border-box;
-webkit-box-sizing: border-box; -webkit-box-sizing: border-box;
} }
.searchInput{ .searchInput{
padding: 3px; padding: 3px;
float: left; float: left;
width: 100%; width: 100%;
border-radius: 3px; border-radius: 3px;
border-style: none; border-style: none;
height: 22px; height: 22px;
line-height: 18px; line-height: 18px;
vertical-align: middle; vertical-align: middle;
box-sizing: border-box; box-sizing: border-box;
-webkit-box-sizing: border-box; -webkit-box-sizing: border-box;
} }
.searchButton{ .searchButton{
background: url("../images/search_app.png") -38px -38px no-repeat; background: url("../images/search_app.png") -38px -38px no-repeat;
width: 24px; width: 24px;
height: 24px; height: 24px;
overflow: hidden; overflow: hidden;
position: absolute; position: absolute;
right: 30px; right: 30px;
top: 9px; top: 9px;
margin-left: -2px; margin-left: -2px;
cursor: pointer; cursor: pointer;
} }
.subSearch{ .subSearch{
margin: 0; margin: 0;
float: left; float: left;
} }
#subSearchInput{ #subSearchInput{
width: 100%; width: 100%;
float: left; float: left;
box-sizing: border-box; box-sizing: border-box;
-webkit-box-sizing: border-box; -webkit-box-sizing: border-box;
padding: 5px; padding: 5px;
padding-right: 26px; padding-right: 26px;
} }
#subSearchFilter{ #subSearchFilter{
width: 100%; width: 100%;
float: left; float: left;
display: none; display: none;
} }
.searchResult{ .searchResult{
width: 98%; width: 98%;
padding: 3px; padding: 3px;
background-color:#123456; background-color:#123456;
} }
.imgContainer{ .imgContainer{
display: inline-block; display: inline-block;
padding: 3px; padding: 3px;
margin: 3px; margin: 3px;
text-align: center; text-align: center;
overflow: hidden; overflow: hidden;
font-size: small; font-size: small;
font-family: Verdana,Arial,Helvetica,sans-serif; font-family: Verdana,Arial,Helvetica,sans-serif;
border: 1px solid #666; border: 1px solid #666;
border-radius: 5px; border-radius: 5px;
-webkit-box-shadow: #dadada -1px 0 4px; -webkit-box-shadow: #dadada -1px 0 4px;
-webkit-border-radius: 5px; -webkit-border-radius: 5px;
box-shadow: #666 -1px 0 4px; box-shadow: #666 -1px 0 4px;
vertical-align: top; vertical-align: top;
} }
.filterContainer{ .filterContainer{
float: left; float: left;
margin: 2px; margin: 2px;
padding: 2px; padding: 2px;
font-size: 14px; font-size: 14px;
} }
.filterSelect{ .filterSelect{
border-style:none; border-style:none;
-webkit-border-top-right-radius: 15px; -webkit-border-top-right-radius: 15px;
-webkit-border-bottom-right-radius: 15px; -webkit-border-bottom-right-radius: 15px;
-moz-border-radius-topright: 15px; -moz-border-radius-topright: 15px;
-moz-border-radius-bottomright: 15px; -moz-border-radius-bottomright: 15px;
border-top-right-radius: 15px; border-top-right-radius: 15px;
margin-top: 2px; margin-top: 2px;
width: 100%; width: 100%;
} }
span{ span{
font-family: Verdana,Arial,Helvetica,sans-serif; font-family: Verdana,Arial,Helvetica,sans-serif;
color: #666; color: #666;
} }
[draggable] { [draggable] {
-webkit-user-select: none; -webkit-user-select: none;
user-select: none; user-select: none;
} }
.toggleFilters{ .toggleFilters{
margin: 0; margin: 0;
padding: 0; padding: 0;
background-position: center; background-position: center;
background-image: url(../images/down.png); background-image: url(../images/down.png);
position: absolute; position: absolute;
top: 11px; top: 11px;
right: 6px; right: 6px;
width: 20px; width: 20px;
height: 20px; height: 20px;
cursor: pointer; cursor: pointer;
} }
.colors_line { .colors_line {
float: left; float: left;
margin: 4px; margin: 4px;
margin-right: 0; margin-right: 0;
clear: left; clear: left;
} }
.custom { .custom {
opacity: 0; opacity: 0;
position: absolute; position: absolute;
left: -10000px; left: -10000px;
} }
.filter_button.button.color { .filter_button.button.color {
display: inline-block; display: inline-block;
width: 15px; width: 15px;
height: 15px; height: 15px;
border: 1px solid #EBEBEB; border: 1px solid #EBEBEB;
padding: 0; padding: 0;
margin: 0; margin: 0;
box-sizing: border-box; box-sizing: border-box;
-webkit-box-sizing: border-box; -webkit-box-sizing: border-box;
} }
.filter_button.button.color:hover { .filter_button.button.color:hover {
border: 1px solid rgb(128,128,128); border: 1px solid rgb(128,128,128);
cursor: pointer; cursor: pointer;
} }
input[type="radio"]:checked + .filter_button.button.color { input[type="radio"]:checked + .filter_button.button.color {
border: 1px solid rgb(255,255,255); border: 1px solid rgb(255,255,255);
box-shadow: 0 0 0px 1px #000; box-shadow: 0 0 0px 1px #000;
-webkit-box-shadow: 0 0 0px 1px #000; -webkit-box-shadow: 0 0 0px 1px #000;
} }
#allcolor { #allcolor {
background: white url('../images/search_app.png') -43px -144px no-repeat; background: white url('../images/search_app.png') -43px -144px no-repeat;
} }
#colored { #colored {
background: white url('../images/search_app.png') -43px -244px no-repeat; background: white url('../images/search_app.png') -43px -244px no-repeat;
} }
#grayed { #grayed {
background: white url('../images/search_app.png') -45px -343px no-repeat; background: white url('../images/search_app.png') -45px -343px no-repeat;
} }
#black{ #black{
background-color:#ffffff; background-color:#ffffff;
} }
#blue{ #blue{
background-color:#0000FF; background-color:#0000FF;
} }
#brown{ #brown{
background-color:rgba(139, 82, 16, 1); background-color:rgba(139, 82, 16, 1);
} }
#gray{ #gray{
background-color:#999999; background-color:#999999;
} }
#green{ #green{
background-color:#00CC00; background-color:#00CC00;
} }
#orange{ #orange{
background-color:#FB940B; background-color:#FB940B;
} }
#pink{ #pink{
background-color:#FF98BF; background-color:#FF98BF;
} }
#purple{ #purple{
background-color:#762CA7; background-color:#762CA7;
} }
#red{ #red{
background-color:#CC0000; background-color:#CC0000;
} }
#teal{ #teal{
background-color:#03C0C6; background-color:#03C0C6;
} }
#white{ #white{
background-color:#000000; background-color:#000000;
} }
#yellow{ #yellow{
background-color:#FFFF00; background-color:#FFFF00;
} }
.selectBox-dropdown, .selectBox-options li a { .selectBox-dropdown, .selectBox-options li a {
line-height: 1.3 !important; line-height: 1.3 !important;
font-size: 13px; font-size: 13px;
} }
.pager_button { .pager_button {
padding: 3px 5px; padding: 3px 5px;
font-size: 16px; font-size: 16px;
color: black; color: black;
display: inline-block; display: inline-block;
} }
.pager_button.active { .pager_button.active {
border-radius: 3px; border-radius: 3px;
-webkit-border-radius: 3px; -webkit-border-radius: 3px;
background-color: gray; background-color: gray;
color: white; color: white;
} }
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<html xmlns="http://www.w3.org/1999/xhtml"> <html xmlns="http://www.w3.org/1999/xhtml">
<head> <head>
<title>Planete Sankore Image Search</title> <title>Planete Sankore Image Search</title>
<link rel="stylesheet" type="text/css" href="css/basic.css"/> <link rel="stylesheet" type="text/css" href="css/basic.css"/>
<script type="text/javascript" src="scripts/jquery-1.6.2.min.js"></script> <script type="text/javascript" src="scripts/jquery-1.6.2.min.js"></script>
<script type="text/javascript"> <script type="text/javascript">
var category = "video"; var category = "video";
var thumbnails = false; var thumbnails = false;
var minHeight = 180; var minHeight = 177;
var minWidth = 150; var minWidth = 150;
var currentIndex = 0; var currentIndex = 0;
var currentTerm = ""; var currentTerm = "";
var limit = 10; var limit = 10;
var filtersDisplayed = false; //display or hide filters var filtersDisplayed = false; //display or hide filters
function addPaginationLinks(totalResults) { function addPaginationLinks(totalResults) {
var curPage = currentIndex; // check what page the app is on var curPage = currentIndex; // check what page the app is on
var pagesDiv = $("<div id='resultFooter' class='resultFooter'>"); var pagesDiv = $("<div id='resultFooter' class='resultFooter'>");
for (var i = 0; i < 8; i++) { for (var i = 0; i < 8; i++) {
if (i * limit < totalResults) { if (i * limit < totalResults) {
var link = $("<a class='pager_button'></a>").attr('href', 'javascript:gotoPage('+i+');').html(i+1).appendTo(pagesDiv); var link = $("<a class='pager_button'></a>").attr('href', 'javascript:gotoPage('+i+');').html(i+1).appendTo(pagesDiv);
if (curPage == i) { if (curPage == i) {
link.addClass('active'); link.addClass('active');
} }
} }
} }
$("#disc_nav_cont #resultFooter").remove(); $("#disc_nav_cont #resultFooter").remove();
pagesDiv.insertBefore($('#disclaimer')); pagesDiv.insertBefore($('#disclaimer'));
$(".imgContainer").each(function(){ $(".imgContainer").each(function(){
this.addEventListener("dragstart", imageDragging, false); this.addEventListener("dragstart", imageDragging, false);
}) })
$(".imgContainer").each(function(){ $(".imgContainer").each(function(){
this.addEventListener("dragenter", imageDragenter, false); this.addEventListener("dragenter", imageDragenter, false);
}) })
$(".imgContainer").each(function(){ $(".imgContainer").each(function(){
this.addEventListener("dragleave", imageDragleave, false); this.addEventListener("dragleave", imageDragleave, false);
}) })
$(".imgContainer").each(function(){ $(".imgContainer").each(function(){
this.addEventListener("dragover", imageDragover, false); this.addEventListener("dragover", imageDragover, false);
}) })
} }
function searchFail(jqXHR, textStatus, errorThrown) { function searchFail(jqXHR, textStatus, errorThrown) {
alert('Impossible to connect to Planete Sankore: ' + textStatus + ' ' + errorThrown); alert('Impossible to connect to Planete Sankore: ' + textStatus + ' ' + errorThrown);
} }
function searchComplete(json) { function searchComplete(json) {
// Grab our content div, clear it. // Grab our content div, clear it.
var totalResults = json.totalResults; var totalResults = json.totalResults;
var contentDiv = $('#searchResult').empty(); var contentDiv = $('#searchResult').empty();
// Loop through our results, printing them to the page. // Loop through our results, printing them to the page.
var results = json.rows; var results = json.rows;
for (var i = 0; i < results.length; i++) { for (var i = 0; i < results.length; i++) {
// For each result write it's title and image to the screen // For each result write it's title and image to the screen
var result = results[i]; var result = results[i];
var imgContainer = $("<div class='imgContainer' draggable='true'>"); var imgContainer = $("<div class='imgContainer' draggable='true'>");
var title = document.createElement('div'); var title = document.createElement('div');
var iUrl = $("<input type='hidden'/>"); var iUrl = $("<input type='hidden'/>");
var iContent = $("<input type='hidden'/>"); var iContent = $("<input type='hidden'/>");
var iHeight = $("<input type='hidden'/>"); var iHeight = $("<input type='hidden'/>");
var iWidth = $("<input type='hidden'/>"); var iWidth = $("<input type='hidden'/>");
var iTitle = $("<input type='hidden'/>"); var iTitle = $("<input type='hidden'/>");
// We use titleNoFormatting so that no HTML tags are left in the // We use titleNoFormatting so that no HTML tags are left in the
// title // title
title.innerHTML = result.title; title.innerHTML = result.title;
var newImg = document.createElement('img'); var newImg = document.createElement('img');
// There is also a result.file property which has the escaped version // There is also a result.file property which has the escaped version
if (thumbnails) { if (thumbnails) {
newImg.src = result.file; newImg.src = result.file;
} else { } else {
newImg.src = "./images/thumbnail_icon.png"; newImg.src = "./images/thumbnail_icon.png";
} }
var imgWidth = (result.tbWidth > minWidth)?result.tbWidth:minWidth; var imgWidth = (result.tbWidth > minWidth)?result.tbWidth:minWidth;
var imgHeight = (result.tbHeight > minHeight)?result.tbHeight:minHeight; var imgHeight = (result.tbHeight > minHeight)?result.tbHeight:minHeight;
imgContainer.width(imgWidth).height(imgHeight); imgContainer.width(imgWidth).height(imgHeight);
imgContainer.append($(newImg)); imgContainer.append($(newImg));
iUrl.attr("value", result.file); iUrl.attr("value", result.file);
iContent.attr("value", result.title); iContent.attr("value", result.title);
iHeight.attr("value", result.height); iHeight.attr("value", result.height);
iWidth.attr("value", result.width); iWidth.attr("value", result.width);
iTitle.attr("value",result.title); iTitle.attr("value",result.title);
imgContainer.append($(title)); imgContainer.append($(title));
imgContainer.append(iUrl); imgContainer.append(iUrl);
imgContainer.append(iContent); imgContainer.append(iContent);
imgContainer.append(iHeight); imgContainer.append(iHeight);
imgContainer.append(iWidth); imgContainer.append(iWidth);
imgContainer.append(iTitle); imgContainer.append(iTitle);
// Put our title + image in the content // Put our title + image in the content
imgContainer.appendTo(contentDiv); imgContainer.appendTo(contentDiv);
} }
// Now add links to additional pages of search results. // Now add links to additional pages of search results.
addPaginationLinks(totalResults); addPaginationLinks(totalResults);
} }
function imageDragging(e){ function imageDragging(e){
e.dataTransfer.setData("text/plain",$(this).find("input:hidden").eq(0).val()); e.dataTransfer.setData("text/plain",$(this).find("input:hidden").eq(0).val());
// alert($(this).find("input:hidden").eq(0).val()); // alert($(this).find("input:hidden").eq(0).val());
} }
function imageDragleave(e){ function imageDragleave(e){
return false; return false;
} }
function imageDragover(e){ function imageDragover(e){
return false; return false;
} }
function imageDragenter(e){ function imageDragenter(e){
return false; return false;
} }
$(document).ready(function(){ $(document).ready(function(){
//variables //variables
var mode = false; //search or view mode var mode = false; //search or view mode
var hide = false; //hide or no main panel var hide = false; //hide or no main panel
//basic containers and elements //basic containers and elements
var disc_nav_cont = $("<div id='disc_nav_cont' class='disc_nav_cont'>").appendTo("body"); var disc_nav_cont = $("<div id='disc_nav_cont' class='disc_nav_cont'>").appendTo("body");
var disclaimer = $("<div id='disclaimer' class='disclaimer'>Recherche de documents vidéo sur Planète Sankoré<div>").appendTo(disc_nav_cont); var disclaimer = $("<div id='disclaimer' class='disclaimer'>Recherche de documents vidéo sur Planète Sankoré<div>").appendTo(disc_nav_cont);
var search = $("<div id='search' class='search'>").appendTo("body"); var search = $("<div id='search' class='search'>").appendTo("body");
var togglePages = $("<div id='togglePages' class='togglePages'>").appendTo(search); var togglePages = $("<div id='togglePages' class='togglePages'>").appendTo(search);
var toggleIcon = $("<div id='toggleIcon' class='toggleIcon'>").appendTo(togglePages); var toggleIcon = $("<div id='toggleIcon' class='toggleIcon'>").appendTo(togglePages);
var subSearchInput = $("<div id='subSearchInput' class='subSearch'>").appendTo(search); var subSearchInput = $("<div id='subSearchInput' class='subSearch'>").appendTo(search);
var subSearchFilter = $("<div id='subSearchFilter' class='subSearch'>").appendTo(search); var subSearchFilter = $("<div id='subSearchFilter' class='subSearch'>").appendTo(search);
var searchInput = $("<input id='searchInput' class='searchInput' type='text'/>").appendTo(subSearchInput); var searchInput = $("<input id='searchInput' class='searchInput' type='text'/>").appendTo(subSearchInput);
var searchButton = $("<div id='searchButton' class='searchButton'>").appendTo(subSearchInput); var searchButton = $("<div id='searchButton' class='searchButton'>").appendTo(subSearchInput);
// var toggleFilters = $("<div id='toggleFilters' class='toggleFilters'>").appendTo(subSearchInput); // var toggleFilters = $("<div id='toggleFilters' class='toggleFilters'>").appendTo(subSearchInput);
//adding filters to the wgt //adding filters to the wgt
var selectFilter = $("<select id='sizeFilter' class='filterSelect'>") var selectFilter = $("<select id='sizeFilter' class='filterSelect'>")
.append($("<option value='0'>Any</option>")) .append($("<option value='0'>Any</option>"))
.append($("<option value='1'>Small</option>")) .append($("<option value='1'>Small</option>"))
.append($("<option value='2'>Medium</option>")) .append($("<option value='2'>Medium</option>"))
.append($("<option value='3'>Large</option>")) .append($("<option value='3'>Large</option>"))
.append($("<option value='4'>Extra large</option>")); .append($("<option value='4'>Extra large</option>"));
$("<div class='filterContainer'>").append("<span>Size:</span>").append(selectFilter).appendTo(subSearchFilter); $("<div class='filterContainer'>").append("<span>Size:</span>").append(selectFilter).appendTo(subSearchFilter);
//mouse click actions //mouse click actions
/* /*
toggleFilters.click(function(){ toggleFilters.click(function(){
if(filtersDisplayed){ if(filtersDisplayed){
subSearchFilter.hide(); subSearchFilter.hide();
toggleFilters.css("background-image","url(images/down.png)"); toggleFilters.css("background-image","url(images/down.png)");
filtersDisplayed = false; filtersDisplayed = false;
} else { } else {
subSearchFilter.show(); subSearchFilter.show();
toggleFilters.css("background-image","url(images/up.png)"); toggleFilters.css("background-image","url(images/up.png)");
filtersDisplayed = true; filtersDisplayed = true;
} }
}); });
*/ */
/*togglePages.click(function(event){ /*togglePages.click(function(event){
if(mode){ if(mode){
hide = false; hide = false;
$("#search, #disclaimer").slideDown('slow', function(){ $("#search, #disclaimer").slideDown('slow', function(){
toggleIcon.css("background-image","url(images/trgUp.png)"); toggleIcon.css("background-image","url(images/trgUp.png)");
togglePages.appendTo("#search").css("top","").css("bottom","-14px"); togglePages.appendTo("#search").css("top","").css("bottom","-14px");
}); });
mode = false; mode = false;
} else { } else {
hide = true; hide = true;
$("#search, #disclaimer").slideUp('slow', function(){ $("#search, #disclaimer").slideUp('slow', function(){
toggleIcon.css("background-image","url(images/trgDown.png)"); toggleIcon.css("background-image","url(images/trgDown.png)");
togglePages.appendTo("body").css("top","0"); togglePages.appendTo("body").css("top","0");
}); });
mode = true; mode = true;
} }
});*/ });*/
searchButton.click(function(){ searchButton.click(function(){
if(!hide){ if(!hide){
runSearch(searchInput.val(), 0); runSearch(searchInput.val(), 0);
//togglePages.trigger("click"); //togglePages.trigger("click");
} }
}); });
searchInput.keydown(function(event){ searchInput.keydown(function(event){
if(!hide){ if(!hide){
if((event.keyCode == 0xA)||(event.keyCode == 0xD)){ if((event.keyCode == 0xA)||(event.keyCode == 0xD)){
runSearch(searchInput.val(), 0); runSearch(searchInput.val(), 0);
//togglePages.trigger("click"); //togglePages.trigger("click");
} }
} }
}); });
( (
$(".imgContainer").live("click",function(){ $(".imgContainer").live("click",function(){
sankore.sendFileMetadata(createMetaData($(this))); sankore.sendFileMetadata(createMetaData($(this)));
})); }));
/*$(window).resize(function(){ /*$(window).resize(function(){
disclaimer.width($("body").width()-20); disclaimer.width($("body").width()-20);
search.width($("body").width()-20); search.width($("body").width()-20);
toggleIcon.css("margin-left",(togglePages.width()/2 - 7)); toggleIcon.css("margin-left",(togglePages.width()/2 - 7));
})*/ })*/
}); });
function gotoPage(i) { function gotoPage(i) {
runSearch(currentTerm, i); runSearch(currentTerm, i);
} }
// launching the search on planete sankore // launching the search on planete sankore
function runSearch(term, index) { function runSearch(term, index) {
currentTerm = term; currentTerm = term;
currentIndex = index; currentIndex = index;
var start = index * limit; var start = index * limit;
var url = "http://planete.sankore.org/xwiki/bin/view/Search/Resources?xpage=plain&category=" + category + "&level=&sort=title&dir=ASC&terms=" + escape(term) + "&start=" + start + "&limit=" + limit; var url = "http://planete.sankore.org/xwiki/bin/view/Search/Resources?xpage=plain&category=" + category + "&level=&sort=title&dir=ASC&terms=" + escape(term) + "&start=" + start + "&limit=" + limit;
$.ajax({ $.ajax({
url: url, url: url,
success: searchComplete, success: searchComplete,
error: searchFail, error: searchFail,
dataType: "json" dataType: "json"
}); });
} }
function createMetaData(parent){ function createMetaData(parent){
var meta = ""; var meta = "";
//alert($(this).find("input:hidden").eq(0).val()); //alert($(this).find("input:hidden").eq(0).val());
meta = "<metadata><data><key>Type</key><value>Video</value></data><data><key>Url</key><value>" + meta = "<metadata><data><key>Type</key><value>Video</value></data><data><key>Url</key><value>" +
parent.find("input:hidden").eq(0).val() + parent.find("input:hidden").eq(0).val() +
"</value></data><data><key>Content</key><value>" + "</value></data><data><key>Content</key><value>" +
parent.find("input:hidden").eq(1).val() + parent.find("input:hidden").eq(1).val() +
"</value></data><data><key>Height</key><value>n/a</value></data>"+ "</value></data><data><key>Height</key><value>n/a</value></data>"+
"<data><key>Width</key><value>n/a</value></data><data><key>Title</key><value>" + "<data><key>Width</key><value>n/a</value></data><data><key>Title</key><value>" +
parent.find("input:hidden").eq(4).val() + parent.find("input:hidden").eq(4).val() +
"</value></data></metadata>"; "</value></data></metadata>";
return meta; return meta;
} }
</script> </script>
</head> </head>
<body style="font-family: Arial;border: 0 none;"> <body style="font-family: Arial;border: 0 none;">
<div id="searchResult"></div> <div id="searchResult"></div>
</body> </body>
</html> </html>
This source diff could not be displayed because it is too large. You can view the blob instead.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment