/*
	Developed by Robert Nyman, http://www.robertnyman.com
	Code/licensing: http://code.google.com/p/getelementsbyclassname/
*/	
var getElementsByClassName = function (className, tag, elm){
	if (document.getElementsByClassName) {
		getElementsByClassName = function (className, tag, elm) {
			elm = elm || document;
			var elements = elm.getElementsByClassName(className),
				nodeName = (tag)? new RegExp("\\b" + tag + "\\b", "i") : null,
				returnElements = [],
				current;
			for(var i=0, il=elements.length; i<il; i+=1){
				current = elements[i];
				if(!nodeName || nodeName.test(current.nodeName)) {
					returnElements.push(current);
				}
			}
			return returnElements;
		};
	}
	else if (document.evaluate) {
		getElementsByClassName = function (className, tag, elm) {
			tag = tag || "*";
			elm = elm || document;
			var classes = className.split(" "),
				classesToCheck = "",
				xhtmlNamespace = "http://www.w3.org/1999/xhtml",
				namespaceResolver = (document.documentElement.namespaceURI === xhtmlNamespace)? xhtmlNamespace : null,
				returnElements = [],
				elements,
				node;
			for(var j=0, jl=classes.length; j<jl; j+=1){
				classesToCheck += "[contains(concat(' ', @class, ' '), ' " + classes[j] + " ')]";
			}
			try	{
				elements = document.evaluate(".//" + tag + classesToCheck, elm, namespaceResolver, 0, null);
			}
			catch (e) {
				elements = document.evaluate(".//" + tag + classesToCheck, elm, null, 0, null);
			}
			while ((node = elements.iterateNext())) {
				returnElements.push(node);
			}
			return returnElements;
		};
	}
	else {
		getElementsByClassName = function (className, tag, elm) {
			tag = tag || "*";
			elm = elm || document;
			var classes = className.split(" "),
				classesToCheck = [],
				elements = (tag === "*" && elm.all)? elm.all : elm.getElementsByTagName(tag),
				current,
				returnElements = [],
				match;
			for(var k=0, kl=classes.length; k<kl; k+=1){
				classesToCheck.push(new RegExp("(^|\\s)" + classes[k] + "(\\s|$)"));
			}
			for(var l=0, ll=elements.length; l<ll; l+=1){
				current = elements[l];
				match = false;
				for(var m=0, ml=classesToCheck.length; m<ml; m+=1){
					match = classesToCheck[m].test(current.className);
					if (!match) {
						break;
					}
				}
				if (match) {
					returnElements.push(current);
				}
			}
			return returnElements;
		};
	}
	return getElementsByClassName(className, tag, elm);
};

/**
 * Copyright (c) 2008 Google Inc.
 *
 * You are free to copy and use this sample.
 * License can be found here: http://code.google.com/apis/ajaxsearch/faq/#license
*/

function GSvideoSearchControl(root, defaultTags,
                   opt_loadTagsFunction, opt_saveTagsFunction, opt_options) {
  this.processArguments(root, defaultTags, opt_loadTagsFunction,
                        opt_saveTagsFunction, opt_options);

  this.setGlobals();
  this.bindToPage();
  this.loadTags();
  this.startSearchControl();
}

GSvideoSearchControl.prototype.processArguments = function(root, defaultTags,
                                                opt_loadTagsFunction,
                                                opt_saveTagsFunction,
                                                opt_options) {
  this.root = root;
  this.defaultTags = defaultTags;
  this.enableEditTags = false;

  if (opt_loadTagsFunction) {
    this.loadCallback = opt_loadTagsFunction;
  } else {
    this.loadCallback = null;
  }

  if (opt_saveTagsFunction) {
    this.saveCallback = opt_saveTagsFunction;
    this.enableEditTags = true;
  } else {
    this.saveCallback = null;
  }

  // set defaults that are changable via options
  this.resultSetSize = GSearch.SMALL_RESULTSET;
  this.ssDelay = 350;
  this.twoRowMode = false;
  this.ST_ALL_DONE = GSearch.strings["im-done"];

  // process options if specified
  if (opt_options) {

    // option.largetResultSet
    if (opt_options.largeResultSet && opt_options.largeResultSet == true ) {
      this.resultSetSize = GSearch.LARGE_RESULTSET;
    } else {
      this.resultSetSize = GSearch.SMALL_RESULTSET;
    }

    // option.startupDelay
    if (opt_options.startupDelay &&
        (opt_options.startupDelay > 0 && opt_options.startupDelay <= 2000) ) {
      this.ssDelay = opt_options.startupDelay;
    }

    // option.twoRowMode
    if (opt_options.twoRowMode && opt_options.twoRowMode == true ) {
      this.twoRowMode = true;
    }

    if (opt_options.string_allDone) {
      this.ST_ALL_DONE = opt_options.string_allDone;
    }
  }
}

GSvideoSearchControl.prototype.setGlobals = function() {
  this.br_AgentContains_cache_ = {};

  // superstructure class
  this.CLSS_MORE = "more_gsvsc";
  this.CLSS_READBOX = "readBox_gsvsc";
  this.CLSS_EDITBOX = "editBox_gsvsc";
  this.CLSS_FOOTERBOX = "footerBox_gsvsc";
  this.CLSS_CONTROLBOX = "controlBox_gsvsc";
  this.CLSS_PLAYERBOX = "playerBox_gsvsc";
  this.CLSS_TAGSTACKBOX = "tagStackBox_gsvsc";
  this.CLSS_SEARCHFORM = "searchForm_gsvsc";
  this.CLSS_RESULTSBOX = "results_gsvsc";
  this.CLSS_TINYRESULTSBOX = "tiny-results_gsvsc";

  // global classes
  // major app states
  this.CL_READING = "app_gsvsc reading_gsvsc";
  this.CL_SEARCHING = "app_gsvsc searching_gsvsc";
  this.CL_EDITING = "app_gsvsc editing_gsvsc";
  this.CL_PLAYING = "app_gsvsc playing_gsvsc";
  this.CL_TAGCONTROL = "tag-control_gsvsc";
  this.CL_ODD = "odd_gsvsc";
  this.CL_EVEN = "even_gsvsc";

  // tag classes
  this.CL_TAG = "tag_gsvsc";
  this.CL_TAGSELECTED = " tag-selected_gsvsc";
  this.CL_RTAG_PREFIX = "tag_gsvsc-";
  this.CL_EDITTAG = "edit-tag_gsvsc";

  // search form components
  this.CL_SFINPUT = "search-form-input_gsvsc";
  this.CL_SFINPUTCELL = "search-form-input-cell_gsvsc";
  this.CL_SFSEARCH = "search-form-search_gsvsc";
  this.CL_SFSEARCHCELL = "search-form-search-cell_gsvsc";
  this.CL_SFSAVE = "search-form-save_gsvsc";
  this.CL_SFCOMPLETE = "searchForm_gsvsc search-form-complete_gsvsc";

  // edit form components
  this.CL_EFINPUTBOX = "edit-form-input-box_gsvsc";
  this.CL_EFINPUT = "edit-form-input_gsvsc";
  this.CL_EFDELETE = "edit-form-delete_gsvsc";
  this.CL_EFDELETE_OPERA = "edit-form-delete-opera_gsvsc";
  this.CL_EFSUBMITBOX = "edit-form-submit-box_gsvsc";

  // results
  this.CL_VIDEORESULT = "video-result_gsvsc";
  this.CL_TINYVIDEORESULT = "tiny-video-result_gsvsc";
  this.CL_VIDEORESULTTABLE = "video-result-table_gsvsc";
  this.CL_VIDEORESULTCELL = "video-result-cell_gsvsc-";

  // player
  this.CL_PLAYER = "player_gsvsc";
  this.CL_TITLE = "title_gsvsc";

  // footer
  this.CL_FOOTERLINK = "footer-link_gsvsc";
  this.CL_FOOTEREDIT = "footer-edit_gsvsc";

  // non-settable strings, strings that
  // are not modifiable via options
  this.ST_SEARCH = GSearch.strings["search"];
  this.ST_EDIT = GSearch.strings["edit-tags"];
  this.ST_SAVESEARCH = GSearch.strings["tag-search"];
  this.ST_QUERY = GSearch.strings["search"];
  this.ST_LABEL = GSearch.strings["optional-label"];
  this.ST_DELETE = GSearch.strings["delete"];
  this.ST_DELETED = GSearch.strings["deleted"];
  this.ST_SAVEBTN = GSearch.strings["save"];
  this.ST_CANCELBTN = GSearch.strings["cancel"];
  this.ST_MOREVIDEOS = GSearch.strings["upload-video"];

  this.tinyResultBoxHeight = 39;
  this.resultBoxHeight = 77;
  this.maxRandom = 2;
  this.footerUrl = "http://www.youtube.com/my_videos_upload";
}

GSvideoSearchControl.prototype.buildSuperStructure = function() {
  this.app = this.createDiv(null, this.CL_READING);

  // first level children
  this.more = this.createDiv(null, this.CLSS_MORE);
  this.readBox = this.createDiv(null, this.CLSS_READBOX);
  this.editBox = this.createDiv(null, this.CLSS_EDITBOX);
  this.footerBox = this.createDiv(null, this.CLSS_FOOTERBOX);
  this.app.appendChild(this.more);
  this.app.appendChild(this.readBox);
  this.app.appendChild(this.editBox);
  this.app.appendChild(this.footerBox);

  // readBox children
  this.controlBox = this.createDiv(null, this.CLSS_CONTROLBOX);
  this.searchForm = this.createDiv(null, this.CLSS_SEARCHFORM);
  this.results = this.createDiv(null, this.CLSS_RESULTSBOX);
  this.tinyResults = this.createDiv(null, this.CLSS_TINYRESULTSBOX);
  this.playerBox = this.createDiv(null, this.CLSS_PLAYERBOX);
  this.tagStack = this.createDiv(null, this.CLSS_TAGSTACKBOX);
  this.controlBox.appendChild(this.playerBox);
  this.controlBox.appendChild(this.searchForm);
  this.controlBox.appendChild(this.results);
  this.controlBox.appendChild(this.tinyResults);
  this.controlBox.appendChild(this.tagStack);
  this.readBox.appendChild(this.controlBox);

  // footerBox children
  this.footerLink = this.createLink(this.footerUrl, this.ST_MOREVIDEOS);

  if (this.enableEditTags) {
    var table = this.createTable();
    var row = this.createTableRow(table);
    var editCell = this.createTableCell(row, this.CL_FOOTEREDIT);
    var linkCell = this.createTableCell(row, this.CL_FOOTERLINK);

    var edit = this.createDiv(this.ST_EDIT, this.CL_EDITTAG);
    edit.onclick = this.methodClosure(this, GSvideoSearchControl.prototype.startEditing, [true]);
    editCell.appendChild(edit);

    // footer link
    linkCell.appendChild(this.footerLink);
    this.footerBox.appendChild(table);
  } else {
    this.footerBox.appendChild(this.footerLink);
  }
}

function stopVideoWatching(){
	//GSvideoSearchControl.removeChildren(div.playerBox_gsvsc); 
	var arr = getElementsByClassName('playerBox_gsvsc');
	var obj = document.getElementById('videoControl');
	
	GSvideoSearchControl.prototype.removeChildren(arr[0]);
	videoSearch.twiddleMore();
	videoSearch.stopVideo();
	videoSearch.methodClosure();
	
	var arr2 = getElementsByClassName('app_gsvsc');
	
	GSvideoSearchControl.prototype.cssSetClass(arr2[0], "app_gsvsc reading_gsvsc");
	
}

GSvideoSearchControl.prototype.bindToPage = function() {
  this.buildSuperStructure();
  this.removeChildren(this.root);
  this.root.appendChild(this.app);

  // bind up the search and edit controls
  this.more.innerHTML = this.ST_SEARCH;
  this.more.onclick = this.methodClosure(this, GSvideoSearchControl.prototype.twiddleMore, []);

  // build the search form
  this.vsf = new GSearchForm(false, this.searchForm,
                             {
                               clickableBrandingUrl : "http://video.google.com"
                             });
  this.vsf.setOnSubmitCallback(this,GSvideoSearchControl.prototype.searchByString);

  if ( this.enableEditTags ) {
    this.vsfSaveQuery = this.createDiv(this.ST_SAVESEARCH, this.CL_SFSAVE);
    this.vsf.userDefinedCell.appendChild(this.vsfSaveQuery);
    this.vsfSaveQuery.onclick = this.methodClosure(this, GSvideoSearchControl.prototype.addTag, []);
  }
}

GSvideoSearchControl.prototype.startSearchControl = function() {
  this.vs = new GvideoSearch();
  this.vs.setResultSetSize(this.resultSetSize);
  this.vs.setSearchCompleteCallback(this, GSvideoSearchControl.prototype.searchComplete, [null]);
  this.searchCounter = 0;
  this.startupTimer = setTimeout(this.methodClosure(this, GSvideoSearchControl.prototype.firstSearch, [null]), this.ssDelay);
}

GSvideoSearchControl.prototype.firstSearch = function() {
  if (this.searchCounter == 0) {
    this.doRandomSearch();
  }
}

GSvideoSearchControl.prototype.searchComplete = function() {
  if ( this.vs.results && this.vs.results.length > 0) {
    this.removeChildren(this.results);
    this.removeChildren(this.tinyResults);
    if (this.vsf.input.value != "") {
      if ( this.enableEditTags ) {
        this.cssSetClass(this.searchForm, this.CL_SFCOMPLETE);
      }
      if (this.currentItem) {
        this.cssSetClass(this.currentItem.domNode, this.currentItem.savedClassName);
        this.currentItem = null;
      }
    }

    var maxColumns = 4;
    var tinyMaxColumns = 4;
    if (this.getNodeWidth(this.results) > 350 || this.getNodeWidth(this.tinyResults) > 350 ) {
      maxColumns = 4;
      tinyMaxColumns = 4;
    }
    var table = this.createTable(this.CL_VIDEORESULTTABLE + " " + this.CL_VIDEORESULTTABLE + "-" + maxColumns);
    table.setAttribute("align", "center");
    var tinyTable = this.createTable(this.CL_VIDEORESULTTABLE + " " + this.CL_VIDEORESULTTABLE + "-" + tinyMaxColumns);
    tinyTable.setAttribute("align", "center");

    var row = null;
    var tinyRow = null;
    var cellCounter = 0;
    var tinyCellCounter = 0;
    var rowCounter = 0;

    for (var i = 0; i < this.vs.results.length; i++) {
      var res = this.vs.results[i];

      // full size image
      var imageScaler = {width:100,height:75};
      var scaled = GSearch.scaleImage(res.tbWidth, res.tbHeight, imageScaler);
      var img = this.createImage(res.tbUrl, scaled.width, scaled.height, null);
      img.onclick = this.methodClosure(this, GSvideoSearchControl.prototype.playVideo, [res]);

      // half sized image
      var tinyImageScaler = {width:50,height:37};
      var tinyScaled = GSearch.scaleImage(res.tbWidth, res.tbHeight, tinyImageScaler);

      var tinyImg = this.createImage(res.tbUrl, tinyScaled.width, tinyScaled.height, null);
      tinyImg.onclick = this.methodClosure(this, GSvideoSearchControl.prototype.playVideo, [res]);

      // manually set the top padding
      if ((this.resultBoxHeight - scaled.height) > 0) {
        var padTop = Math.round((this.resultBoxHeight - scaled.height)/2);
		
        if  ( this.br_IsNav() ) {
          //img.setAttribute("style", "{padding-top:" + padTop +";}");
         // img.setAttribute("vspace", padTop);
        } else {
          //img.setAttribute("vspace", padTop);
        }
      }
      if ((this.tinyResultBoxHeight - tinyScaled.height) > 0) {
        var tinyPadTop = Math.round((this.tinyResultBoxHeight - tinyScaled.height)/2);

        if  ( this.br_IsNav() ) {
          //tinyImg.setAttribute("style", "{padding-top:" + tinyPadTop +";}");
          //tinyImg.setAttribute("vspace", tinyPadTop);
        } else {
          //tinyImg.setAttribute("vspace", tinyPadTop);
        }
      }

      // compute duration
      var seconds = res.duration;
      var minutes = parseInt(seconds/60);
      var durationString;
      if (minutes > 0) {
        durationString = minutes + "m";
        var remainder = seconds%60;
        if (remainder > 20) {
          durationString += " " + remainder + "s";
        }
      } else {
        durationString = seconds + "s";
      }

      var toolTip = res.titleNoFormatting + " ( " + durationString + " )";
      var div = this.createDiv(null, this.CL_VIDEORESULT);
      div.title = toolTip;
      div.appendChild(img);

      var tinyDiv = this.createDiv(null, this.CL_TINYVIDEORESULT);
      tinyDiv.title = toolTip;
      tinyDiv.appendChild(tinyImg);

      // create rows as needed
      if (row == null || cellCounter >= maxColumns) {
        row = this.createTableRow(table);
        cellCounter = 0;
        rowCounter++;
        if (this.twoRowMode && rowCounter > 2) {
          break;
        }
      }

      // create rows as needed
      if (tinyRow == null || tinyCellCounter >= tinyMaxColumns) {
        tinyRow = this.createTableRow(tinyTable);
        tinyCellCounter = 0;
      }

      var cell = this.createTableCell(row, this.CL_VIDEORESULTCELL + cellCounter);
      cell.appendChild(div);
      cellCounter++;

      var tinyCell = this.createTableCell(tinyRow, this.CL_VIDEORESULTCELL + cellCounter);
      tinyCell.appendChild(tinyDiv);
      tinyCellCounter++;
    }
    this.results.appendChild(table);
    this.tinyResults.appendChild(tinyTable);
  }
}

GSvideoSearchControl.prototype.playVideo = function(result) {
  this.stopVideo();
  if (result.playUrl && result.playUrl != "") {

    // switch to the player
    this.more.innerHTML = this.ST_ALL_DONE;
    this.cssSetClass(this.app, this.CL_PLAYING);
    if (GvideoSearch.createPlayer) {
      this.player = GvideoSearch.createPlayer(result, this.CL_PLAYER);
    } else {
      var playUrl = result.playUrl;

      if (this.br_IsOpera()) {
        this.player = document.createElement("object");
        this.player.className = this.CL_PLAYER;
        this.player.setAttribute("type", "application/x-shockwave-flash");
        this.player.setAttribute("data", playUrl);
      } else {
        this.player = document.createElement("embed");
        this.player.className = this.CL_PLAYER;
        this.player.setAttribute("type", "application/x-shockwave-flash");
        this.player.setAttribute("src", playUrl);
        if (result.videoType) {
          if (result.videoType == "Google") {
            this.player.setAttribute("bgcolor", "#000000");
          } else {
            this.player.setAttribute("wmode", "transparent");
          }
        } else {
          this.player.setAttribute("bgcolor", "#000000");
        }
      }
    }
    this.playerBox.appendChild(this.player);

    // the title
    var title = this.createDivLink(result.url, result.title, null, this.CL_TITLE);
    this.playerBox.appendChild(title);
  }
}

GSvideoSearchControl.prototype.stopVideo = function(result) {
  this.removeChildren(this.playerBox);
  if (this.player) {
    delete(this.player);
    this.player = null;
  }
}

GSvideoSearchControl.prototype.doRandomSearch = function() {
  // pick a random video
  var max = this.tags.length - 1;
  var index = Math.round(max * Math.random());
  this.searchByIndex(index);
}

GSvideoSearchControl.prototype.loadTags = function() {

  if (this.loadCallback) {
    var tags = this.loadCallback();
    if (tags == null || tags == "") {
      this.tags = this.defaultTags;
    } else {
      this.tags = GSvideoSearchControl_JSON.parse(tags);
    }
  } else {
    this.tags = this.defaultTags;
  }

  this.removeChildren(this.tagStack);
  for (var i=0; i < this.tags.length; i++ ) {
    this.loadTagItem(i);
  }
}

GSvideoSearchControl.prototype.loadTagItem = function(itemIndex) {

  var item = this.tags[itemIndex]
  var baseClassName = this.CL_TAG + " " + this.CL_RTAG_PREFIX;
  var label = item.query;
  if (item.label) {
    label = item.label;
  }

  // random class between 0 and this.maxRandom
  var r = Math.round(this.maxRandom * Math.random());
  className = baseClassName + r;

  label = " " + label.replace(/\s/g,"") + " ";
  var div = this.createDiv(label, className);
  div.onclick = this.methodClosure(this, GSvideoSearchControl.prototype.searchByIndex, [itemIndex]);
  this.tagStack.appendChild(div);

  item.savedClassName = className;
  item.domNode = div;
}

GSvideoSearchControl.prototype.addTag = function() {
  if ( this.enableEditTags ) {
    if (this.vsf.input.value && this.vsf.input.value != "") {
      var item = new Object();
      item.query = this.vsf.input.value;

      // ensure this one is not already in our stack
      var matchFound = false;
      for (var i=0; i < this.tags.length; i++) {
        var ci = this.tags[i];
        if (ci.query.toLowerCase() == item.query.toLowerCase()) {
          matchFound = true;
          break;
        }
      }
      this.vsf.input.value = "";
      if (!matchFound) {
        this.tags.push(item);
        this.loadTagItem(this.tags.length-1);
        this.setSelectedIndex(this.tags.length-1);
        this.twiddleMore();
        this.saveTags();
      } else {
        this.twiddleMore();
      }
    }
  }
}

GSvideoSearchControl.prototype.saveTags = function() {

  var cleanTags = new Array();
  for (var i=0; i < this.tags.length; i++) {
    var ci = this.tags[i];
    var ni = new Object();
    ni.query = ci.query;
    if (ci.label) {
      ni.label = ci.label;
    }
    cleanTags.push(ni);
  }
  var tagStrings = GSvideoSearchControl_JSON.stringify(cleanTags);
  if (tagStrings) {
    if (this.saveCallback) {
      this.saveCallback(tagStrings);
    }
  }
}

GSvideoSearchControl.prototype.deleteTag = function(formRow, itemIndex) {

  this.tags[itemIndex].softDeleted = true;
  if (this.br_IsOpera()) {
    // opera will not let me touch the table
    // so I just redraw the thing instead

    // create a value table array so I can promote the current form
    // values...

    valueTable = new Array();
    for (var i=0; i < this.formInputs.length; i++) {
      var inputObject = new Object();

      // promote query value
      if (this.tags[i].softDeleted) {
        inputObject.query = "";
        inputObject.label = "";
      } else {
        if (this.formInputs[i].queryInput.value) {
          inputObject.query = this.cleanse(this.formInputs[i].queryInput.value);
        } else {
          inputObject.query = "";
        }
        if (this.formInputs[i].labelInput.value) {
          inputObject.label = this.cleanse(this.formInputs[i].labelInput.value);
        } else {
          inputObject.label = "";
        }
      }
      valueTable.push(inputObject);
    }
    this.createEditForm(valueTable);
  } else {
    this.cssSetClass(formRow, this.CL_EFDELETE);
  }
}

GSvideoSearchControl.prototype.startEditing = function() {
  if (this.tags.length <= 0) {
    return;
  }
  this.cssSetClass(this.app, this.CL_EDITING);
  this.createEditForm(null);
}

GSvideoSearchControl.prototype.stopEditing = function(formDisposition) {
  this.cssSetClass(this.app, this.CL_READING);
  this.submitEditForm(formDisposition);
  return false;
}

GSvideoSearchControl.prototype.createEditForm = function(opt_valueTable) {

  // build the search form
  this.removeChildren(this.editBox);
  this.ef = this.createForm(null);
  this.formInputs = new Array();

  var table = this.createTable();
  for (var i=0; i < this.tags.length; i++) {
    var rowClass = this.CL_ODD;
    if (i % 2 == 0) {
      var rowClass = this.CL_EVEN;
    }
    var item = this.tags[i];
    var inputObject = new Object();

    // for each item, create a row, input cell, delete cell, etc
    var row = this.createTableRow(table, rowClass);
    var inputCell = this.createTableCell(row, this.CL_EFINPUT);
    var deleteCell = this.createTableCell(row, this.CL_EFDELETE);

    // query
    var div = this.createDiv(null, this.CL_EFINPUTBOX);
    var input = this.createTextInput(this.CL_EFINPUT, "query");
    var label = this.createDiv(this.ST_QUERY, this.CL_TAGCONTROL);
    div.appendChild(input);
    div.appendChild(label);
    inputCell.appendChild(div);
    if (item.softDeleted) {
      input.value = this.ST_DELETED;
      input.disabled = true;
    } else {
      if (opt_valueTable) {
        input.value = opt_valueTable[i].query;
      } else {
        if (item.query) {
          input.value = item.query;
        }
      }
    }
    inputObject.queryInput = input;

    // label
    div = this.createDiv(null, this.CL_EFINPUTBOX);
    input = this.createTextInput(this.CL_EFINPUT, "label");
    label = this.createDiv(this.ST_LABEL, this.CL_TAGCONTROL);
    div.appendChild(input);
    div.appendChild(label);
    inputCell.appendChild(div);
    if (item.softDeleted) {
      input.value = this.ST_DELETED;
      input.disabled = true;
    } else {
      if (opt_valueTable) {
        input.value = opt_valueTable[i].label;
      } else {
        if (item.label) {
          input.value = item.label;
        }
      }
    }
    inputObject.labelInput = input;
    this.formInputs.push(inputObject);

    // delete
    if (item.softDeleted) {
      div = this.createDiv(" ", this.CL_TAGCONTROL);
    } else {
      div = this.createDiv(this.ST_DELETE, this.CL_TAGCONTROL);
      div.onclick = this.methodClosure(this, GSvideoSearchControl.prototype.deleteTag, [row, i]);
    }

    deleteCell.appendChild(div);
  }
  this.ef.appendChild(table);

  // save/cancel buttons
  div = this.createDiv(null, this.CL_EFSUBMITBOX);
  var button = this.createButton(this.ST_CANCELBTN, this.CL_TAGCONTROL);
  button.onclick = this.methodClosure(this, GSvideoSearchControl.prototype.stopEditing, [false]);
  div.appendChild(button);

  button = this.createButton(this.ST_SAVEBTN, this.CL_TAGCONTROL);
  button.onclick = this.methodClosure(this, GSvideoSearchControl.prototype.stopEditing, [true]);
  this.ef.onsubmit = this.methodClosure(this, GSvideoSearchControl.prototype.stopEditing, [true]);
  div.appendChild(button);
  this.ef.appendChild(div);

  this.editBox.appendChild(this.ef)
}

GSvideoSearchControl.prototype.submitEditForm = function(ok) {
  if (ok) {

    // whip through the form creating a new set of items
    var cleanTags = new Array();
    for (var i=0; i < this.tags.length; i++) {
      ci = this.tags[i];

      // skip soft deletes
      if (ci.softDeleted) {
        continue;
      }

      var item = new Object();
      // safari forces me to use
      // a parallel array... if (this.ef["query"][i].value) {
      if (this.formInputs[i].queryInput.value) {
        item.query = this.cleanse(this.formInputs[i].queryInput.value);
      } else {
        item.query = ci.query;
      }

      if (this.formInputs[i].labelInput.value) {
        item.label = this.cleanse(this.formInputs[i].labelInput.value);
      }
      cleanTags.push(item);
    }

    // resort to default if you have nuked everything?
    if (cleanTags.length) {
      this.tags = cleanTags;
    } else {
      this.tags = this.defaultTags;
    }
    this.saveTags();

    // todo(markl): this should be a this.loadTags()
    this.removeChildren(this.tagStack);
    for (var i=0; i < this.tags.length; i++ ) {
      this.loadTagItem(i);
    }
    this.doRandomSearch();
  } else {
    for (var i=0; i < this.tags.length; i++) {
      ci = this.tags[i];
      ci.softDeleted = false;
    }
  }
}

GSvideoSearchControl.prototype.setSelectedIndex = function(itemIndex) {
  if (this.currentItem) {
    this.cssSetClass(this.currentItem.domNode, this.currentItem.savedClassName);
  }
  var item = this.tags[itemIndex];
  this.currentItem = item;
  this.cssSetClass(this.currentItem.domNode, this.currentItem.savedClassName + this.CL_TAGSELECTED);
}

GSvideoSearchControl.prototype.searchByIndex = function(itemIndex) {
  var item = this.tags[itemIndex];
  this.setSelectedIndex(itemIndex);
  this.searchByString(this.vsf, item.query);
}

/**
 * Standard .execute function to perform a search
 */
GSvideoSearchControl.prototype.execute = function(query) {
  this.vsf.input.value = query+' youtube ';
  this.searchByString(this.vsf);
}

GSvideoSearchControl.prototype.searchByString = function(form, opt_query) {

  this.searchCounter++;
  clearTimeout(this.startupTimer);

  var query = "";
  if (opt_query) {
    query = opt_query;
    this.vsf.input.value = "";
    this.cssSetClass(this.searchForm, this.CLSS_SEARCHFORM);
  } else if (this.vsf.input.value) {
    query = this.vsf.input.value;
  } else {
    return false;
  }
  if (this.twoRowMode) {
    if (this.getNodeWidth(this.results) > 350 || this.getNodeWidth(this.tinyResults) > 350 ) {
      this.resultSetSize = GSearch.LARGE_RESULTSET;
    } else {
      this.resultSetSize = GSearch.SMALL_RESULTSET;
    }
    this.vs.setResultSetSize(this.resultSetSize);
  }
  this.vs.execute(query+' youtube ');

  return false;
}

GSvideoSearchControl.prototype.twiddleMore = function() {
  if (this.app.className == this.CL_READING) {
    this.more.innerHTML = this.ST_ALL_DONE;
    this.cssSetClass(this.app, this.CL_SEARCHING);
    this.cssSetClass(this.searchForm, this.CLSS_SEARCHFORM);
  } else if (this.app.className == this.CL_PLAYING) {
    this.more.innerHTML = this.ST_SEARCH;
    this.cssSetClass(this.app, this.CL_READING);
    this.stopVideo();
  } else {
    this.more.innerHTML = this.ST_SEARCH;
    this.cssSetClass(this.app, this.CL_READING);
  }
}

/**
 * Static Helper Method
*/
GSvideoSearchControl.methodCallback = function(object, method) {
  return function() {
	 alert(object.id+ ' ' +method) 
    return method.apply(object, arguments);
  }
}

/**
 * Class methods
*/
GSvideoSearchControl.prototype.cleanse = function(str) {
  return str.replace(/</g, '&lt;').replace(/>/g, '&gt;');
}

GSvideoSearchControl.prototype.methodClosure = function(object, method, opt_argArray) {
  return function() {
    return method.apply(object, opt_argArray);
  }
}

GSvideoSearchControl.prototype.createDiv = function(opt_text, opt_className) {
  var el = document.createElement("div");
  if (opt_text) {
    el.innerHTML = opt_text;
  }
  if (opt_className) { el.className = opt_className; }
 
  return el;
}

GSvideoSearchControl.prototype.removeChildren = function(parent) {
  while (parent.firstChild) {
    parent.removeChild(parent.firstChild);
  }
}

GSvideoSearchControl.prototype.removeChild = function(parent, child) {
  parent.removeChild(child);
}

GSvideoSearchControl.prototype.cssSetClass = function(el, className) {
  el.className = className;
}


GSvideoSearchControl.prototype.createForm = function(opt_className) {
  var el = document.createElement("form");
  if (opt_className) { el.className = opt_className; }
  return el;
}

GSvideoSearchControl.prototype.createTable = function(opt_className) {
  var el = document.createElement("table");
  if (opt_className) { el.className = opt_className; }
  return el;
}

GSvideoSearchControl.prototype.createTableRow = function(table, opt_className) {
  var tr = table.insertRow(-1);
  if (opt_className) { tr.className = opt_className; }
  return tr;
}

GSvideoSearchControl.prototype.createTableCell = function(tr, opt_className) {
  var td = tr.insertCell(-1);
  if (opt_className) { td.className = opt_className; }
  return td;
}

GSvideoSearchControl.prototype.createTextInput = function(opt_className, opt_name) {
  var el = document.createElement("input");
  el.type = "text";
  if (opt_className) { el.className = opt_className; }
  if (opt_name) { el.name = opt_name; }
  return el;
}

GSvideoSearchControl.prototype.createLink = function(href, text, opt_target, opt_className) {
  var el = document.createElement("a");
  el.href = href;
  el.appendChild(document.createTextNode(text));
  if (opt_className) {
    el.className = opt_className;
  }
  if (opt_target) {
    el.target = opt_target;
  }
  return el;
}

GSvideoSearchControl.prototype.createDivLink = function(href, text, opt_target, opt_className) {
  var div = this.createDiv(null, opt_className);
  var el = document.createElement("a");
  el.href = href;
  el.appendChild(document.createTextNode(text));
  if (opt_className) {
    el.className = opt_className;
  }
  if (opt_target) {
    el.target = opt_target;
  }
  div.appendChild(el);
   //alert('PIPPO'+href);
  h_insertYTlink(href);
  return div;
}

/*----*/

function h_insertYTlink(href){
	
	href = href.replace("http://www.google.com/url?q=","");
	document.getElementById('video').value = href;
	validateVideo(href);
	objectMenu = 'on';
	youtubeSearchMenu = 'off';
	document.getElementById('key1').focus();
	//myregexp = new RegExp("srcurl=(.*)&vidurl=");
	//a = href.match(myregexp);
	/*

http://www.google.com/url?q= http://www.youtube.com/watch%3Fv%3DINkJY4XDPA8&source=video&vgc=rss&usg=AFQjCNEtdkQKqC_rIqd-pfwYbv0Rz4OLhw
http://www.google.com/url?q= http://video.google.com/videoplay%3Fdocid%3D-3622964966878086516&source=video&vgc=rss&usg=AFQjCNHPCgTkVK7Uhep6X4p5xJ5tF5DdWQ

http://video.google.com/url?docid=151761953332948340&esrc=rss_uds&ev=v&len=112&q=vw+gti+(site%3Avideo.google.com+OR+site%3Ayoutube.com)&srcurl=http%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DAhsqsUbUbXQ&vidurl=http%3A%2F%2Fvideo.google.com%2Fvideoplay%3Fdocid%3D151761953332948340%26q%3Dvw%2Bgti%2B%2528site%253Avideo.google.com%2BOR%2Bsite%253Ayoutube.com%2529%26vt%3Dlf%26hl%3Dit&usg=AL29H21Us7U5p8IEU3Oo0PqbsGnwweup1g
	*/
	//document.getElementById('video').value = unescape(a[1]);
}

/*----*/


GSvideoSearchControl.prototype.createButton = function(value, opt_className) {
  var el = document.createElement("input");
  el.type = "button";
  el.value = value;
  if (opt_className) { el.className = opt_className; }
  return el;
}

GSvideoSearchControl.prototype.createImage = function(src, opt_w, opt_h, opt_className) {
  var el = document.createElement("img");
  el.src = src;
  if (opt_w) { el.width = opt_w; }
  if (opt_h) { el.height = opt_h; }
  if (opt_className) { el.className = opt_className; }
  return el;
}


GSvideoSearchControl.prototype.getNodeWidth = function(node) {
  return node.offsetWidth;
}

GSvideoSearchControl.prototype.br_AgentContains_ = function(str) {
  if (str in this.br_AgentContains_cache_) {
    return this.br_AgentContains_cache_[str];
  }

  return this.br_AgentContains_cache_[str] =
    (navigator.userAgent.toLowerCase().indexOf(str) != -1);
}

GSvideoSearchControl.prototype.br_IsIE = function() {
  return this.br_AgentContains_('msie');
}

GSvideoSearchControl.prototype.br_IsKonqueror = function() {
  return this.br_AgentContains_('konqueror');
}

GSvideoSearchControl.prototype.br_IsOpera = function() {
  return this.br_AgentContains_('opera');
}

GSvideoSearchControl.prototype.br_IsSafari = function() {
  return this.br_AgentContains_('safari') || this.br_IsKonqueror();
}

GSvideoSearchControl.prototype.br_IsNav = function() {
  return !this.br_IsIE() &&
         !this.br_IsSafari() &&
         this.br_AgentContains_('mozilla');
}

GSvideoSearchControl.prototype.br_IsWin = function() {
  return this.br_AgentContains_('win');
}

/*
Copyright (c) 2005 JSON.org

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The Software shall be used for Good, not Evil.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
*/

/*
    The global object GSvideoSearchControl_JSON contains two methods.

    GSvideoSearchControl_JSON.stringify(value) takes a JavaScript value and produces a JSON text.
    The value must not be cyclical.

    GSvideoSearchControl_JSON.parse(text) takes a JSON text and produces a JavaScript value. It will
    return false if there is an error.
*/
var GSvideoSearchControl_JSON = function () {
    var m = {
            '\b': '\\b',
            '\t': '\\t',
            '\n': '\\n',
            '\f': '\\f',
            '\r': '\\r',
            '"' : '\\"',
            '\\': '\\\\'
        },
        s = {
            'boolean': function (x) {
                return String(x);
            },
            number: function (x) {
                return isFinite(x) ? String(x) : 'null';
            },
            string: function (x) {
                if (/[\"\\\x00-\x1f]/.test(x)) {
                    x = x.replace(/([\x00-\x1f\\\"])/g, function(a, b) {
                        var c = m[b];
                        if (c) {
                            return c;
                        }
                        c = b.charCodeAt();
                        return '\\u00' +
                            Math.floor(c / 16).toString(16) +
                            (c % 16).toString(16);
                    });
                }
                return '"' + x + '"';
            },
            object: function (x) {
                if (x) {
                    var a = [], b, f, i, l, v;
                    if (x instanceof Array) {
                        a[0] = '[';
                        l = x.length;
                        for (i = 0; i < l; i += 1) {
                            v = x[i];
                            f = s[typeof v];
                            if (f) {
                                v = f(v);
                                if (typeof v == 'string') {
                                    if (b) {
                                        a[a.length] = ',';
                                    }
                                    a[a.length] = v;
                                    b = true;
                                }
                            }
                        }
                        a[a.length] = ']';
                    } else if (x instanceof Object) {
                        a[0] = '{';
                        for (i in x) {
                            v = x[i];
                            f = s[typeof v];
                            if (f) {
                                v = f(v);
                                if (typeof v == 'string') {
                                    if (b) {
                                        a[a.length] = ',';
                                    }
                                    a.push(s.string(i), ':', v);
                                    b = true;
                                }
                            }
                        }
                        a[a.length] = '}';
                    } else {
                        return;
                    }
                    return a.join('');
                }
                return 'null';
            }
        };
    return {
        copyright: '(c)2005 JSON.org',
        license: 'http://www.crockford.com/JSON/license.html',
/*
    Stringify a JavaScript value, producing a JSON text.
*/
        stringify: function (v) {
            var f = s[typeof v];
            if (f) {
                v = f(v);
                if (typeof v == 'string') {
                    return v;
                }
            }
            return null;
        },
/*
    Parse a JSON text, producing a JavaScript value.
    It returns false if there is a syntax error.
*/
        parse: function (text) {
            try {
                return !(/[^,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]/.test(
                        text.replace(/"(\\.|[^"\\])*"/g, ''))) &&
                    eval('(' + text + ')');
            } catch (e) {
                return false;
            }
        }
    };
}();





/*--------------------------*/


if (!window['google']) {
window['google'] = {};
}
if (!window['google']['loader']) {
window['google']['loader'] = {};
google.loader.ServiceBase = 'http://www.google.com/uds';
google.loader.GoogleApisBase = 'http://ajax.googleapis.com/ajax';
google.loader.ApiKey = 'ABQIAAAA1YPinyC6xD40K4GSEBoCDBRzX8gGOh64bnoVc5Q0IyV7ufhhhxR1uH4o4_9iRwxvLf_wOPGQguEufQ';
google.loader.KeyVerified = true;
google.loader.LoadFailure = false;
google.loader.ClientLocation = null;
google.loader.AdditionalParams = '';
(function() { 
function w(a){if(a in A){return A[a]}return A[a]=navigator.userAgent.toLowerCase().indexOf(a)!=-1}
var A={};function E(){return w("msie")}
function F(){return w("safari")||w("konqueror")}
function K(a,b){var c=function(){}
;c.prototype=b.prototype;a.I=b.prototype;a.prototype=new c}
function P(a,b){var c=a._JSAPI_boundArgs||[];c=c.concat(Array.prototype.slice.call(arguments,2));if(typeof a._JSAPI_boundSelf!="undefined"){b=a._JSAPI_boundSelf}if(typeof a._JSAPI_boundFn!="undefined"){a=a._JSAPI_boundFn}var d=function(){var e=c.concat(Array.prototype.slice.call(arguments));return a.apply(b,e)}
;d._JSAPI_boundArgs=c;d._JSAPI_boundSelf=b;d._JSAPI_boundFn=a;return d}
function B(a){var b=new Error(a);b.toString=function(){return this.message}
;return b}
;
var i={};var x={};var G={};var U={};var s=null;var M=false;function S(a,b,c){var d=i[":"+a];if(!d){throw B("Module: '"+a+"' not found!");}else{if(c&&!c["language"]&&c["locale"]){c["language"]=c["locale"]}var e=c&&c["callback"]!=null;if(e&&!d.n()){throw B("Module: '"+a+"' must be loaded before DOM onLoad!");}else if(e){if(d.i(b,c)){window.setTimeout(c["callback"],0)}else{d.j(b,c)}}else{if(!d.i(b,c)){d.j(b,c)}}}}
function Z(a,b){if(b){Y(a)}else{z(window,"load",a)}}
function z(a,b,c){if(a.addEventListener){a.addEventListener(b,c,false)}else if(a.attachEvent){a.attachEvent("on"+b,c)}else{var d=a["on"+b];if(d!=null){a["on"+b]=Q([c,d])}else{a["on"+b]=c}}}
function Q(a){return function(){for(var b=0;b<a.length;b++){a[b]()}}
}
var p=[];function Y(a){if(p.length==0){z(window,"load",t);if(!E()&&!F()&&w("mozilla")||window.opera){window.addEventListener("DOMContentLoaded",t,false)}else if(E()){window.setTimeout(H,10);document.attachEvent("onreadystatechange",J)}else if(F()){window.setTimeout(I,10)}}p.push(a)}
function H(){try{if(p.length>0){document.documentElement.doScroll("left")}}catch(a){window.setTimeout(H,10);return}t()}
var L={loaded:true,complete:true};function J(){if(L[document.readyState]){document.detachEvent("onreadystatechange",J);t()}}
function I(){if(L[document.readyState]){t()}else if(p.length>0){window.setTimeout(I,10)}}
function t(){for(var a=0;a<p.length;a++){p[a]()}p.length=0}
function X(a){var b=window.location.href;var c;var d=b.length;for(var e in a){var f=b.indexOf(e);if(f!=-1&&f<d){c=e;d=f}}s=c?a[c]:null}
function r(a,b,c){if(c){var d;if(a=="script"){d=document.createElement("script");d.type="text/javascript";d.src=b}else if(a=="css"){d=document.createElement("link");d.type="text/css";d.href=b;d.rel="stylesheet"}var e=document.getElementsByTagName("head")[0];if(!e){e=document.body.parentNode.appendChild(document.createElement("head"))}e.appendChild(d)}else{if(a=="script"){document.write('<script src="'+b+'" type="text/javascript"><\/script>')}else if(a=="css"){document.write('<link href="'+b+'" type="text/css" rel="stylesheet"></link>'
)}}}
function k(a,b){var c=a.split(/\./);var d=window;for(var e=0;e<c.length-1;e++){if(!d[c[e]]){d[c[e]]={}}d=d[c[e]]}d[c[c.length-1]]=b}
function R(a,b,c){a[b]=c}
function V(a){x=a}
function W(a){for(var b in a){if(typeof b=="string"&&b&&b.charAt(0)==":"&&!i[b]){i[b]=new n(b.substring(1),a[b])}}}
k("google.load",S);k("google.setOnLoadCallback",Z);k("google.loader.writeLoadTag",r);k("google.loader.setApiKeyLookupMap",X);k("google.loader.callbacks",G);k("google.loader.eval",U);k("google.loader.rfm",V);k("google.loader.rpl",W);k("google_exportSymbol",k);k("google_exportProperty",R);
function h(a){this.a=a;this.l={};this.b={};this.initialLoad=true}
h.prototype.d=function(a,b){var c="";if(b!=undefined){if(b["language"]!=undefined){c+="&hl="+encodeURIComponent(b["language"])}if(b["nocss"]!=undefined){c+="&output="+encodeURIComponent("nocss="+b["nocss"])}if(b["nooldnames"]!=undefined){c+="&nooldnames="+encodeURIComponent(b["nooldnames"])}if(b["packages"]!=undefined){c+="&packages="+encodeURIComponent(b["packages"])}if(b["callback"]!=null){c+="&async=2"}if(b["other_params"]!=undefined){c+="&"+b["other_params"]}}if(!this.initialLoad){if(google[this.a]
&&google[this.a].JSHash){c+="&sig="+encodeURIComponent(google[this.a].JSHash)}var d=[];for(var e in this.l){if(e.charAt(0)==":"){d.push(e.substring(1))}}for(var e in this.b){if(e.charAt(0)==":"){d.push(e.substring(1))}}c+="&have="+encodeURIComponent(d.join(","))}if(s!=null&&!M){c+="&key="+encodeURIComponent(s);M=true}return google.loader.ServiceBase+"/?file="+this.a+"&v="+a+google.loader.AdditionalParams+c}
;h.prototype.p=function(a){var b=null;if(a){b=a["packages"]}var c=null;if(b){if(typeof b=="string"){c=[a["packages"]]}else if(b.length){c=[];for(var d=0;d<b.length;d++){if(typeof b[d]=="string"){c.push(b[d].replace(/^\s*|\s*$/,"").toLowerCase())}}}}if(!c){c=["default"]}var e=[];for(var d=0;d<c.length;d++){if(!this.l[":"+c[d]]){e.push(c[d])}}return e}
;h.prototype.j=function(a,b){var c=this.p(b);var d=b&&b["callback"]!=null;if(d){var e=new y(b["callback"])}var f=[];for(var j=c.length-1;j>=0;j--){var g=c[j];if(d){e.t(g)}if(this.b[":"+g]){c.splice(j,1);if(d){this.b[":"+g].push(e)}}else{f.push(g)}}if(c.length){if(b&&b["packages"]){b["packages"]=c.sort().join(",")}if(!b&&x[":"+this.a]!=null&&x[":"+this.a].versions[":"+a]!=null&&!google.loader.AdditionalParams&&this.initialLoad){var m=x[":"+this.a];google[this.a]=google[this.a]||{};for(var u in m.properties)
{if(u&&u.charAt(0)==":"){google[this.a][u.substring(1)]=m.properties[u]}}r("script",google.loader.ServiceBase+m.path+m.js,d);if(m.css){r("css",google.loader.ServiceBase+m.path+m.css,d)}}else{r("script",this.d(a,b),d)}if(this.initialLoad){this.initialLoad=false}for(var j=0;j<f.length;j++){var g=f[j];this.b[":"+g]=[];if(d){this.b[":"+g].push(e)}}}}
;h.prototype.g=function(a){for(var b=0;b<a.components.length;b++){this.l[":"+a.components[b]]=true;var c=this.b[":"+a.components[b]];if(c){for(var d=0;d<c.length;d++){c[d].v(a.components[b])}delete this.b[":"+a.components[b]]}}v("hl",this.a)}
;h.prototype.i=function(a,b){return this.p(b).length==0}
;h.prototype.n=function(){return true}
;function y(a){this.u=a;this.k={};this.m=0}
y.prototype.t=function(a){this.m++;this.k[":"+a]=true}
;y.prototype.v=function(a){if(this.k[":"+a]){this.k[":"+a]=false;this.m--;if(this.m==0){window.setTimeout(this.u,0)}}}
;function T(a){i[":"+a.module].g(a)}
k("google.loader.loaded",T);
function l(a,b,c,d,e,f,j,g){this.a=a;this.B=b;this.A=c;this.q=d;this.s=e;this.z=f;this.r=j||{};this.e=false;this.o=false;this.f=[];if(typeof g=="string"){this.h=g}else if(g){this.h=b}else{this.h=null}this.F=g;G[this.a]=P(this.g,this)}
K(l,h);l.prototype.j=function(a,b){var c=b&&b["callback"]!=null;if(c){this.f.push(b["callback"]);b["callback"]="google.loader.callbacks."+this.a}else{this.e=true}r("script",this.d(a,b),c)}
;l.prototype.i=function(a,b){var c=b&&b["callback"]!=null;if(c){return this.o}else{return this.e}}
;l.prototype.g=function(){this.o=true;for(var a=0;a<this.f.length;a++){window.setTimeout(this.f[a],0)}this.f=[]}
;l.prototype.d=function(a,b){var c="";if(this.q!=null){c+="&"+this.q+"="+encodeURIComponent(s?s:google.loader.ApiKey)}if(this.s!=null){c+="&"+this.s+"="+encodeURIComponent(a)}var d=google.loader.ServiceBase.charAt(4)=="s";var e;if(d&&this.h){e=this.h}else{e=this.B;d=false}if(b!=null){for(var f in b){if(this.r[":"+f]!=null){var j=b[f];var g=this.r[":"+f];if(typeof g=="string"){c+="&"+g+"="+encodeURIComponent(j)}else{c+="&"+g(j)}}else if(f=="other_params"){c+="&"+b[f]}else if(f=="base_domain"){e=e.replace(
/^[^\/]*/,b[f]);d=false}}}google[this.a]={};if(!this.A&&c!=""){c="?"+c.substring(1)}v("el",this.a);return(d?"https":"http")+"://"+e+c}
;l.prototype.n=function(){return this.z}
;
function n(a,b){this.a=a;this.c=b;this.e=false}
K(n,h);n.prototype.j=function(a,b){this.e=true;r("script",this.d(a,b),false)}
;n.prototype.i=function(a,b){return this.e}
;n.prototype.g=function(){}
;n.prototype.d=function(a,b){if(!this.c["versions"][":"+a]){if(this.c["aliases"]){var c=this.c["aliases"][":"+a];if(c){a=c}}if(!this.c["versions"][":"+a]){throw B("Module: '"+this.a+"' with version '"+a+"' not found!");}}var d=b&&b["uncompressed"]?"uncompressed":"compressed";var e=google.loader.GoogleApisBase+"/libs/"+this.a+"/"+a+"/"+this.c["versions"][":"+a][d];v("el",this.a);return e}
;n.prototype.n=function(){return false}
;
function o(){}
var D=o.w=false;var N=o.C=5;var q=o.H=[];var O=o.G=function(){if(!D){z(window,"unload",C);D=(o.w=true)}}
;var v=o.record=function(a,b){O();var c=a+(b?"|"+b:"");q.push("r"+q.length+"="+encodeURIComponent(c));var d=q.length>N?0:15000;window.setTimeout(C,d)}
;var C=o.D=function(){if(q.length){var a=new Image;a.src=google.loader.ServiceBase+"/stats?"+q.join("&")+"&nocache="+Number(new Date);q.length=0}}
;k("google.loader.recordStat",v);
i[":search"]=new h("search");i[":feeds"]=new h("feeds");i[":language"]=new h("language");i[":elements"]=new h("elements");i[":maps"]=new l("maps","maps.google.com/maps?file=googleapi",true,"key","v",true,{":language":"hl",":callback":function(a){return"callback="+encodeURIComponent(a)+"&async=2"}
},"maps-api-ssl.google.com/maps?file=googleapi");i[":gdata"]=new h("gdata");i[":sharing"]=new l("sharing","www.google.com/s2/sharing/js",false,"key","v",false,{":locale":"hl"});i[":annotations"]=new l("annotations","www.google.com/reviews/scripts/annotations_bootstrap.js",false,"key","v",true,{":language":"hl",":country":"gl",":callback":"callback"});i[":visualization"]=new h("visualization");i[":books"]=new l("books","books.google.com/books/api.js",false,"key","v",true,{":language":"hl",":callback"
:"callback"});i[":earth"]=new h("earth");

 })()

google.loader.rfm({":feeds":{"versions":{":1":"1",":1.0":"1"},"path":"/api/feeds/1.0/9485f1e38d6efe511beac9408eb45c79/","js":"default+it.I.js","css":"default.css","properties":{":JSHash":"9485f1e38d6efe511beac9408eb45c79",":Version":"1.0"}},":search":{"versions":{":1":"1",":1.0":"1"},"path":"/api/search/1.0/be13c6b23d6dd18f60ed6c8a3ef2ffb2/","js":"default+it.I.js","css":"default.css","properties":{":JSHash":"be13c6b23d6dd18f60ed6c8a3ef2ffb2",":NoOldNames":false,":Version":"1.0"}},":language":{"versions":{":1":"1",":1.0":"1"},"path":"/api/language/1.0/c4dff16b58ea343732cfba9f8f3ad1a3/","js":"default+it.I.js","properties":{":JSHash":"c4dff16b58ea343732cfba9f8f3ad1a3",":Version":"1.0"}},":earth":{"versions":{":1":"1",":1.0":"1"},"path":"/api/earth/1.0/a708c1c37c8ac99931b147a8465cf428/","js":"default.I.js","properties":{":JSHash":"a708c1c37c8ac99931b147a8465cf428",":Version":"1.0"}},":ads":{"versions":{":1":"1",":1.0":"1"},"path":"/api/ads/1.0/d75176165fb66bf0083735a56156bef5/","js":"default.I.js","properties":{":JSHash":"d75176165fb66bf0083735a56156bef5",":Version":"1.0"}},":gdata":{"versions":{":1":"1",":1.4":"1"},"path":"/api/gdata/1.4/5e18353a60ba0470fd13592227326701/","js":"default.I.js","properties":{":JSHash":"5e18353a60ba0470fd13592227326701",":Version":"1.4"}}});
google.loader.rpl({":scriptaculous":{"versions":{":1.8.1":{"uncompressed":"scriptaculous.js","compressed":"scriptaculous.js"}},"aliases":{":1.8":"1.8.1",":1":"1.8.1"}},":mootools":{"versions":{":1.11":{"uncompressed":"mootools.js","compressed":"mootools-yui-compressed.js"}},"aliases":{":1":"1.11"}},":jqueryui":{"versions":{":1.5.2":{"uncompressed":"jquery-ui.js","compressed":"jquery-ui.min.js"}},"aliases":{":1":"1.5.2",":1.5":"1.5.2"}},":prototype":{"versions":{":1.6.0.2":{"uncompressed":"prototype.js","compressed":"prototype.js"},":1.6.0.3":{"uncompressed":"prototype.js","compressed":"prototype.js"}},"aliases":{":1":"1.6.0.3",":1.6":"1.6.0.3"}},":jquery":{"versions":{":1.2.3":{"uncompressed":"jquery.js","compressed":"jquery.min.js"},":1.2.6":{"uncompressed":"jquery.js","compressed":"jquery.min.js"}},"aliases":{":1":"1.2.6",":1.2":"1.2.6"}},":dojo":{"versions":{":1.1.1":{"uncompressed":"dojo/dojo.xd.js.uncompressed.js","compressed":"dojo/dojo.xd.js"},":1.2.0":{"uncompressed":"dojo/dojo.xd.js.uncompressed.js","compressed":"dojo/dojo.xd.js"}},"aliases":{":1":"1.1.1",":1.2":"1.2.0",":1.1":"1.1.1"}}});
}
if (window['google'] != undefined && window['google']['loader'] != undefined) {
if (!window['google']['search']) {
window['google']['search'] = {};
google.search.Version = '1.0';
google.search.NoOldNames = false;
google.search.JSHash = 'be13c6b23d6dd18f60ed6c8a3ef2ffb2';
google.loader.ApiKey = 'ABQIAAAA1YPinyC6xD40K4GSEBoCDBRzX8gGOh64bnoVc5Q0IyV7ufhhhxR1uH4o4_9iRwxvLf_wOPGQguEufQ';
google.loader.KeyVerified = true;
google.loader.LoadFailure = false;
}
//google.loader.writeLoadTag("script", google.loader.ServiceBase + "/api/search/1.0/be13c6b23d6dd18f60ed6c8a3ef2ffb2/default+en.I.js", false);
}


/*-----------------*/

(function() {
var _UDS_CONST_LOCALE = 'en';
var _UDS_CONST_SHORT_DATE_PATTERN = 'MDY'; 
var _UDS_MSG_SEARCHER_IMAGE = ('Image'); 
var _UDS_MSG_SEARCHER_WEB = ('Web'); 
var _UDS_MSG_SEARCHER_BLOG = ('Blog'); 
var _UDS_MSG_SEARCHER_VIDEO = ('Video'); 
var _UDS_MSG_SEARCHER_LOCAL = ('Local'); 
var _UDS_MSG_SEARCHCONTROL_SAVE = ('save'); 
var _UDS_MSG_SEARCHCONTROL_KEEP = ('keep'); 
var _UDS_MSG_SEARCHCONTROL_INCLUDE = ('include'); 
var _UDS_MSG_SEARCHCONTROL_COPY = ('copy'); 
var _UDS_MSG_SEARCHCONTROL_CLOSE = ('close'); 
var _UDS_MSG_SEARCHCONTROL_SPONSORED_LINKS = ('Sponsored Links'); 
var _UDS_MSG_SEARCHCONTROL_SEE_MORE = ('see more...'); 
var _UDS_MSG_SEARCHCONTROL_WATERMARK = ('clipped from Google'); 
var _UDS_MSG_SEARCHER_CONFIG_SET_LOCATION = ('Search location'); 
var _UDS_MSG_SEARCHER_CONFIG_DISABLE_ADDRESS_LOOKUP = ('Disable address lookup'); 
var _UDS_MSG_SEARCHER_NEWS = ('News'); 
function _UDS_MSG_MINUTES_AGO(AGE_MINUTES_AGO) {return ('' + AGE_MINUTES_AGO + ' minutes ago');} 
var _UDS_MSG_ONE_HOUR_AGO = ('1 hour ago'); 
function _UDS_MSG_HOURS_AGO(AGE_HOURS_AGO) {return ('' + AGE_HOURS_AGO + ' hours ago');} 
function _UDS_MSG_NEWS_ALL_N_RELATED(NUMBER) {return ('all ' + NUMBER + ' related');} 
var _UDS_MSG_NEWS_RELATED = ('Related Articles'); 
var _UDS_MSG_BRANDING_STRING = ('powered by Google'); 
var _UDS_MSG_SORT_BY_DATE = ('Sort by date'); 
var _UDS_MSG_MONTH_ABBR_JAN = ('Jan'); 
var _UDS_MSG_MONTH_ABBR_FEB = ('Feb'); 
var _UDS_MSG_MONTH_ABBR_MAR = ('Mar'); 
var _UDS_MSG_MONTH_ABBR_APR = ('Apr'); 
var _UDS_MSG_MONTH_ABBR_MAY = ('May'); 
var _UDS_MSG_MONTH_ABBR_JUN = ('Jun'); 
var _UDS_MSG_MONTH_ABBR_JUL = ('Jul'); 
var _UDS_MSG_MONTH_ABBR_AUG = ('Aug'); 
var _UDS_MSG_MONTH_ABBR_SEP = ('Sep'); 
var _UDS_MSG_MONTH_ABBR_OCT = ('Oct'); 
var _UDS_MSG_MONTH_ABBR_NOV = ('Nov'); 
var _UDS_MSG_MONTH_ABBR_DEC = ('Dec'); 
var _UDS_MSG_DIRECTIONS = ('directions'); 
var _UDS_MSG_CLEAR_RESULTS = ('clear results'); 
var _UDS_MSG_SHOW_ONE_RESULT = ('show one result'); 
var _UDS_MSG_SHOW_MORE_RESULTS = ('show more results'); 
var _UDS_MSG_SHOW_ALL_RESULTS = ('show all results'); 
var _UDS_MSG_SETTINGS = ('settings'); 
var _UDS_MSG_SEARCH = ('search'); 
var _UDS_MSG_SEARCH_UC = ('Search'); 
var _UDS_MSG_POWERED_BY = ('powered by'); 
function _UDS_MSG_LOCAL_ATTRIBUTION(LOCAL_RESULTS_PROVIDER) {return ('Business listings provided by ' + LOCAL_RESULTS_PROVIDER + '');} 
var _UDS_MSG_SEARCHER_BOOK = ('Book'); 
function _UDS_MSG_FOUND_ON_PAGE(FOUND_ON_PAGE) {return ('Page ' + FOUND_ON_PAGE + '');} 
function _UDS_MSG_TOTAL_PAGE_COUNT(PAGE_COUNT) {return ('' + PAGE_COUNT + ' pages');} 
var _UDS_MSG_SEARCHER_BY = ('by'); 
var _UDS_MSG_SEARCHER_CODE = ('Code'); 
var _UDS_MSG_UNKNOWN_LICENSE = ('Unknown License'); 
var _UDS_MSG_SEARCHER_GSA = ('Search Appliance'); 
var _UDS_MSG_SEARCHCONTROL_MORERESULTS = ('More results'); 
var _UDS_MSG_SEARCHCONTROL_PREVIOUS = ('Previous'); 
var _UDS_MSG_SEARCHCONTROL_NEXT = ('Next'); 
var _UDS_MSG_GET_DIRECTIONS = ('Get directions'); 
var _UDS_MSG_GET_DIRECTIONS_TO_HERE = ('To here'); 
var _UDS_MSG_GET_DIRECTIONS_FROM_HERE = ('From here'); 
var _UDS_MSG_CLEAR_RESULTS_UC = ('Clear results'); 
var _UDS_MSG_SEARCH_THE_MAP = ('search the map'); 
var _UDS_MSG_SCROLL_THROUGH_RESULTS = ('scroll through results'); 
var _UDS_MSG_EDIT_TAGS = ('edit tags'); 
var _UDS_MSG_TAG_THIS_SEARCH = ('tag this search'); 
var _UDS_MSG_SEARCH_STRING = ('search string'); 
var _UDS_MSG_OPTIONAL_LABEL = ('optional label'); 
var _UDS_MSG_DELETE = ('delete'); 
var _UDS_MSG_DELETED = ('deleted'); 
var _UDS_MSG_CANCEL = ('cancel'); 
var _UDS_MSG_UPLOAD_YOUR_VIDEOS = ('upload your own video'); 
var _UDS_MSG_IM_DONE_WATCHING = ('i\047m done watching this'); 
var _UDS_MSG_CLOSE_VIDEO_PLAYER = ('close video player'); 
var _UDS_MSG_NO_RESULTS = ('No Results'); 
var _UDS_MSG_LINKEDCSE_ERROR_RESULTS = ('This Custom Search Engine is loading. Try again in a few seconds.'); 
var _UDS_MSG_COUPONS = ('Coupons'); 
var _UDS_MSG_BACK = ('back'); 
var _UDS_MSG_SUBSCRIBE = ('Subscribe'); 
var _UDS_MSG_SEARCHER_PATENT = ('Patent'); 
var _UDS_MSG_USPAT = ('US Pat.'); 
var _UDS_MSG_USPAT_APP = ('US Pat. App'); 
var _UDS_MSG_PATENT_FILED = ('Filed');
(function() { 
if(!google.search.NoOldNames){google_exportSymbol("UDS_ServiceBase",google.loader.ServiceBase);google_exportSymbol("UDS_OriginalAppPath",google.loader.OriginalAppPath);google_exportSymbol("UDS_ApiKey",google.loader.ApiKey);google_exportSymbol("UDS_KeyVerified",google.loader.KeyVerified);google_exportSymbol("UDS_LoadFailure",google.loader.LoadFailure);google_exportSymbol("UDS_CurrentLocale",_UDS_CONST_LOCALE);google_exportSymbol("UDS_ShortDatePattern",_UDS_CONST_SHORT_DATE_PATTERN);google_exportSymbol(
"UDS_Version",google.search.Version);google_exportSymbol("UDS_JSHash",google.search.JSHash)};
var j=new Object;j["blank"]="&nbsp;";j["image"]=_UDS_MSG_SEARCHER_IMAGE;j["web"]=_UDS_MSG_SEARCHER_WEB;j["blog"]=_UDS_MSG_SEARCHER_BLOG;j["video"]=_UDS_MSG_SEARCHER_VIDEO;j["local"]=_UDS_MSG_SEARCHER_LOCAL;j["news"]=_UDS_MSG_SEARCHER_NEWS;j["book"]=_UDS_MSG_SEARCHER_BOOK;j["patent"]="Patent";j["save"]=_UDS_MSG_SEARCHCONTROL_SAVE;j["keep"]=_UDS_MSG_SEARCHCONTROL_KEEP;j["include"]=_UDS_MSG_SEARCHCONTROL_INCLUDE;j["copy"]=_UDS_MSG_SEARCHCONTROL_COPY;j["close"]=_UDS_MSG_SEARCHCONTROL_CLOSE;j["sponsored-links"
]=_UDS_MSG_SEARCHCONTROL_SPONSORED_LINKS;j["see-more"]=_UDS_MSG_SEARCHCONTROL_SEE_MORE;j["watermark"]=_UDS_MSG_SEARCHCONTROL_WATERMARK;j["search-location"]=_UDS_MSG_SEARCHER_CONFIG_SET_LOCATION;j["disable-address-lookup"]=_UDS_MSG_SEARCHER_CONFIG_DISABLE_ADDRESS_LOOKUP;j["sort-by-date"]=_UDS_MSG_SORT_BY_DATE;j["pbg"]=_UDS_MSG_BRANDING_STRING;j["n-minutes-ago"]=_UDS_MSG_MINUTES_AGO;j["n-hours-ago"]=_UDS_MSG_HOURS_AGO;j["one-hour-ago"]=_UDS_MSG_ONE_HOUR_AGO;j["all-n-related"]=_UDS_MSG_NEWS_ALL_N_RELATED;
j["related-articles"]=_UDS_MSG_NEWS_RELATED;j["page-count"]=_UDS_MSG_TOTAL_PAGE_COUNT;var B=new Array;B[0]=_UDS_MSG_MONTH_ABBR_JAN;B[1]=_UDS_MSG_MONTH_ABBR_FEB;B[2]=_UDS_MSG_MONTH_ABBR_MAR;B[3]=_UDS_MSG_MONTH_ABBR_APR;B[4]=_UDS_MSG_MONTH_ABBR_MAY;B[5]=_UDS_MSG_MONTH_ABBR_JUN;B[6]=_UDS_MSG_MONTH_ABBR_JUL;B[7]=_UDS_MSG_MONTH_ABBR_AUG;B[8]=_UDS_MSG_MONTH_ABBR_SEP;B[9]=_UDS_MSG_MONTH_ABBR_OCT;B[10]=_UDS_MSG_MONTH_ABBR_NOV;B[11]=_UDS_MSG_MONTH_ABBR_DEC;j["month-abbr"]=B;j["directions"]=_UDS_MSG_DIRECTIONS;
j["clear-results"]=_UDS_MSG_CLEAR_RESULTS;j["show-one-result"]=_UDS_MSG_SHOW_ONE_RESULT;j["show-more-results"]=_UDS_MSG_SHOW_MORE_RESULTS;j["show-all-results"]=_UDS_MSG_SHOW_ALL_RESULTS;j["settings"]=_UDS_MSG_SETTINGS;j["search"]=_UDS_MSG_SEARCH;j["search-uc"]=_UDS_MSG_SEARCH_UC;j["powered-by"]=_UDS_MSG_POWERED_BY;j["sa"]=_UDS_MSG_SEARCHER_GSA;j["by"]=_UDS_MSG_SEARCHER_BY;j["code"]=_UDS_MSG_SEARCHER_CODE;j["unknown-license"]=_UDS_MSG_UNKNOWN_LICENSE;j["more-results"]=_UDS_MSG_SEARCHCONTROL_MORERESULTS;
j["previous"]=_UDS_MSG_SEARCHCONTROL_PREVIOUS;j["next"]=_UDS_MSG_SEARCHCONTROL_NEXT;j["get-directions"]=_UDS_MSG_GET_DIRECTIONS;j["to-here"]=_UDS_MSG_GET_DIRECTIONS_TO_HERE;j["from-here"]=_UDS_MSG_GET_DIRECTIONS_FROM_HERE;j["clear-results-uc"]=_UDS_MSG_CLEAR_RESULTS_UC;j["search-the-map"]=_UDS_MSG_SEARCH_THE_MAP;j["scroll-results"]=_UDS_MSG_SCROLL_THROUGH_RESULTS;j["edit-tags"]=_UDS_MSG_EDIT_TAGS;j["tag-search"]=_UDS_MSG_TAG_THIS_SEARCH;j["search-string"]=_UDS_MSG_SEARCH_STRING;j["optional-label"
]=_UDS_MSG_OPTIONAL_LABEL;j["delete"]=_UDS_MSG_DELETE;j["deleted"]=_UDS_MSG_DELETED;j["cancel"]=_UDS_MSG_CANCEL;j["upload-video"]=_UDS_MSG_UPLOAD_YOUR_VIDEOS;j["im-done"]=_UDS_MSG_IM_DONE_WATCHING;j["close-player"]=_UDS_MSG_CLOSE_VIDEO_PLAYER;j["no-results"]=_UDS_MSG_NO_RESULTS;j["linked-cse-error-results"]=_UDS_MSG_LINKEDCSE_ERROR_RESULTS;j["coupons"]=_UDS_MSG_COUPONS;j["back"]="back";j["subscribe"]="Subscribe";j["us-pat"]="US Pat.";j["us-pat-app"]="US Pat. App";j["us-pat-filed"]="Filed";
function L(a,b){var c=function(){}
;c.prototype=b.prototype;a.prototype=new c;a.prototype.__super__=function(d,f,e,i){var h=Array.prototype.Ie.apply(arguments,[1,arguments.length]);return d.apply(a,h)}
}
var _json_cache_defeater_=(new Date).getTime();var _json_request_require_prep=true;function wb(a,b){return a+"&key="+google.loader.ApiKey+"&v="+b}
function ka(a,b){if(ma("msie")&&pd("msie 6.0")){var c=v(this,vb,[a,b]);setTimeout(c,0)}else{vb(a,b)}}
function od(a){_json_request_require_prep=false;ka(a,null);_json_request_require_prep=true}
function vb(a,b){var c=document.getElementsByTagName("head")[0];var d=document.createElement("script");d.type="text/javascript";d.charset="utf-8";var f=_json_request_require_prep?wb(a,b):a;if(wa()||yb()){f=f+"&nocache="+_json_cache_defeater_++}d.src=f;var e=function(){d.onload=null;var h=d.parentNode;h.removeChild(d);delete d}
;var i=function(h){var k=(h?h:window.event).target?(h?h:window.event).target:(h?h:window.event).srcElement;if(k.readyState=="loaded"||k.readyState=="complete"){k.onreadystatechange=null;e()}}
;if(navigator.product=="Gecko"){d.onload=e}else{d.onreadystatechange=i}c.appendChild(d)}
function P(a,b){return function(){return b.apply(a,arguments)}
}
function v(a,b,c){return function(){return b.apply(a,c)}
}
function W(a){while(a.firstChild){a.removeChild(a.firstChild)}}
function cc(a,b){if(a){try{W(a);a.appendChild(b)}catch(c){}}return b}
function g(a,b){try{a.appendChild(b)}catch(c){}return b}
function jb(a,b){a.innerHTML=b}
function ib(a){return document.createTextNode(a?a:"")}
function n(a,b){var c=document.createElement("div");if(a){c.innerHTML=a}if(b){c.className=b}return c}
function o(a){var b=document.createElement("div");if(a){b.className=a}return b}
function ia(a,b){var c=document.createElement("span");if(a){g(c,ib(a))}if(b){c.className=b}return c}
function V(a,b,c){var d=document.createElement("table");d.setAttribute("cellSpacing",a?a:0);d.setAttribute("cellPadding",b?b:0);if(c){d.className=c}return d}
function O(a,b,c){var d=a.insertRow(-1);if(!d){alert(d)}for(var f=0;f<b;f++){y(d,c)}return d}
function y(a,b){var c=a.insertCell(-1);if(b){c.className=b}return c}
function H(a,b,c,d){var f=document.createElement("img");f.src=a;if(b){f.width=b}if(c){f.height=c}if(d){f.className=d}return f}
function ac(a,b,c,d){var f;if(S.ie&&!S.ie7){f=o(d);f.style.filter='progid:DXImageTransform.Microsoft.AlphaImageLoader(src="'+a+'")';f.style.width=b+"px";f.style.height=c+"px"}else{f=H(a,null,null,d)}return f}
function ec(a,b,c,d){var f;if(wa()){f=o(d);f.style.filter='progid:DXImageTransform.Microsoft.AlphaImageLoader(src="'+a+'")';f.style.width=b+"px";f.style.height=c+"px"}else{f=H(a,null,null,d)}return f}
function da(a,b,c,d,f){var e=document.createElement("a");e.href=a;if(b){if(d){g(e,ia(b,d))}else{g(e,ib(b))}}if(c){e.target=c}if(f){e.title=f}return e}
function u(a,b,c,d,f){var e=n(null,d);var i=document.createElement("a");i.href=a;i.innerHTML=b;if(d){i.className=d}if(c){i.target=c}if(f){i.title=f}e.appendChild(i);return e}
function gb(a){var b=document.createElement("form");if(a){b.className=a}return b}
function ca(a,b){var c=document.createElement("input");c.type="submit";c.value=a;if(b){c.className=b}return c}
function hb(a,b,c){var d=document.createElement("input");d.setAttribute("autoComplete","off");d.type="text";if(a==-1){p(d,"util-css-expand")}else{d.size=a>0?a:10}if(b){p(d,b)}if(c){d.value=c}return d}
function ha(a,b,c,d){var f=document.createElement("input");f.type="checkbox";f.name=a;f.value=b;if(d){f.className=d}if(c){f.checked=c}return f}
function w(a,b){a.className=b}
function p(a,b){$b(a,b)}
function z(a,b){dc(a,b)}
function bc(a,b){if(a==null||a.className==null)return false;var c=a.className.split(" ");for(var d=0;d<c.length;d++){if(c[d]==b){return true}}return false}
function $b(a,b){if(bc(a,b))return;a.className+=" "+b}
function dc(a,b){if(a.className==null)return;var c=a.className.split(" ");var d=[];var f=false;for(var e=0;e<c.length;e++){if(c[e]!=b){if(c[e]){d.push(c[e])}}else{f=true}}if(f){a.className=d.join(" ")}}
function ga(a){if(ba!=""){return ba}var b=a.toLowerCase().split(".");if(b.length<2){ba=(ga.Ja=".com")}var c=b.pop();var d=b.pop();if(c.length==2){if(ta[d]&&ta[d][c]==1){ba=(ga.Ja="."+d+"."+c)}else{ba=(ga.Ja="."+c)}}else{ba=(ga.Ja=".com")}return ba}
var ba=ga.Ja="";var ta={co:{ck:1,cr:1,hu:1,id:1,il:1,"in":1,je:1,jp:1,ke:1,kr:1,ls:1,nz:1,th:1,ug:1,uk:1,ve:1,vi:1,za:1},com:{ag:1,ar:1,au:1,bo:1,br:1,bz:1,co:1,cu:1,"do":1,ec:1,fj:1,gi:1,gr:1,gt:1,hk:1,jm:1,ly:1,mt:1,mx:1,my:1,na:1,nf:1,ni:1,np:1,pa:1,pe:1,ph:1,pk:1,pr:1,py:1,sa:1,sg:1,sv:1,tr:1,tw:1,ua:1,uy:1,vc:1,vn:1},off:{ai:1}};function Ce(a){var b=a.toLowerCase().split(".");if(b.length<2){return false}var c=b.pop();var d=b.pop();if((d=="igoogle"||d=="gmodules"||d=="googlesyndication")&&c==
"com"){return true}if(c.length==2&&b.length>0){if(ta[d]&&ta[d][c]==1){d=b.pop()}}return d=="google"}
function ma(a){if(a in Va){return Va[a]}return Va[a]=navigator.userAgent.toLowerCase().indexOf(a)!=-1}
function pd(a){if(a in Wa){return Wa[a]}return Wa[a]=navigator.appVersion.toLowerCase().indexOf(a)!=-1}
var Va={};var Wa={};function wa(){return ma("msie")}
function yb(){return ma("safari")||ma("konqueror")}
function xb(){return ma("opera")}
var S={};function qd(){if(window.ActiveXObject){S.ie=(S[window.XMLHttpRequest?"ie7":"ie6"]=true)}else if(window.opera){S.opera=true}else if(document.childNodes&&!document.all&&!navigator.taintEnabled){S.safari=true;if(navigator.userAgent.indexOf("iPhone")>0){S.iphone=true}}else if(document.getBoxObjectFor!=null){S.gecko=true}}
qd();function Zb(a){this.branding=a+"branding";this.vertical=a+"branding-vertical";this.img=a+"branding-img";this.userDefined=a+"branding-user-defined";this.imgNoClear=a+"branding-img-noclear";this.clickable=a+"branding-clickable";this.text=a+"branding-text"}
function Be(a,b,c,d){var f=new Zb(a);var e=o(f.branding);var i=V(null,null,f.branding);g(e,i);var h=!c;if(!h){p(e,f.vertical);p(i,f.vertical)}var k=O(i,0);var m;var q;if(h){m=k;q=k}else{m=k;q=O(i,0)}var r="/css/small-logo.png";var s=51;var t=15;if(d){if(typeof d=="string"){if(d.match(/^http:\/\/www\.youtube\.com/)){r="/css/youtube-logo-55x24.png";s=55;t=24;p(e,f.branding+"-youtube");if(!h){p(e,f.vertical+"-youtube");p(i,f.vertical+"-youtube")}}}}var G=y(m,f.text);var x=y(q,f.imgNoClear);var A=n(j[
"powered-by"],f.text);var D=google.loader.ServiceBase+r;var E=ac(D,s,t,f.imgNoClear);g(G,A);if(d){var la="http://www.google.com";if(typeof d=="string"&&(d.match(/^http:\/\/[a-z]*\.google\.com/)||d.match(/^http:\/\/www\.youtube\.com/))){la=d}var Ua=da(la,null,"_BLANK");Ua.className=f.clickable;g(Ua,E);g(x,Ua)}else{g(x,E)}if(b){var va;if(typeof b=="string"){va=document.getElementById(b)}else{va=b}W(va);g(va,e)}return e}
function Ae(a,b){var c;var d=a.getFullYear();var f=a.getMonth();var e=j["month-abbr"][f];var i=a.getDate();if(i<10){i="0"+i}switch(b){case "MDY":c=e+" "+i+", "+d;break;case "YMD":c=d+" "+e+" "+i;break;default:case "DMY":c=i+" "+e+" "+d;break}return c}
var Yb=fb.xb=3600000;var ze=fb.yb=60000;var ye=fb.wb=86400000;function fb(a,b){var c=new Date;var d=c.getTime();var f=a.getTime();var e;if(d<f){return j["n-minutes-ago"](2)}var i=d-f;if(i<Yb){var h=parseInt(i/ze);if(h<=1){e=2}else{e=h}return j["n-minutes-ago"](e)}if(i<ye){var k=parseInt(i/Yb);if(k<=1){return j["one-hour-ago"]}else{e=k;return j["n-hours-ago"](e)}}return Ae(a,b)}
;
function l(){}
var C=l.Yd="gs-result";var ge=l.Dd="gs-error-result";var le=l.Md="gs-no-results-result";l.Ed="gs-id";var Aa=l.fe="gs-spacer";var K=l.le="gs-title";var J=l.ee="gs-snippet";var U=l.me="gs-visibleUrl";var Wb=l.ne="gs-visibleUrl-long";var ve=l.oe="gs-visibleUrl-short";var we=l.qe="gs-watermark";var re=l.Zd="gs-results-attribution";var Nb=l.rd="gs-address";var Vb=l.ge="gs-street";var Pb=l.xd="gs-city";var Sb=l.Wd="gs-region";var ce=l.zd="gs-country";var Qb=l.Td="gs-phone";var Yd=l.sd="gs-street gs-addressLine"
;var Zd=l.td="gs-city gs-addressLine";var $d=l.ud="gs-addressLine";var de=l.Ad="gs-directions";var ee=l.Bd="gs-directions-to-from";var he=l.Hd="gs-label";var Ub=l.be="gs-secondary-link";var Ob=l.vd="gs-author";var Rb=l.Vd="gs-publisher";var je=l.Kd="gs-location";var be=l.yd="gs-clusterUrl";var ra=l.Gd="gs-image-box";var ae=l.wd="gs-image-box gs-book-image-box";var aa=l.he="gs-text-box";var ke=l.Ld="gs-metadata";var se=l.$d="gs-row-1";var te=l.ae="gs-row-2";l.ce="gs-shadow";var oe=l.Pd="gs-pages";
var ne=l.Od="gs-page-edge";var F=l.Fd="gs-image";var ue=l.de="gs-size";var me=l.Nd="gs-pageCount";var sa=l.Ud="gs-publishedDate";var Tb=l.Xd="gs-relativePublishedDate";var xe=l.re="gs-webAd";var ie=l.Jd="gs-localAd";var Mb=l.qd="gs-ad-marker";var za=l.Id="gs-line";var fe=l.Cd="gs-divider";var pe=l.Qd="gs-patent-info";var qe=l.Rd="gs-patent-number";var Dd=l.Bc="gsc-control";var Jd=l.Lc="gsc-narrow";var Jb=l.Xc="gsc-search-box";var Kb=l.Yc="gsc-search-button";var Cb=l.qc="gsc-clear-button";var Fb=l.Hc=
"gsc-input";var ud=l.jc="gsc-branding";l.pc="gsc-branding-vertical";var wd=l.lc="gsc-branding-img";var yd=l.oc="gsc-branding-user-defined";var xd=l.mc="gsc-branding-img-noclear";var vd=l.kc="gsc-branding-clickable";var Bb=l.nc="gsc-branding-text";var $a=l.Sc="gsc-resultsRoot";var Od=l.Tc="gsc-results";var Za=l.Nc="gsc-result";var Nd=l.Rc="gsc-resultsHeader";var $=l.Vc="gsc-resultsbox-invisible";var T=l.Wc="gsc-resultsbox-visible";var Eb=l.Gc="gsc-expansionArea";var Ud=l.kd="gsc-trailing-more-results"
;var Fd=l.Dc="gsc-cursor-box";var Ed=l.Cc="gsc-cursor";var Hd=l.Fc="gsc-cursor-page";var Gd=l.Ec="gsc-cursor-current-page";var rd=l.cc="gsc-adBlock";var Xa=l.dc="gsc-adBlockInvisible";var td=l.gc="gsc-adBlockVertical";var Ya=l.hc="gsc-adBlockVerticalInvisible";var zb=l.bc="gsc-ad";var sd=l.fc="gsc-ad-box";var xa=l.hd="gsc-thinWrapper";var Vd=l.ld="gsc-twiddleRegionCell";var zd=l.rc="gsc-configLabelCell";var Ad=l.sc="gsc-configLabel";var Wd=l.md="gsc-twiddle";var qa=l.nd="gsc-twiddle-closed";var ya=
l.od="gsc-twiddle-opened";var Td=l.jd="gsc-title";var Qd=l.Zc="gsc-stats";var Gb=l.Ic="gsc-keeper";var Md=l.Qc="gsc-result-selector gsc-one-result";var Ld=l.Pc="gsc-result-selector gsc-more-results";var Kd=l.Oc="gsc-result-selector gsc-all-results";var Pd=l.Uc="gsc-results-selector";var Ib=l.Mc="gsc-one-result-active";var Hb=l.Kc="gsc-more-results-active";var Ab=l.ic="gsc-all-results-active";var eb=l.gd="gsc-tabsArea";var Lb=l.fd="gsc-tabsAreaInvisible";var Sd=l.ad="gsc-tabHeader";var cb=l.dd="gsc-tabhActive"
;var db=l.ed="gsc-tabhInactive";var ab=l.bd="gsc-tabdActive";var bb=l.cd="gsc-tabdInactive";var Rd=l.$c="gsc-tabData";var Db=l.Ac="gsc-config";var pa=l.zc="gsc-configSetting";var N=l.yc="gsc-configSettingSubmit";var oa=l.uc="gsc-configSettingCheckbox";var na=l.tc="gsc-configSettingCheckboxLabel";var Cd=l.xc="gsc-configSettingInput";var Bd=l.wc="gsc-configSettingInputLabel";var Id=l.Jc="gsc-locationConfig";var Xd=l.pd="gsc-video-player";l.ac="as-results";l.$b="as-result-vertical";l.Zb="as-result-horizontal"
;l.Yb="as-result-cell";l.Xb="as-branding-cell";
var fc=GSearch.BASE=google.loader.ServiceBase;var X=GSearch.LARGE_RESULTSET="large";var I=GSearch.SMALL_RESULTSET="small";GSearch.LARGE_RESULTS=8;GSearch.LARGE_ADS=4;GSearch.SMALL_RESULTS=4;GSearch.SMALL_ADS=2;var gc=GSearch.KEEP_SWEEPER_DELAY=5000;GSearch.LINK_TARGET_TOP="_top";GSearch.LINK_TARGET_SELF="_self";GSearch.LINK_TARGET_PARENT="_parent";var kb=GSearch.LINK_TARGET_BLANK="_blank";var R=GSearch.ORDER_BY_RELEVANCE="order-by-relevance";var Q=GSearch.ORDER_BY_DATE="order-by-date";var jc=GSearch.ORDER_BY_ASCENDING_DATE=
"order-by-ascending-date";var Ca=GSearch.RESTRICT_TYPE="restrict-type";var nb=GSearch.RESTRICT_SAFESEARCH="restrict-safesearch";var qb=GSearch.SAFESEARCH_STRICT="active";var pb=GSearch.SAFESEARCH_OFF="off";var ob=GSearch.SAFESEARCH_MODERATE="moderate";var mb=GSearch.RESTRICT_EXTENDED_ARGS="restrict-extended";GSearch.strings=j;function GSearch(){this.te=null;this.L=null;this.vb=0;this.La=0;this.ab=true;this.n={width:100,height:75};this.S=kb;this.qb=1;this.setResultSetSize(I);this.clearResults();this.Ta=
null;this.Va=null;this.ib=null;this.db=null;this.va=null;this.ta=null;this.Ba=null;this.m="null";this.h=null;this.i=null;this.gwsUrl=null;this.J=new Array;if(typeof window==="object"&&window.location&&window.location.hostname&&window.location.hostname!=""){this.cb=ga(window.location.hostname)}else{this.cb=".com"}this.ha=null;this.oa=null}
GSearch.deferRequest=function(a){var b=v(this,ka,[a,google.search.Version]);setTimeout(b,0)}
;GSearch.prototype.Qb=function(){var a=this.H+"?hl="+google.search.CurrentLocale+"&source=uds";if(this.i){a=a+this.i}else{a=a+"&q="}if(this.N&&this.N!=""){return this.N}else{return a}}
;GSearch.prototype.setQueryAddition=function(a){if(a==null||a==""){this.h=null}else{this.h=a}}
;GSearch.prototype.E=function(a,b,c){var d=fc+this.F+"?callback="+a+"&context="+b+"&lstkp="+this.Cb()+"&rsz="+this.Ga+"&hl="+google.search.CurrentLocale;if(this.cb){d+="&gss="+this.cb}if(google.search.JSHash){d+="&sig="+google.search.JSHash}if(c){d+="&start="+c}return d}
;GSearch.prototype.setLinkTarget=function(a){this.S=a}
;GSearch.prototype.e=function(){if(this.S&&this.S!=""){return this.S}else{return null}}
;GSearch.prototype.ob=function(){this.vb++;this.La++;if(this.Ba){clearTimeout(this.Ba)}this.Ba=setTimeout(v(this,this.execute,[null]),gc)}
;GSearch.prototype.Cb=function(){clearTimeout(this.Ba);var a=this.La;this.La=0;return a}
;GSearch.prototype.bb=function(){if(this.Ta==null){this.Ta="gsc-"+this.m+"Result"}return this.Ta}
;GSearch.prototype.z=function(){if(this.Va==null){this.Va="gs-"+this.m+"Result"}return this.Va}
;GSearch.prototype.Kb=function(){if(this.ib==null){this.ib=j[this.m]}if(this.va){return this.va}else{return this.ib}}
;GSearch.prototype.Ib=function(){if(this.db==null){this.db=j[this.m]}if(this.va){return this.va}else{return this.db}}
;GSearch.prototype.getResultSetSize=function(){return this.Ga}
;GSearch.prototype.setResultSetSize=function(a){switch(a){case X:this.Ga=X;break;default:case I:this.Ga=I;break}}
;GSearch.prototype.execute=function(a){var b=this.r(a,null,null);if(window._googleudsextrastuff){b=b+window._googleudsextrastuff}this.cursor=null;this.Nb=a;ka(b,google.search.Version);if(this.J&&this.J.length>0){for(var c=0;c<this.J.length;c++){this.J[c].execute(a)}}}
;GSearch.prototype.gotoPage=function(a){if(this.cursor&&a<this.cursor.pages.length){var b=this.r(this.Nb,null,null,this.cursor.pages[a].start);this.cursor=null;ka(b,google.search.Version)}}
;GSearch.prototype.addRelatedSearcher=function(a){if(this.J){this.J.push(a)}}
;GSearch.prototype.getExecuteUrl=function(a,b,c){var d=this.r(a,b,c);return wb(d,google.search.Version)}
;GSearch.prototype.u=function(a){var b="http://code.google.com/apis/ajaxsearch/faq.html";var c=j["watermark"]+" - "+this.Db();var d=u(b,c,"_blank",we);g(a,d)}
;GSearch.prototype.Db=function(){var a=new Date;var b=a.getMonth()+1+"/"+a.getFullYear();return b}
;GSearch.prototype.formatToShortDate=function(a){var b;var c=a.getFullYear();var d=a.getMonth();var f=j["month-abbr"][d];var e=a.getDate();if(e<10){e="0"+e}switch(google.search.ShortDatePattern){case "MDY":b=f+" "+e+", "+c;break;case "YMD":if(google.search.CurrentLocale=="zh-CN"||google.search.CurrentLocale=="zh-TW"){var i="\u6708";var h="\u5e74";var k="\u65e5";b=c+h+d+i+e+k}else{b=c+" "+f+" "+e}break;default:case "DMY":b=e+" "+f+" "+c;break}return b}
;var lb=GSearch.xb=3600000;var ic=GSearch.yb=60000;var hc=GSearch.wb=86400000;GSearch.prototype.formatToRelativeDate=function(a){var b=new Date;var c=b.getTime();var d=a.getTime();var f;if(c<d){return j["n-minutes-ago"](2)}var e=c-d;if(e<lb){var i=parseInt(e/ic);if(i<=1){f=2}else{f=i}return j["n-minutes-ago"](f)}if(e<hc){var h=parseInt(e/lb);if(h<=1){return j["one-hour-ago"]}else{f=h;return j["n-hours-ago"](f)}}return this.formatToShortDate(a)}
;GSearch.prototype.clearResults=function(){this.gwsUrl=null;this.Fe=null;this.results=new Array;this.adResults=new Array}
;GSearch.prototype.nb=function(){if(this.mb){this.mb()}}
;GSearch.prototype.onSearchComplete=function(a,b,c,d){if(a==null&&b==204){return}this.gwsUrl=null;if(this.results&&this.results.length>0){for(var f=0;f<this.results.length;f++){if(this.results[f].html){Xb(this.results[f].html)}}}if(this.adResults&&this.adResults.length>0){for(var f=0;f<this.adResults.length;f++){if(this.adResults[f].html){Xb(this.adResults[f].html)}}}if(a&&a.results&&a.results.length>0){this.results=a.results;if(a.cursor&&a.cursor.moreResultsUrl){if(this.N&&this.N!=""){this.gwsUrl=
this.N}else{this.gwsUrl=a.cursor.moreResultsUrl}}else if(this.i&&this.H){this.gwsUrl=this.Qb()}}else{this.results=new Array}if(a&&a.adResults&&a.adResults.length>0){this.adResults=a.adResults}else{this.adResults=new Array}this.completionStatus=b;this.hashStatus=d;this.completionFailureDetails=c;if(a&&a.resultAttribution&&a.resultAttribution!=null&&a.resultAttribution!=""){this.Fa=a.resultAttribution}else{this.Fa=null}if(a&&a.cursor&&a.cursor.pages&&a.cursor.pages.length>0){this.cursor=a.cursor}if(
this.ab){this.jb()}this.nb()}
;GSearch.prototype.getAttribution=function(){var a=null;if(this.Fa){a=n(this.Fa,re)}return a}
;GSearch.prototype.jb=function(){var a;var b;for(a=0;a<this.results.length;a++){b=this.results[a];this.createResultHtml(b)}for(a=0;a<this.adResults.length;a++){b=this.adResults[a];this.wa(b)}}
;GSearch.prototype.wa=function(a){if(a.html){delete a.html}}
;GSearch.prototype.setSearchCompleteCallback=function(a,b,c){if(!c){c=[null]}this.mb=v(a,b,c)}
;var M=GSearch.AllocateCompletionMapContext=function(a,b){var c=false;var d=null;if(a.length){for(var f=0;f<a.length;f++){if(a[f]==null){a[f]=b;d=f;c=true;break}}}if(!c){d=a.length;a.push(b)}return d}
;GSearch.prototype.setUserDefinedLabel=function(a){this.va=a}
;GSearch.prototype.setUserDefinedClassSuffix=function(a){this.ta=a}
;GSearch.prototype.setNoHtmlGeneration=function(){this.ab=false}
;GSearch.scaleImage=function(a,b,c,d,f){var e=c.width/a;var i=c.height/b;var h=Math.min(e,i);var k=Math.min(h,1);var m=new Object;m.width=Math.round(a*k);m.height=Math.round(b*k);if(d){d.width=m.width;d.height=m.height;if(f){var q=(c.width-m.width)/2;d.style.left=q+"px"}}return m}
;var kc=GSearch.VERTICAL_BRANDING=1;GSearch.HORIZONTAL_BRANDING=2;GSearch.getBranding=function(a,b,c){return Be("gsc-",a,b&&b==kc,c)}
;GSearch.setOnLoadCallback=function(a,b){google.setOnLoadCallback(a,b)}
;var Ba;function Xb(a){if(!Ba){Ba=document.createElement("DIV")}Ba.appendChild(a);Ba.innerHTML=""}
GSearch.prototype.Fb=function(a){var b=this.ha;if(a){b=a}var c=new Object;var d=o(this.z());p(d,C);p(d,ge);var f;f=n(b,J);g(d,f);c.html=d;return c}
;GSearch.prototype.Gb=function(a){var b=this.oa;if(a){b=a}var c=new Object;var d=o(this.z());p(d,C);p(d,le);var f;f=n(b,J);g(d,f);c.html=d;return c}
;google_exportSymbol("google.search.CurrentLocale",_UDS_CONST_LOCALE);google_exportSymbol("google.search.ShortDatePattern",_UDS_CONST_SHORT_DATE_PATTERN);
function GwebSearch(){GSearch.call(this);this.m="web";this.F="/GwebSearch";this.H="http://www.google.com/search";this.c=null;this.q=Z;this.R=null;this.Wa=null;this.N=null;this.s=null;this.d=null}
L(GwebSearch,GSearch);GwebSearch.RESULT_CLASS="GwebSearch";GwebSearch.AD_CLASS="GwebSearch.ad";var Sa=GwebSearch.cxRestriction_CX="cx";var Ra=GwebSearch.cxRestriction_CREF="cref";var Z=GwebSearch.cxRestriction_NONE="none";var Ta=GwebSearch.P=new Array;GwebSearch.RawCompletion=function(a,b,c,d,f){var e=0;if(a){e=parseInt(a)}var i=Ta[e];Ta[e]=null;i.onSearchComplete(b,c,d,f)}
;GwebSearch.prototype.r=function(a,b,c,d){var f;if(c==null){f=M(Ta,this)}else{f=c}var e;if(b==null){e="google.search.WebSearch.RawCompletion"}else{e=b}var i=this.E(e,f,d);if(a){var h;var k=a;if(this.h){k=k+" "+this.h}if(this.c&&this.q!=Z&&this.Wa){var m=this.Wa;var q=k;if(this.R!=null){q=k+" more:"+this.R}m=m.replace(/__HL__/,google.search.CurrentLocale);m=m.replace(/__QUERY__/,encodeURIComponent(q));this.N=m}if(this.c&&this.q==Z){k=k+" site:"+this.c}h="";if(this.c&&this.q!=Z){if(this.q==Sa){h=h+
"&cx="+this.c}else if(this.q==Ra){h=h+"&cref="+encodeURIComponent(this.c)}if(this.R!=null){k=k+" more:"+this.R}}h=h+"&q="+encodeURIComponent(k);if(this.s){h=h+"&safe="+this.s}if(this.d){h=h+this.d}i=i+h;this.i=h;if(d&&d!=0){this.i=this.i+"&start="+d}}return i}
;GwebSearch.prototype.createResultHtml=function(a){if(a.html){delete a.html}var b=o(this.z());p(b,C);var c;c=u(a.unescapedUrl,a.title,this.e(),K);g(b,c);c=n(a.content,J);g(b,c);c=n(a.visibleUrl,U);g(b,c);p(c,ve);var d=a.unescapedUrl.indexOf(a.visibleUrl);var f=a.visibleUrl;if(d!=-1&&d!=0){f=a.unescapedUrl.substring(d)}c=n(f,U);p(c,Wb);g(b,c);a.html=b;this.u(a.html)}
;GwebSearch.prototype.wa=function(a){if(a.html){delete a.html}var b=o(xe);p(b,C);var c;c=u(a.unescapedUrl,a.title,this.e(),K);g(b,c);if(a.content1){c=n(a.content1,za);g(b,c)}if(a.content2){c=n(a.content2,za);g(b,c)}c=n(a.visibleUrl,U);var d=H(a.impressionUrl,12,12,Mb);g(c,d);g(b,c);a.html=b;this.u(a.html)}
;GwebSearch.prototype.setSiteRestriction=function(a,b,c){this.N=null;this.ha=null;var d=false;if(a==null||typeof a=="string"&&a==""){d=false;this.c=null;this.q=Z;this.R=null;this.ha=null}else if(typeof a=="string"){d=a.match(/^\d{21}:.*/);if(d){this.c=a;this.q=Sa}else{this.c=a;this.q=Z}}else{if(a.siteUrl){d=false;this.c=a.siteUrl}else if(a.cseId){d=true;this.c=a.cseId;this.q=Sa}else if(a.crefUrl){d=true;this.c=a.crefUrl;this.q=Ra;this.ha=j["linked-cse-error-results"]}else{d=false;this.c=null;this.q=
Z;this.R=null}}if(d){if(b){this.R=b}if(c){if(c.match(/__HL__/)&&c.match(/__QUERY__/)){this.Wa=c}}if(this.q==Ra){var f=new Image;f.src="http://www.google.com/cse/tools/ping?cref="+encodeURIComponent(this.c)+"&nocache="+Number(new Date)}}}
;GwebSearch.prototype.setRestriction=function(a,b){if(a==nb){if(b){if(b==qb||b==pb||b==ob){this.s=b}else{this.s=null}}else{this.s=null}}if(a==mb){if(b){for(var c in b){var d=b[c];if(c=="lr"||c=="usg"){if(this.d==null){this.d="&"}else{this.d+="&"}this.d+=c+"="+encodeURIComponent(d)}}}else{this.d=null}}}
;
function GadSenseSearch(a){GSearch.call(this);this.m="ad";this.Xa=null;this.Ya=null;if(a){if(window["google_dynamic_adsense_units"]==null){return}var b=window["google_dynamic_adsense_units"][a];if(b!=null&&b._bind()){this.Xa=b}}else{var c=window.googleAFSAdsUpdater;if(c!=null&&c._bind()){this.Ya=c}}}
L(GadSenseSearch,GSearch);GadSenseSearch.prototype.execute=function(a,b){var c=a;if(this.h){c=c+" "+this.h}if(this.Xa){this.Xa._updateAds(c)}else if(this.Ya){this.Ya._updateAds(c)}}
;
function GsaSearch(a){GSearch.call(this);this.Bb=a;this.m="sa";this.F="/ajax"}
L(GsaSearch,GSearch);GsaSearch.RESULT_CLASS="GsaSearch";GsaSearch.AD_CLASS="GsaSearch.ad";var Pa=GsaSearch.P=new Array;GsaSearch.RawCompletion=function(a,b,c){var d=0;if(a){d=parseInt(a)}var f=Pa[d];Pa[d]=null;f.onSearchComplete(b,c)}
;var jd=GsaSearch.NEXT_PAGE="next";var kd=GsaSearch.PREV_PAGE="prev";GsaSearch.prototype.execute=function(a,b){var c=this.r(a,null,null,b);ka(c,google.search.Version)}
;GsaSearch.prototype.r=function(a,b,c,d){var f;if(c==null){f=M(Pa,this)}else{f=c}var e;if(b==null){e="google.search.SaSearch.RawCompletion"}else{e=b}var i=this.E(e,f,d);if(a){var h=a;if(this.h){h=h+" "+this.h}i=i+"&q="+encodeURIComponent(h)}return i}
;GsaSearch.prototype.createResultHtml=function(a){if(a.html){delete a.html}var b=o(this.z());p(b,C);var c;c=u(a.unescapedUrl,a.title,this.e(),K);g(b,c);c=n(a.content,J);g(b,c);c=n(a.visibleUrl,U);g(b,c);p(c,Wb);a.html=b;this.u(a.html)}
;var ld=GsaSearch.ue="&ajax_version=1.0&client=default_frontend&site=default_collection&ie=UTF-8&oe=UTF-8";GsaSearch.prototype.E=function(a,b,c){var d=this.Bb+this.F+"?ajax_callback="+a+"&ajax_context="+b+"&hl="+google.search.CurrentLocale+ld+"&num="+this.Da+this.Jb(c);return d}
;GsaSearch.prototype.ob=function(){this.vb++;this.La++}
;GsaSearch.prototype.onSearchComplete=function(a,b){if(a==null&&b==204){return}if(a&&a.results&&a.results.length>0){this.results=new Array;for(var c=0;c<a.results.length;c++){var d=a.results[c];var f=new Object;f.GsearchResultClass=d.GsearchResultClass;f.unescapedUrl=d.unescapedUrl;f.url=d.url;f.visibleUrl=d.visibleUrl;f.title=d.title;f.titleNoFormatting=d.titleNoFormatting;f.content=d.snippet;this.results.push(f)}this.Ha=a.start_index;this.xa=a.end_index;this.Za=a.est}else{this.results=new Array;
this.Ha=0;this.xa=0;this.Za=0}this.completionStatus=b;this.hashStatus=200;this.completionFailureDetails="";this.Fa=null;if(this.ab){this.jb()}this.nb()}
;GsaSearch.prototype.setResultSetSize=function(a){this.__super__(GSearch.prototype.setResultSetSize,a);switch(this.Ga){case X:this.Da=8;break;case I:this.Da=4;break}}
;GsaSearch.prototype.Jb=function(a){var b="";if(a&&this.completionStatus==200&&this.Ha&&this.xa&&this.Za){if(a==jd){if(this.xa<this.Za){b="&start="+this.xa}}else if(a==kd){var c;if(this.Ha>this.Da+1){c=this.Ha-(this.Da+1)}else{c=0}b="&start="+c}}return b}
;
function GnewsSearch(){GSearch.call(this);this.m="news";this.F="/GnewsSearch";this.H="http://news.google.com/nwshp";this.He=null;this.fa="site:";this.j=false;this.$=true;this.L=P(this,ed);this.Z="gsc-newsConfig";this.b=null;this.d=null}
L(GnewsSearch,GSearch);GnewsSearch.RESULT_CLASS="GnewsSearch";var Na=GnewsSearch.P=new Array;GnewsSearch.RawCompletion=function(a,b,c,d,f){var e=0;if(a){e=parseInt(a)}var i=Na[e];Na[e]=null;i.onSearchComplete(b,c,d,f)}
;GnewsSearch.prototype.r=function(a,b,c,d){var f;if(c==null){f=M(Na,this)}else{f=c}var e;if(b==null){e="google.search.NewsSearch.RawCompletion"}else{e=b}var i=this.E(e,f,d);if(a||!a&&this.d){var h;var k=null;if(a){k=a}if(this.h){if(k==null){k=this.h}else{k=k+" "+this.h}}if(this.c){if(k==null){k=this.fa+this.c}else{k=k+" "+this.fa+this.c}}if(k){h="&q="+encodeURIComponent(k)}else{h=""}if(this.j){h=h+"&scoring=d"}if(this.d){var m="";for(var q in this.d){if(q.charAt(0)==":"){m+="&"+this.d[q]}}h=h+m}if(
this.c&&this.fa=="source:"){i=i.replace(/&hl=.*&/,"&hl=en&")}i=i+h;this.i=h;if(d&&d!=0){this.i=this.i+"&start="+d}}return i}
;GnewsSearch.prototype.createResultHtml=function(a){if(a.html){delete a.html}if(a.GsearchResultClass=="GnewsSearch.quote"){return}var b=o(this.z());p(b,C);var c;c=u(a.unescapedUrl,a.title,this.e(),K);g(b,c);c=n(a.publisher,Rb);g(b,c);var d=a.location.split(",");if(d.length>1){var f=", "+d[d.length-1];c=n(f,je);g(b,c)}var e=new Date(a.publishedDate);c=n(" - "+this.formatToShortDate(e),sa);g(b,c);var e=new Date(a.publishedDate);c=n(" - "+this.formatToRelativeDate(e),Tb);g(b,c);c=n(a.content,J);g(b,
c);if(a.clusterUrl&&a.clusterUrl!=""){c=u(a.clusterUrl,j["related-articles"]+"&nbsp;&raquo;",this.e(),be);g(b,c)}a.html=b;this.u(a.html)}
;GnewsSearch.prototype.setSiteRestriction=function(a){if(a==null||a==""){this.c=null;this.fa="site:"}else{if(a.match("[./:]")){this.fa="site:";this.c=a}else{this.fa="source:";this.c=a.replace(/\s/g,"_")}}}
;GnewsSearch.prototype.setResultOrder=function(a){if(a==Q){this.j=true}else if(a==R){this.j=false}else{this.j=false}}
;var ed=GnewsSearch.prototype.Ea=function(a,b){if(b){if(this.b==null){var c=o(pa);this.b=ha(null,"0",this.j?true:false,oa);g(c,this.b);g(c,n(j["sort-by-date"],na));var d=o(N);g(d,ca(j["close"],N));g(c,d);g(a,c);this.b.focus()}else{this.b.checked=this.j?true:false;this.b.focus()}}else{if(this.b){if(this.b.checked){this.setResultOrder(Q)}else{this.setResultOrder(R)}}}}
;GnewsSearch.prototype.setRestriction=function(a,b){if(a==mb){if(b){for(var c in b){var d=b[c];if(c=="geo"){if(this.d==null){this.d=new Object}this.d[":geo"]=c+"="+encodeURIComponent(d)}if(c=="qsid"){if(this.d==null){this.d=new Object}this.d[":qsid"]=c+"="+encodeURIComponent(d)}if(c=="topic"){if(this.d==null){this.d=new Object}this.d[":topic"]=c+"="+encodeURIComponent(d)}if(c=="ned"){if(this.d==null){this.d=new Object}this.d[":ned"]=c+"="+encodeURIComponent(d)}}}else{this.d=null}}}
;
function GimageSearch(){GSearch.call(this);this.qb=2;this.m="image";this.F="/GimageSearch";this.H="http://images.google.com/images";this.s=null;this.Aa=null;this.ja=null;this.ka=null;this.ia=null;this.c=null;this.n={width:112,height:84}}
L(GimageSearch,GSearch);var Sc=GimageSearch.RESULT_CLASS="GimageSearch";GimageSearch.AD_CLASS="GwebSearch.ad";var Qc=GimageSearch.RESTRICT_IMAGESIZE="restrict-imagesize";GimageSearch.IMAGESIZE_SMALL=["icon"];GimageSearch.IMAGESIZE_MEDIUM=["small","medium","large","xlarge"];GimageSearch.IMAGESIZE_LARGE=["xxlarge"];GimageSearch.IMAGESIZE_EXTRA_LARGE=["huge"];var Oc=GimageSearch.RESTRICT_COLORIZATION="restrict-coloration";var Gc=GimageSearch.COLORIZATION_BLACK_AND_WHITE="mono";var Ic=GimageSearch.COLORIZATION_GRAYSCALE=
"gray";var Hc=GimageSearch.COLORIZATION_COLOR="color";var Pc=GimageSearch.RESTRICT_FILETYPE="restrict-filetype";var Lc=GimageSearch.FILETYPE_JPG="jpg";var Mc=GimageSearch.FILETYPE_PNG="png";var Kc=GimageSearch.FILETYPE_GIF="gif";var Jc=GimageSearch.FILETYPE_BMP="bmp";var Rc=GimageSearch.RESTRICT_IMAGETYPE="restrict-imagetype";var Nc=GimageSearch.IMAGETYPE_FACES="face";var Ka=GimageSearch.P=new Array;GimageSearch.RawCompletion=function(a,b,c,d,f){var e=0;if(a){e=parseInt(a)}var i=Ka[e];Ka[e]=null;
i.onSearchComplete(b,c,d,f)}
;GimageSearch.prototype.r=function(a,b,c,d){var f;if(c==null){f=M(Ka,this)}else{f=c}var e;if(b==null){e="google.search.ImageSearch.RawCompletion"}else{e=b}var i=this.E(e,f,d);if(a){var h;var k=a;if(this.h){k=k+" "+this.h}h="&q="+encodeURIComponent(k);if(this.s){h=h+"&safe="+this.s}if(this.Aa){h=h+"&imgsz="+encodeURIComponent(this.Aa)}if(this.ja){h=h+"&imgc="+encodeURIComponent(this.ja)}if(this.ka){h=h+"&imgtype="+encodeURIComponent(this.ka)}if(this.ia){h=h+"&as_filetype="+encodeURIComponent(this.ia)
}if(this.c){h=h+"&as_sitesearch="+encodeURIComponent(this.c)}i=i+h;this.i=h;if(d&&d!=0){this.i=this.i+"&start="+d}}return i}
;GimageSearch.prototype.createResultHtml=function(a){if(a.html){delete a.html}var b=o(this.z());p(b,C);var c=o(ra);var d=GSearch.scaleImage(a.tbWidth,a.tbHeight,this.n);var f=H(a.tbUrl,d.width,d.height,F);var e=(this.n.width-d.width)/2;f.style.left=e+"px";f.title=a.titleNoFormatting+" ("+a.visibleUrl+")";var i=da(a.unescapedUrl,null,this.e(),F);w(i,F);g(i,f);g(c,i);g(b,c);var h=o(aa);var k;k=n(a.content,J);k.title=a.contentNoFormatting;g(h,k);var m=a.width+" x "+a.height;k=n(m,ue);g(h,k);k=u(a.originalContextUrl,
a.visibleUrl,this.e(),U);k.title=a.visibleUrl;g(h,k);g(b,h);a.html=b;this.u(a.html)}
;GimageSearch.prototype.setSiteRestriction=function(a){this.c=a}
;GimageSearch.prototype.setRestriction=function(a,b){if(a==nb){if(b){if(b==qb||b==pb){this.s=b}else if(b==ob){this.s=null}else{this.s=null}}else{this.s=null}}else if(a==Qc){if(b){this.Aa=b.join("|")}else{this.Aa=null}}else if(a==Oc){if(b){if(b==Gc||b==Ic||b==Hc){this.ja=b}else{this.ja=null}}else{this.ja=null}}else if(a==Pc){if(b){if(b==Lc||b==Mc||b==Kc||b==Jc){this.ia=b}else{this.ia=null}}else{this.ia=null}}else if(a==Rc){if(b){if(b==Nc){this.ka=b}else{this.ka=null}}else{this.ka=null}}}
;
function GlocalSearch(){GSearch.call(this);this.B=null;this.A="San Francisco, CA";this.D={y:37.77916,x:-122.42009};this.Y=null;this.ma=true;this.X=false;this.T=null;this.$=true;this.L=P(this,bd);this.Z=Id;this.m="local";this.F="/GlocalSearch";this.H="http://www.google.com/local";this.k=null;this.W=null}
L(GlocalSearch,GSearch);GlocalSearch.RESULT_CLASS="GlocalSearch";GlocalSearch.AD_CLASS="GlocalSearch.ad";var Xc=GlocalSearch.TYPE_BLENDED_RESULTS="blended";var Yc=GlocalSearch.TYPE_KMLONLY_RESULTS="kmlonly";var Zc=GlocalSearch.TYPE_LOCALONLY_RESULTS="localonly";var Ma=GlocalSearch.P=new Array;GlocalSearch.RawCompletion=function(a,b,c,d,f){var e=0;if(a){e=parseInt(a)}var i=Ma[e];Ma[e]=null;if(b&&b.viewport){i.resultViewport=b.viewport}else{i.resultViewport=null}i.onSearchComplete(b,c,d,f)}
;GlocalSearch.prototype.r=function(a,b,c,d){var f;if(c==null){f=M(Ma,this)}else{f=c}var e;if(b==null){e="google.search.LocalSearch.RawCompletion"}else{e=b}var i=this.E(e,f,d);var h="";if(a){h="&q="+encodeURIComponent(a);i=i+h}this.viewport=null;var k;if(this.B){var m;var q;if(this.ma){m=this.B.getCenterLatLng();q=this.B.getSpanLatLng();k="&sll="+m.y+","+m.x;k+="&sspn="+q.height+","+q.width;k+=La(m.y,m.x);i+=k;h+=k}else{m=this.B.getCenter();q=this.B.getBounds().toSpan().toUrlValue();k="&sll="+m.y+
","+m.x;k+="&sspn="+q;k+=La(m.y,m.x);i+=k;h+=k}}else if(this.D){k="&sll="+this.D.y+","+this.D.x;if(this.Y){k=k+"&sspn="+this.Y.lat+","+this.Y.lng}k+=La(this.D.y,this.D.x);i+=k;h+=k}else if(this.A){k="&near="+encodeURIComponent(this.A);i+=k;h+=k}if(this.X){i+="&nogeocode=t";h+="&nogeocode=t"}if(this.T){i+="&mrt="+encodeURIComponent(this.T);h+="&mrt="+encodeURIComponent(this.T)}if(h){this.i=h}return i}
;var ad=GlocalSearch.Ee=3.141592653589;var $c=GlocalSearch.we=6367000;var dd=GlocalSearch.Le=16093;var La=GlocalSearch.centerToGll=function(a,b){var c=dd;var d=2*c/$c*2*ad;var f=a-d;var e=b-d;var i=a+d;var h=b+d;var k="&gll="+parseInt(f*1000000)+","+parseInt(e*1000000)+","+parseInt(i*1000000)+","+parseInt(h*1000000)+"&llsep=500,500";return k}
;GlocalSearch.prototype.createResultHtml=function(a){if(a.html){delete a.html}var b=o(this.z());p(b,C);var c;c=u(a.url,a.title,this.e(),K);g(b,c);if(a.listingType=="kml"&&a.content&&a.content!=""){c=n(a.content,J);g(b,c)}var d=o(Nb);if(a.addressLines&&a.addressLines.length>0){for(var f=0;f<a.addressLines.length;f++){var e=a.addressLines[f];var i=$d;if(f==0){i=Yd}else if(f==1){i=Zd}c=n(e,i);g(d,c)}}else{c=n(a.streetAddress,Vb);g(d,c);var h="";if(a.city!=""){h=a.city;if(a.region!=""){h+=", "}}c=n(h,
Pb);g(d,c);c=n(a.region,Sb);g(d,c)}c=n(a.country,ce);g(d,c);g(b,d);if(a.phoneNumbers&&a.phoneNumbers.length){var k=null;var m=null;var q=a.phoneNumbers[0];var r;for(var s=0;s<a.phoneNumbers.length;s++){r=a.phoneNumbers[s];if(r.type=="main"){k=r;break}if(r.type==""||r.type=="mobile"&&m==null){m=r}}if(k){r=k}else if(m){r=m}else{r=q}c=n(r.number,Qb);g(b,c)}if(a.ddUrl&&a.ddUrl!=""){c=u(a.ddUrl,j["directions"],this.e(),de);g(b,c)}if(a.ddUrlToHere&&a.ddUrlToHere!=""&&a.ddUrlFromHere&&a.ddUrlFromHere!=""
){c=o(ee);var t=n(j["get-directions"]+":",he);c.appendChild(t);t=u(a.ddUrlToHere,j["to-here"],this.e(),Ub);c.appendChild(t);t=n("-",Aa);c.appendChild(t);t=u(a.ddUrlFromHere,j["from-here"],this.e(),Ub);c.appendChild(t);g(b,c)}a.html=b;this.u(a.html)}
;GlocalSearch.prototype.wa=function(a){if(a.html){delete a.html}var b=o(ie);p(b,C);var c;c=u(a.unescapedUrl,a.title,this.e(),K);g(b,c);if(a.content1){c=n(a.content1,za);g(b,c)}if(a.content2){c=n(a.content2,za);g(b,c)}if(a.phoneNumber){c=n(a.phoneNumber,Qb);g(b,c)}c=n(a.visibleUrl,U);var d=H(a.impressionUrl,12,12,Mb);g(c,d);g(b,c);if(a.streetAddress&&a.city&&a.region){var f=o(Nb);var e=a.streetAddress+", ";c=n(e,Vb);g(f,c);e=a.city+", ";c=n(e,Pb);g(f,c);e=a.region;c=n(e,Sb);g(f,c);g(b,f)}a.html=b;
this.u(a.html)}
;GlocalSearch.prototype.setCenterPoint=function(a){if(a.centerAndZoom){this.ma=true;this.B=a;this.D=null;this.A="";if(this.k){this.k=null}}else if(a.setCenter){this.ma=false;this.B=a;this.D=null;this.Y=null;this.A="";if(this.k){this.k=null}}else if(a.x&&a.y){this.ma=true;this.D=a;this.Y=null;this.B=null;this.A="";if(this.k){this.k=null}}else{if(a!=null&&a!=""){this.ma=true;this.B=null;this.A=a;this.D=null;if(this.k){this.k=null}var b=new GlocalSearch;b.setSearchCompleteCallback(this,this.zb,[b,a]
);b.execute(a)}}}
;GlocalSearch.prototype.zb=function(a,b){if(a.results&&a.results.length){var c=new Object;c.y=parseFloat(a.results[0].lat);c.x=parseFloat(a.results[0].lng);this.D=c;this.A=b;this.$=true;this.B=null;if(a.resultViewport){var d=new Object;d.lat=parseFloat(a.resultViewport.span.lat)/2;d.lng=parseFloat(a.resultViewport.span.lng)/2;this.Y=d}}}
;var bd=GlocalSearch.prototype.Ea=function(a,b){if(b){if(this.k==null){var c=null;if(this.B==null){var d=o(pa);this.k=hb(null,Cd,this.A==""?null:this.A);g(d,n(j["search-location"],Bd));g(d,this.k);g(a,d);c=this.k}d=o("gsc-configSetting");this.W=ha(null,"0",this.X?true:false,oa);g(d,this.W);g(d,n(j["disable-address-lookup"],na));if(c==null){c=this.W}var f=n(null,"gsc-configSettingSubmit");g(f,ca(j["close"],N));g(d,f);g(a,d);c.focus()}}else{if(this.k){if(this.k.value){this.A=this.k.value;this.setCenterPoint(
this.A)}this.k=null}if(this.W){if(this.W.checked){this.X=true}else{this.X=false}this.W=null}W(a)}}
;var Tc=GlocalSearch.ADDRESS_LOOKUP_DISABLED="disabled";var Uc=GlocalSearch.ADDRESS_LOOKUP_ENABLED="enabled";GlocalSearch.prototype.setAddressLookupMode=function(a){if(a==Tc){this.X=true}else if(a==Uc){this.X=false}}
;var Wc=GlocalSearch.STATIC_MAP_ZOOM_FARTHEST=17;GlocalSearch.STATIC_MAP_ZOOM_DEFAULT=4;var Vc=GlocalSearch.STATIC_MAP_ZOOM_CLOSEST=0;var ub=GlocalSearch.STATIC_MAP_MAX_POINTS=8;var cd=GlocalSearch.resizeStaticMapUrl=function(a,b,c,d){var f=a.staticMapUrl;f=f.replace(/&h=\d*/,"&h="+b);f=f.replace(/&w=\d*/,"&w="+c);if(d&&d>=Vc&&d<=Wc){f=f.replace(/&zl=\d*/,"&zl="+d)}a.staticMapUrl=f;return f}
;GlocalSearch.computeStaticMapUrl=function(a,b,c,d){var f="&Point=b&Point.latitude_e6=__LAT__&Point.longitude_e6=__LNG__&Point.iconid=__ICONID__&Point=e";var e="";var i="http://mt.google.com/mapdata?cc=us&tstyp=5&zl=4&w=150&h=100";var h=new Object;h.staticMapUrl=i;i=cd(h,b,c,d);if(d==null){i=i.replace(/&zl=\d*/,"")}var k=a.length;if(k>ub){k=ub}for(var m=0;m<k;m++){var q;var r;var s=a[m];if(s.lat&&s.lng){if(typeof s.lat=="string"){q=parseFloat(s.lat);r=parseFloat(s.lng)}else{q=s.lat;r=s.lng}}else if(
s.x&&s.y){q=s.y;r=s.x}else{return null}var t=q*1000000;var G=r*1000000;var x=f.replace(/__LAT__/,parseInt(t));x=x.replace(/__LNG__/,parseInt(G));var A=51+m;if(k==1){A=15}x=x.replace(/__ICONID__/,A);e=e+x}var D=i+e;return D}
;GlocalSearch.prototype.setRestriction=function(a,b){if(a==Ca){if(b){this.T=null;if(b==Xc||b==Yc||b==Zc){this.T=b}else{this.T=null}}else{this.T=null}}}
;
function GblogSearch(){GSearch.call(this);this.m="blog";this.F="/GblogSearch";this.H="http://blogsearch.google.com/blogsearch";this.c=null;this.j=false;this.$=true;this.L=P(this,Cc);this.Z="gsc-blogConfig";this.b=null}
L(GblogSearch,GSearch);GblogSearch.RESULT_CLASS="GblogSearch";GblogSearch.AD_CLASS="GwebSearch.ad";var Ia=GblogSearch.P=new Array;GblogSearch.RawCompletion=function(a,b,c,d,f){var e=0;if(a){e=parseInt(a)}var i=Ia[e];Ia[e]=null;i.onSearchComplete(b,c,d,f)}
;GblogSearch.prototype.r=function(a,b,c){var d;if(c==null){d=M(Ia,this)}else{d=c}var f;if(b==null){f="google.search.BlogSearch.RawCompletion"}else{f=b}var e=this.E(f,d);if(a){var i;var h=a;if(this.h){h=h+" "+this.h}if(this.c){h=h+" blogurl:"+this.c}i="&q="+encodeURIComponent(h);if(this.j){i=i+"&scoring=d"}e=e+i;this.i=i}return e}
;GblogSearch.prototype.createResultHtml=function(a){if(a.html){delete a.html}var b=o(this.z());p(b,C);var c;c=u(a.postUrl,a.title,this.e(),K);g(b,c);var d=new Date(a.publishedDate);c=n(this.formatToShortDate(d),sa);g(b,c);d=new Date(a.publishedDate);c=n(this.formatToRelativeDate(d),Tb);g(b,c);c=n(a.content,J);g(b,c);c=u(a.blogUrl,a.blogUrl,this.e(),U);g(b,c);a.html=b;this.u(a.html)}
;GblogSearch.prototype.setSiteRestriction=function(a){if(a==null||a==""){this.c=null}else{this.c=a}}
;GblogSearch.prototype.setResultOrder=function(a){if(a==Q){this.j=true}else if(a==R){this.j=false}else{this.j=false}}
;var Cc=GblogSearch.prototype.Ea=function(a,b){if(b){if(this.b==null){var c=o(pa);this.b=ha(null,"0",this.j?true:false,oa);g(c,this.b);g(c,n(j["sort-by-date"],na));var d=o(N);g(d,ca(j["close"],N));g(c,d);g(a,c);this.b.focus()}else{this.b.checked=this.j?true:false;this.b.focus()}}else{if(this.b){if(this.b.checked){this.setResultOrder(Q)}else{this.setResultOrder(R)}}}}
;
function GvideoSearch(){GSearch.call(this);this.m="video";this.F="/GvideoSearch";this.H="http://video.google.com/videosearch";this.j=false;this.$=true;this.L=P(this,nd);this.Z="gsc-videoConfig";this.b=null}
L(GvideoSearch,GSearch);var md=GvideoSearch.RESULT_CLASS="GvideoSearch";GvideoSearch.AD_CLASS="GwebSearch.ad";var Qa=GvideoSearch.P=new Array;GvideoSearch.RawCompletion=function(a,b,c,d,f){var e=0;if(a){e=parseInt(a)}var i=Qa[e];Qa[e]=null;i.onSearchComplete(b,c,d,f)}
;GvideoSearch.prototype.r=function(a,b,c,d){var f;if(c==null){f=M(Qa,this)}else{f=c}var e;if(b==null){e="google.search.VideoSearch.RawCompletion"}else{e=b}var i=this.E(e,f,d);if(a){var h;var k=a;if(this.h){k=k+" "+this.h}h="&q="+encodeURIComponent(k);if(this.j){h=h+"&scoring=d"}i=i+h;this.i=h;if(d&&d!=0){this.i=this.i+"&start="+d}}return i}
;GvideoSearch.prototype.createResultHtml=function(a){if(a.html){delete a.html}var b=o(this.z());p(b,C);var c=o(ra);var d=o(aa);var f=V();var e=O(f,0);var i=y(e,ra);var h=y(e,aa);g(i,c);g(h,d);g(b,f);var k=GSearch.scaleImage(a.tbWidth,a.tbHeight,this.n);var m=H(a.tbUrl,k.width,k.height,F);var q=da(a.url,null,this.e(),F);w(q,F);g(q,m);g(c,q);var r;r=u(a.url,a.title,this.e(),K);g(d,r);var s=n(a.content,J);if(wa()){s.style.height="2.6em"}g(d,s);var t=new Date(a.published);r=n(this.formatToShortDate(t)
,sa);g(d,r);var G="http://"+a.publisher;r=u(G,a.publisher,this.e(),Rb);g(d,r);a.html=b;this.u(a.html)}
;GvideoSearch.createPlayer=function(a,b){var c=null;if(a.playUrl&&a.playUrl!=""){var d=a.playUrl;var f=Xd;if(b){f=b}if(xb()){var e=document.createElement("object");e.className=f;e.setAttribute("type","application/x-shockwave-flash");e.setAttribute("data",d);c=o(b);c.appendChild(e)}else{var e=document.createElement("embed");e.className=f;e.setAttribute("type","application/x-shockwave-flash");e.setAttribute("src",d);if(a.videoType){if(a.videoType=="Google"){e.setAttribute("bgcolor","#000000")}else{
e.setAttribute("wmode","transparent")}}else{e.setAttribute("bgcolor","#000000")}c=o(b);c.appendChild(e)}}return c}
;GvideoSearch.prototype.setResultOrder=function(a){if(a==Q){this.j=true}else if(a==R){this.j=false}else{this.j=false}}
;var nd=GvideoSearch.prototype.Ea=function(a,b){if(b){if(this.b==null){var c=o(pa);this.b=ha(null,"0",this.j?true:false,oa);g(c,this.b);g(c,n(j["sort-by-date"],na));var d=o(N);g(d,ca(j["close"],N));g(c,d);g(a,c);this.b.focus()}else{this.b.checked=this.j?true:false;this.b.focus()}}else{if(this.b){if(this.b.checked){this.setResultOrder(Q)}else{this.setResultOrder(R)}}}}
;
function GbookSearch(){GSearch.call(this);this.m="book";this.F="/GbookSearch";this.H="http://books.google.com/books";this.ya=false;this.Na=null}
L(GbookSearch,GSearch);GbookSearch.RESULT_CLASS="GbookSearch";GbookSearch.AD_CLASS="GwebSearch.ad";var Fc=GbookSearch.USER_LIST="user-list";var Dc=GbookSearch.TYPE_ALL_BOOKS=1;var Ec=GbookSearch.TYPE_FULL_VIEW_BOOKS=2;var Ja=GbookSearch.P=new Array;GbookSearch.RawCompletion=function(a,b,c,d,f){var e=0;if(a){e=parseInt(a)}var i=Ja[e];Ja[e]=null;i.onSearchComplete(b,c,d,f)}
;GbookSearch.prototype.r=function(a,b,c,d){var f;if(c==null){f=M(Ja,this)}else{f=c}var e;if(b==null){e="google.search.BookSearch.RawCompletion"}else{e=b}var i=this.E(e,f,d);if(a){var h;var k=a;if(this.h){k=k+" "+this.h}h="&q="+encodeURIComponent(k);if(this.ya){h=h+"&as_brr=1"}if(this.Na){h=h+"&as_list="+this.Na}i=i+h;this.i=h}return i}
;GbookSearch.prototype.createResultHtml=function(a){if(a.html){delete a.html}a.thumbnailHtml=this.Ua(a);var b=o(this.z());p(b,C);var c=o(aa);var d=V();var f=O(d,0);var e=y(f,ra);var i=y(f,aa);g(e,a.thumbnailHtml.cloneNode(true));g(i,c);g(b,d);var h;h=u(a.unescapedUrl,a.title,this.e(),K);g(c,h);h=n(j["by"]+"&nbsp;"+a.authors,Ob);g(c,h);h=o(Aa);g(c,h);if(a.publishedYear){h=n(a.publishedYear,sa);g(c,h)}if(parseInt(a.pageCount)>0){h=n("-&nbsp;"+j["page-count"](a.pageCount),me);g(c,h)}h=u("http://books.google.com"
,"books.google.com",this.e(),U);g(c,h);a.html=b;this.u(a.html)}
;GbookSearch.prototype.Ua=function(a){var b="http://books.google.com/googlebooks/";var c=o(ae);var d=o(se);var f=H(b+"pages-trans.gif",null,null,oe);g(d,f);f=H(b+"p_edge-trans.gif",null,null,ne);g(d,f);g(c,d);d=o(te);var e=GSearch.scaleImage(a.tbWidth,a.tbHeight,this.n);f=H(a.tbUrl,e.width,e.height,F);var i=da(a.unescapedUrl,null,this.e(),F);w(i,F);g(i,f);g(d,i);g(c,d);return c}
;GbookSearch.prototype.setRestriction=function(a,b){if(a==Ca){if(b){if(b==Dc){this.ya=false}else if(b==Ec){this.ya=true}else{this.setRestriction(a,null)}}else{this.ya=false}}else if(a==Fc){if(b&&b.match(/^[a-zA-Z0-9\-_]*$/)){this.Na=b}else{this.Na=null}}}
;
function GpatentSearch(){GSearch.call(this);this.m="patent";this.F="/GpatentSearch";this.H="http://www.google.com/patents";this.ea="";this.Q=null;this.$=true;this.L=P(this,id);this.Z="gsc-patentConfig";this.b=null}
L(GpatentSearch,GSearch);GpatentSearch.RESULT_CLASS="GpatentSearch";GpatentSearch.AD_CLASS="GwebSearch.ad";var fd=GpatentSearch.TYPE_ANY_STATUS=1;var hd=GpatentSearch.TYPE_ISSUED_PATENTS=2;var gd=GpatentSearch.TYPE_APPLICATIONS=3;var Oa=GpatentSearch.P=new Array;GpatentSearch.RawCompletion=function(a,b,c,d,f){var e=0;if(a){e=parseInt(a)}var i=Oa[e];Oa[e]=null;i.onSearchComplete(b,c,d,f)}
;GpatentSearch.prototype.r=function(a,b,c,d){var f;if(c==null){f=M(Oa,this)}else{f=c}var e;if(b==null){e="google.search.PatentSearch.RawCompletion"}else{e=b}var i=this.E(e,f,d);if(a){var h;var k=a;if(this.h){k=k+" "+this.h}h="&q="+encodeURIComponent(k)+this.ea;if(this.Q){h=h+this.Q}i=i+h;this.i=h}return i}
;GpatentSearch.prototype.createResultHtml=function(a){if(a.html){delete a.html}a.thumbnailHtml=this.Ua(a);var b=o(this.z());p(b,C);var c=o(aa);var d=V();var f=O(d,0);var e=y(f,ra);var i=y(f,aa);g(e,a.thumbnailHtml.cloneNode(true));g(i,c);g(b,d);var h;var k=a.title;h=u(a.unescapedUrl,k,this.e(),K);g(c,h);var m=o(pe+" "+ke);g(c,m);var q=null;if(a.patentNumber){if(a.patentStatus=="issued"){q=j["us-pat"]+"&nbsp;"+a.patentNumber}else{q=j["us-pat-app"]+"&nbsp;"+a.patentNumber}}else{q=j["us-pat-app"]+"&nbsp; N/A"
}h=n(q,qe);g(m,h);if(a.applicationDate){var r=new Date(a.applicationDate);h=n(" - "+this.formatToShortDate(r),sa);g(m,h)}if(a.assignee){h=n(" - "+a.assignee,Ob);g(m,h)}h=n(a.content,J);g(c,h);g(c,h);a.html=b;this.u(a.html)}
;GpatentSearch.prototype.Ua=function(a){var b=o(l.Sd);var c=H(a.tbUrl,75,100,F);var d=da(a.unescapedUrl,null,this.e(),F);w(d,F);g(d,c);g(b,d);return b}
;GpatentSearch.prototype.setResultOrder=function(a){if(a==Q){this.Q="&scoring=d"}else if(a==jc){this.Q="&scoring=ad"}else if(a==R){this.Q=null}else{this.Q=null}}
;GpatentSearch.prototype.setRestriction=function(a,b){if(a==Ca){if(b){if(b==fd){this.ea=""}else if(b==hd){this.ea="&as_psrg=1"}else if(b==gd){this.ea="&as_psra=1"}else{this.ea=""}}else{this.ea=""}}}
;var id=GpatentSearch.prototype.Ea=function(a,b){if(b){var c=false;if(this.Q&&this.Q=="&scoring=d"){c=true}if(this.b==null){var d=o(pa);this.b=ha(null,"0",c,oa);g(d,this.b);g(d,n(j["sort-by-date"],na));var f=o(N);g(f,ca(j["close"],N));g(d,f);g(a,d);this.b.focus()}else{this.b.checked=c;this.b.focus()}}else{if(this.b){if(this.b.checked){this.setResultOrder(Q)}else{this.setResultOrder(R)}}}}
;
function GsearcherOptions(){this.w=fa;this.rb=this.w;this.root=null;this.n={width:112,height:84};this.Pa={width:100,height:75};this.oa=null}
GsearcherOptions.prototype.setExpandMode=function(a){switch(a){case lc:case ja:case fa:this.w=a;break;default:this.w=fa;break}this.rb=this.w}
;GsearcherOptions.prototype.setRoot=function(a){W(a);this.root=a}
;GsearcherOptions.prototype.setNoResultsString=function(a){this.oa=a}
;GsearcherOptions.prototype.setImageResultsTbHeight=function(a){if(a>100){a=100}this.n.height=a;this.n.width=Math.round(a*1.33)}
;GsearcherOptions.prototype.setVideoResultsTbHeight=function(a){if(a>100){a=100}this.Pa.height=a;this.Pa.width=Math.round(a*1.33)}
;function GdrawOptions(){this.input=null;this.tb=null;this.v=ea}
GdrawOptions.prototype.setInput=function(a){this.input=a}
;GdrawOptions.prototype.setSearchFormRoot=function(a){this.tb=a}
;GdrawOptions.prototype.setDrawMode=function(a){if(a==ea||a==ua){this.v=a}else{this.v=ea}}
;function Y(a,b,c){this.g=c;this.$a=false;this.Sa=false;this.gs=a;this.f=null;this.Tb=v(b,yc,[this]);this.Wb=v(b,Ea,[this,Ha]);this.Vb=v(b,Ea,[this,Ga]);this.Ub=v(b,Ea,[this,tb]);this.Sb=v(b,xc,[this]);this.Rb=v(b,uc,[this]);this.gs.setSearchCompleteCallback(b,GSearchControl.prototype.onSearchComplete,[this]);this.gs.setResultSetSize(b.resultSetSize);this.gs.setLinkTarget(b.S);this.root=null;this.Ma=null;this.ba=null;this.eb=null;this.M=null;this.aa=null;this.p=null;this.la=true}
GSearchControl.NO_RESULTS_DEFAULT_STRING=j["no-results"];var sc=GSearchControl.TIMEOUT_SHORT=350;var Da=GSearchControl.TIMEOUT_MEDIUM=500;var rc=GSearchControl.TIMEOUT_LONG=700;var lc=GSearchControl.EXPAND_MODE_CLOSED=1;var ja=GSearchControl.EXPAND_MODE_OPEN=2;var fa=GSearchControl.EXPAND_MODE_PARTIAL=3;var ea=GSearchControl.DRAW_MODE_LINEAR=1;var ua=GSearchControl.DRAW_MODE_TABBED=2;function GSearchControl(a){if(!google.loader.KeyVerified){if(GSearchControl.keyCheck()){google.loader.KeyVerified=
true}else{return}}this.resultSetSize=I;this.v=ea;this.root=null;this.searchButton=null;this.input=null;this.Ka=Da;this.Lb=v(this,vc,[null]);this.Mb=v(this,wc,[null]);this.qa=null;this.gb=null;this.fb=null;this.ca=null;this.Ob=false;this.ga=false;this.S=kb;this.Ca=j["copy"];this.a=new Array;this.Qa=new Array;var b;if(a){for(var c=0;c<a.length;c++){b=new Y(a[c],this,false);this.a.push(b)}}}
try{GSearchControl.appPath=window.location.href}catch(De){GSearchControl.appPath=null}GSearchControl.keyCheck=function(){var a=true;if(Ce(window.location.host)){return true}if(google.loader.LoadFailure){if(google.loader.OriginalAppPath&&GSearchControl.appPath){if(GSearchControl.appPath==google.loader.OriginalAppPath){google.loader.LoadFailure=false;a=true}else{google.loader.LoadFailure=false;a=true}}}google.loader.KeyVerified=true;google.loader.LoadFailure=false;return a}
;GSearchControl.prototype.enableAds=function(a,b){if(!a){return}this.lb=true;this.Ab=""+a;if(b){if(b.includeVerticalAds){this.Oa=true}if(b.channel){this.kb=b.channel}}}
;GSearchControl.prototype.addSearcher=function(a,b){if(!b){b=new GsearcherOptions}if(a.m=="ad"){this.Qa.push(a)}else{a.J=null;var c=new Y(a,this,b);this.a.push(c)}}
;GSearchControl.prototype.draw=function(a,b){var c=null;var d=null;if(b){if(b.v){this.v=b.v;c=b.input;d=b.tb}else{this.v=ea}}else{this.v=ea}this.root=o(Dd);if(c!=null){this.input=c;this.input.onkeyup=this.Lb;this.input.onpaste=this.Mb}else{if(d==null){d=this.root}var f=new GSearchForm(true,d);f.setOnSubmitCallback(this,GSearchControl.prototype.submit);f.setOnClearCallback(this,GSearchControl.prototype.clearAllResults);this.input=f.input}this.da=o($);if(this.v==ua){this.C=o(Lb);g(this.root,this.C)
;this.l=new Array;this.t=0;for(var e=0;e<this.a.length;e++){var i=new Object;var h=this.a[e].gs.Kb();h=h.replace(/ /g,"&nbsp;");i.I=n(h);i.O=null;i.I.onclick=v(this,Ac,[e]);this.l[e]=i;g(this.C,i.I);var k=Aa;if(xb()){k=k+" "+Aa+"-opera"}var m=ia(" ",k);g(this.C,m);this.a[e].g.setExpandMode(ja)}}this.wrapper=this.root;if(this.lb){this.wrapper=o("gsc-wrapper");this.G=o(Xa);this.K=o(Ya);g(this.wrapper,this.G);g(this.root,this.K);g(this.root,this.wrapper)}g(this.wrapper,this.da);for(var e=0;e<this.a.length;
e++){if(this.a[e].g.root){this.a[e].la=false;this.a[e].root=this.a[e].g.root;p(this.a[e].root,$a);z(this.a[e].root,T);p(this.a[e].root,$)}else{this.a[e].root=o($a)}if(this.a[e].gs.ta){var q=$a+"-"+this.a[e].gs.ta;p(this.a[e].root,q)}if(this.v==ua){this.l[e].O=this.a[e].root}var r=V(null,null,Nd);var s=O(r,0);this.a[e].V=y(s,Vd);var t=y(s,zd);this.a[e].Ma=n("",Wd);g(this.a[e].V,this.a[e].Ma);var G=n(this.a[e].gs.Ib(),Td);g(this.a[e].Ma,G);this.a[e].ba=n("",Qd);g(this.a[e].V,this.a[e].ba);var x=n()
;var A=n(j["blank"],Md);var D=n(j["blank"],Ld);var E=n(j["blank"],Kd);A.title=j["show-one-result"];D.title=j["show-more-results"];E.title=j["show-all-results"];g(x,A);g(x,D);g(x,E);A.onclick=this.a[e].Wb;D.onclick=this.a[e].Vb;E.onclick=this.a[e].Ub;this.a[e].eb=x;this.a[e].hb(Fa);g(this.a[e].V,this.a[e].eb);this.a[e].Ma.onclick=this.a[e].Tb;if(this.a[e].gs.L){this.a[e].o=ia("",Ad);jb(this.a[e].o,j["blank"]);p(this.a[e].o,qa);g(t,this.a[e].o);this.a[e].o.onclick=this.a[e].Sb;this.a[e].o.title=j["settings"
];this.a[e].M=o(Db);p(this.a[e].M,this.a[e].gs.Z);this.a[e].aa=gb(Db);p(this.a[e].aa,this.a[e].gs.Z);this.a[e].aa.onsubmit=this.a[e].Rb;g(this.a[e].M,this.a[e].aa);this.a[e].M.style.display="none"}this.a[e].p=o(Od);p(this.a[e].p,this.a[e].gs.bb());if(this.a[e].g.root==null){g(this.da,this.a[e].root)}g(this.a[e].root,r);if(this.a[e].M){g(this.a[e].root,this.a[e].M)}g(this.a[e].root,this.a[e].p)}if(this.v==ua){for(var e=0;e<this.a.length;e++){p(this.l[e].I,Sd);p(this.l[e].O,Rd);if(e==this.t){p(this.l[
e].I,cb);p(this.l[e].O,ab)}else{p(this.l[e].I,db);p(this.l[e].O,bb)}}}if(a&&typeof a=="string"){a=document.getElementById(a)}if(a){cc(a,this.root);var la=this.Hb();if(la&&la<300){this.Ob=true;p(this.root,Jd)}}}
;GSearchControl.prototype.setTimeoutInterval=function(a){switch(a){case sc:case Da:case rc:this.Ka=a;break;default:this.Ka=Da;break}}
;var qc=GSearchControl.KEEP_LABEL_SAVE="save";var pc=GSearchControl.KEEP_LABEL_KEEP="keep";var oc=GSearchControl.KEEP_LABEL_INCLUDE="include";var nc=GSearchControl.KEEP_LABEL_COPY="copy";var mc=GSearchControl.KEEP_LABEL_BLANK="blank";GSearchControl.prototype.setOnKeepCallback=function(a,b,c){if(c){switch(c){case qc:case pc:case oc:case nc:case mc:this.Ca=j[c];break;default:this.Ca=c;break}}this.qa=P(a,b)}
;var Ac=GSearchControl.prototype.Ke=function(a){if(this.t==a){return}z(this.l[this.t].I,cb);z(this.l[this.t].O,ab);p(this.l[this.t].I,db);p(this.l[this.t].O,bb);this.t=a;p(this.l[this.t].I,cb);p(this.l[this.t].O,ab);z(this.l[this.t].I,db);z(this.l[this.t].O,bb)}
;GSearchControl.prototype.submit=function(){if(this.input.value.length){this.execute()}else{this.clearAllResults()}return false}
;GSearchControl.prototype.execute=function(a){var b;if(a){b=a;this.input.value=b}else{b=this.input.value}if(b.length){this.ga=false;w(this.da,T);if(this.C){w(this.C,eb)}if(this.lb){var c=this;var d=this.resultSetSize==X;var f=d?"w2":"w1";if(this.Oa){f=f+(d?"n4":"n2")}window.google_afs_request_done=function(h){c.Pb(h)}
;var e="http://www.google.com/search?output=js&num=0&q="+encodeURIComponent(b)+"&client="+encodeURIComponent(this.Ab)+"&ad="+encodeURIComponent(f)+"&js=uds";if(this.kb){e+="&channel="+encodeURIComponent(this.kb)}od(e)}for(var i=0;i<this.a.length;i++){if(!this.a[i].la){z(this.a[i].root,$);p(this.a[i].root,T)}if(this.gb){this.gb(this,this.a[i].gs,b)}if(this.a[i].gs.J){this.a[i].gs.J=null}this.a[i].gs.execute(b)}for(var i=0;i<this.Qa.length;i++){this.Qa[i].execute(b)}}}
;GSearchControl.prototype.Pb=function(a){window.google_afs_request_done=null;if(!this.G){return}this.G.innerHTML="";this.K.innerHTML="";if(!a||a.length<1){w(this.G,Xa);w(this.K,Ya);if(this.Oa){z(this.wrapper,xa)}return}w(this.G,rd);var b=false;var c=document.createElement("h2");c.innerHTML=j["sponsored-links"];g(this.G,c);var d=a.length;for(var f=0;f<d;f++){var e=a[f];if(e.type=="text/wide"){var i=o(zb);var h=u(e.url,e.line1,"_BLANK");g(i,h);var k=document.createElement("cite");k.innerHTML=e.visible_url;
g(i,k);var m=ia();m.innerHTML=e.line2;g(i,m);g(this.G,i)}else if(this.Oa){if(!b){b=true;p(this.wrapper,xa);g(this.K,c.cloneNode(true));w(this.K,td)}var i=o(zb);var h=u(e.url,e.line1,"_BLANK");g(i,h);var m=ia();m.innerHTML=e.line2+"<br/>"+e.line3;g(i,m);var k=document.createElement("cite");k.innerHTML=e.visible_url;g(i,k);g(this.K,i)}}if(this.Oa&&!b){z(this.wrapper,xa)}}
;var vc=GSearchControl.prototype.ye=function(){var a=this.input.value;if(a&&a!=""){if(this.ca){clearTimeout(this.ca)}this.ca=setTimeout(v(this,GSearchControl.prototype.execute,[null]),this.Ka)}}
;var wc=GSearchControl.prototype.ze=function(){if(this.ca){clearTimeout(this.ca)}this.ca=setTimeout(v(this,GSearchControl.prototype.execute,[null]),this.Ka)}
;GSearchControl.prototype.setResultSetSize=function(a){var b=true;switch(a){case X:this.resultSetSize=a;b=true;break;default:case I:this.resultSetSize=I;b=false;break}for(var c=0;c<this.a.length;c++){this.a[c].gs.setResultSetSize(a)}}
;GSearchControl.prototype.setLinkTarget=function(a){this.S=a;for(var b=0;b<this.a.length;b++){this.a[b].gs.setLinkTarget(a)}}
;GSearchControl.prototype.setNoResultsString=function(a){for(var b=0;b<this.a.length;b++){this.a[b].g.setNoResultsString(a)}}
;var yc=GSearchControl.prototype.De=function(a){if(a.$a){this.U(a,false)}else{this.U(a,true)}}
;GSearchControl.prototype.U=function(a,b,c){if(!b){z(a.V,ya);p(a.V,qa);a.$a=false;a.p.style.display="none";if(c){var d="(0)";a.ba.innerHTML=d}else{var d="("+(a.gs.results.length+a.gs.adResults.length)+")";a.ba.innerHTML=d}}else{z(a.V,qa);p(a.V,ya);a.$a=true;a.p.style.display="block"}}
;var uc=GSearchControl.prototype.xe=function(a){this.ra(a,false,true);return false}
;var xc=GSearchControl.prototype.Ce=function(a){if(a.gs.$){if(a.Sa){this.ra(a,false,true)}else{this.ra(a,true,true)}}}
;GSearchControl.prototype.ra=function(a,b,c){if(!b){if(a.o){z(a.o,ya);p(a.o,qa);a.o.innerHTML=j["blank"];a.Sa=false;a.gs.L(a.aa,false);a.M.style.display="none";if(c){this.execute()}}}else{if(a.o){p(a.o,ya);z(a.o,qa);a.o.innerHTML=j["close"];a.Sa=true;a.M.style.display="block";a.gs.L(a.aa,true)}}}
;var sb=GSearchControl.prototype.Ae=function(a,b){if(this.qa){b.gs.ob();this.qa(a)}}
;GSearchControl.prototype.cancelSearch=function(){this.ga=true}
;GSearchControl.prototype.clearAllResults=function(){this.input.value="";w(this.da,$);if(this.C){w(this.C,Lb)}if(this.G){w(this.G,Xa)}if(this.K){w(this.K,Ya);z(this.wrapper,xa)}for(var a=0;a<this.a.length;a++){if(!this.a[a].la){z(this.a[a].root,T);p(this.a[a].root,$)}var b=this.a[a];W(b.p);b.f=null;this.U(b,false,true);this.ra(b,false,false)}}
;GSearchControl.prototype.onSearchComplete=function(a){var b;var c;var d=false;var f;if(this.ga){return}W(a.p);a.f=null;this.U(a,false,true);this.ra(a,false,false);a.hb(Fa);var e=a.gs.results;if(a.gs.ha&&a.gs.completionStatus>=400){e=new Array;e.push(a.gs.Fb())}else if(e.length==0&&a.g.oa&&a.gs.completionStatus==200){e=new Array;e.push(a.gs.Gb(a.g.oa))}for(var c=0;c<e.length;c++){b=e[c];if(!b.html){a.gs.createResultHtml(b)}if(b.html){d=true;f=o(a.gs.bb());p(f,Za);if(a.gs.ta){var i=Za+"-"+a.gs.ta;
p(f,i)}var h=b.html.cloneNode(true);if(b.GsearchResultClass==Sc){if(a.g.n){if(a.g.n.width!=a.gs.n.width||a.g.n.height!=a.gs.n.height){var k=h.getElementsByTagName("img");for(var m=0;m<k.length;m++){GSearch.scaleImage(b.tbWidth,b.tbHeight,a.g.n,k[m],true)}}}}else if(b.GsearchResultClass==md){if(a.g.Pa){var k=h.getElementsByTagName("img");for(var m=0;m<k.length;m++){GSearch.scaleImage(b.tbWidth,b.tbHeight,a.g.Pa,k[m])}}}g(f,h);if(this.qa){var q=this.Ca;var r=n("",Gb);jb(r,q);g(f,r);r.onclick=v(this,
sb,[b,a])}var s=a.gs.qb;if(c>=s){if(!a.f){a.f=o(Eb);g(a.p,a.f);if(a.g.w==fa){a.f.style.display="none"}}g(a.f,f)}else{g(a.p,f)}}}if(!a.f&&a.gs.cursor){a.f=o(Eb);g(a.p,a.f)}if(a.f&&a.gs.i&&a.gs.gwsUrl){f=u(a.gs.gwsUrl,j["more-results"]+"&nbsp;&raquo;",a.gs.e(),Ud);if(a.gs.cursor){var t=o(Fd);var G=this.Eb(a);t.appendChild(G);t.appendChild(f);g(a.f,t)}else{g(a.f,f)}}var x=a.f?a.f:a.p;if(a.gs.adResults.length){var A=o(sd);for(var c=0;c<a.gs.adResults.length;c++){if(c==0){var f=n(j["sponsored-links"],
fe);g(A,f)}b=a.gs.adResults[c];if(!b.html){a.gs.wa(b)}if(b.html){d=true;f=o(a.gs.bb());p(f,Za);g(f,b.html.cloneNode(true));if(this.qa){var r=n(this.Ca,Gb);g(f,r);r.onclick=v(this,sb,[b,a])}g(A,f)}}g(x,A)}if(!d){a.ba.innerHTML="(0)";a.p.innerHTML="";this.U(a,false)}else{var D;var D="("+(a.gs.results.length+a.gs.adResults.length)+")";a.ba.innerHTML=D;if(a.g.w==fa||a.g.w==ja){this.U(a,true)}else{this.U(a,false)}var E=a.gs.getAttribution(true);if(E){g(a.p,E)}}a.g.w=a.g.rb;if(this.fb){this.fb(this,a.gs)
}}
;GSearchControl.prototype.Eb=function(a){var b=o(Ed);var c=a.gs.cursor;for(var d=0;d<c.pages.length;d++){var f=Hd;if(d==c.currentPageIndex){f=f+" "+Gd}var e=n(c.pages[d].label,f);e.onclick=v(this,zc,[a,d]);b.appendChild(e)}return b}
;var rb=GSearchControl.se={border:"border",borderColor:"border-color",borderStyle:"border-style",borderWidth:"border-width",borderTop:"border-top",borderTopColor:"border-top-color",borderTopStyle:"border-top-style",borderTopWidth:"border-top-width",borderRight:"border-right",borderRightColor:"border-right-color",borderRightStyle:"border-right-style",borderRightWidth:"border-right-width",borderBottom:"border-bottom",borderBottomColor:"border-bottom-color",borderBottomStyle:"border-bottom-style",borderBottomWidth:
"border-bottom-width",borderLeft:"border-left",borderLeftColor:"border-left-color",borderLeftStyle:"border-left-style",borderLeftWidth:"border-left-width",color:"color",cssFloat:"float",styleFloat:"float",clear:"clear",cursor:"cursor",display:"display",font:"font",fontFamily:"font-family",fontSize:"font-size",fontStyle:"font-style",fontWeight:"font-weight",height:"height",margin:"margin",marginTop:"margin-top",marginRight:"margin-right",marginBottom:"margin-bottom",marginLeft:"margin-left",overflow:
"overflow",padding:"padding",paddingTop:"padding-top",paddingRight:"padding-right",paddingBottom:"padding-bottom",paddingLeft:"padding-left",textAlign:"text-align",textDecoration:"text-decoration",textTransform:"text-transform",verticalAlign:"vertical-align",visibility:"visibility",width:"width"};var tc=GSearchControl.inlineCurrentStyle=function(a,b){if(yb()){alert("GSearchControl.inlineCurrentStyle is not supported on Safari");return}var c=true;if(b){c=b}if(c){for(var d=0;d<a.childNodes.length;d++
){tc(a.childNodes[d],true)}}if(a.nodeType==1){var f;var e;var i=false;var h=false;if(window.getComputedStyle){f=window.getComputedStyle(a,null);e=true;i=true}else if(a.currentStyle){f=a.currentStyle;e=false;i=true}if(i){for(var k in f){if(rb[k]){var m=rb[k];var q=f[k];if(k=="display"&&q=="none"){a.innerHTML="";h=true}if(f[k]!=""){if(e){a.style.setProperty(m,q,"")}else{a.style.setAttribute(m,q,"")}}}}if(h){if(e==false){a.outerHTML="<div style='display:none'/>"}}}}}
;GSearchControl.prototype.Hb=function(a){var b=a?a:this.root;var c=null;if(window.getComputedStyle){c=window.getComputedStyle(b,null)}else if(b.currentStyle){c=b.currentStyle}else if(document.defaultView.getComputedStyle){c=document.defaultView.getComputedStyle(b,null)}if(c){return parseInt(c["width"])}else{return 300}}
;GSearchControl.prototype.setSearchCompleteCallback=function(a,b){this.fb=P(a,b)}
;GSearchControl.prototype.setSearchStartingCallback=function(a,b){this.gb=P(a,b)}
;var Fa=Y.SRC_INIT=0;var Ha=Y.SRC_ONE=1;var Ga=Y.SRC_MORE=2;var tb=Y.SRC_ALL=3;Y.prototype.hb=function(a){var b=Pd+" ";if(a==Fa){if(this.g.w==fa){b+=Ib}else if(this.gs.getResultSetSize()==I){b+=Hb}else{b+=Ab}}else if(a==Ha){b+=Ib}else if(a==Ga){b+=Hb}else{b+=Ab}w(this.eb,b)}
;var Ea=GSearchControl.prototype.Be=function(a,b){a.hb(b);var c=false;switch(b){default:case Ha:if(a.f){a.f.style.display="none"}break;case Ga:if(a.f){a.f.style.display="block"}if(a.gs.getResultSetSize()!=I){c=true}a.gs.setResultSetSize(I);break;case tb:if(a.f){a.f.style.display="block"}if(a.gs.getResultSetSize()!=X){c=true}a.gs.setResultSetSize(X);break}if(c){var d;d=this.input.value;if(d.length){this.ga=false;w(this.da,T);if(this.C){w(this.C,eb)}if(!a.la){z(a.root,$);p(a.root,T)}a.g.w=ja;a.gs.execute(
d)}}}
;var zc=GSearchControl.prototype.Ge=function(a,b){this.ga=false;w(this.da,T);if(this.C){w(this.C,eb)}if(!a.la){z(a.root,$);p(a.root,T)}a.g.w=ja;a.gs.gotoPage(b)}
;function GSearchForm(a,b,c){var d=gb(Jb);d.acceptCharset="utf-8";var f=null;var e=j["search-uc"];var i=j["search"];if(c){if(c.buttonText){e=c.buttonText;i=c.buttonText}if(c.clickableBrandingUrl){var h="http://www.google.com";if(typeof c.clickableBrandingUrl=="string"&&c.clickableBrandingUrl.match(/^http:\/\/[a-z]*\.google\.com/)){h=c.clickableBrandingUrl}f=da(h,null,"_BLANK");f.className=vd}}this.searchButton=ca(e,Kb);this.searchButton.title=i;var k;if(a){k=wd;this.Ra=n(j["blank"],Cb);this.Ra.title=
j["clear-results"]}else{k=xd}this.input=hb(null,Fb,null);this.input.name="search";this.input.title=i;var m=V(null,null,Jb);g(d,m);var q=O(m,0);this.pb=y(q,Fb);var r=y(q,Kb);if(a){var s=y(q,Cb);g(s,this.Ra)}g(this.pb,this.input);g(r,this.searchButton);var t=V(null,null,ud);g(d,t);q=O(t,0);this.userDefinedCell=y(q,yd);var G=y(q,Bb);var x=y(q,k);var A=n(j["powered-by"],Bb);var D=google.loader.ServiceBase+"/css/small-logo.png";var E=ec(D,51,15,k);g(G,A);if(f){g(f,E);g(x,f)}else{g(x,E)}this.sb=d;W(b);
g(b,this.sb)}
GSearchForm.prototype.setOnSubmitCallback=function(a,b){this.ub=v(this,Bc,[this]);this.Ia=v(a,b,[this]);this.sb.onsubmit=this.ub;this.searchButton.onclick=this.ub}
;GSearchForm.prototype.setOnClearCallback=function(a,b){this.Ra.onclick=v(a,b,[this])}
;var Bc=GSearchForm.prototype.Je=function(a){var b=this.pb.offsetWidth;var c=this.input.value;if(this.Ia){this.Ia()}if(wa()){var d=this;var f;if(c.length*8>=b){f=b-6}else{f="99%"}setTimeout(function(){d.input.style.width=f}
,1)}return false}
;GSearchForm.prototype.execute=function(a){if(a){this.input.value=a}if(this.Ia){this.Ia()}}
;
google_exportSymbol("google.search.WebSearch",GwebSearch);google_exportSymbol("google.search.BookSearch",GbookSearch);google_exportSymbol("google.search.BlogSearch",GblogSearch);google_exportSymbol("google.search.VideoSearch",GvideoSearch);google_exportSymbol("google.search.NewsSearch",GnewsSearch);google_exportSymbol("google.search.LocalSearch",GlocalSearch);google_exportSymbol("google.search.ImageSearch",GimageSearch);google_exportSymbol("google.search.AdSenseSearch",GadSenseSearch);google_exportSymbol(
"google.search.PatentSearch",GpatentSearch);google_exportSymbol("google.search.SaSearch",GsaSearch);google_exportSymbol("google.search.Search",GSearch);google_exportSymbol("google.search.SearchControl",GSearchControl);google_exportSymbol("google.search.SearchForm",GSearchForm);google_exportSymbol("google.search.SearcherOptions",GsearcherOptions);google_exportSymbol("google.search.DrawOptions",GdrawOptions);if(!google.search.NoOldNames){google_exportSymbol("GwebSearch",GwebSearch);google_exportSymbol(
"GbookSearch",GbookSearch);google_exportSymbol("GblogSearch",GblogSearch);google_exportSymbol("GvideoSearch",GvideoSearch);google_exportSymbol("GnewsSearch",GnewsSearch);google_exportSymbol("GlocalSearch",GlocalSearch);google_exportSymbol("GimageSearch",GimageSearch);google_exportSymbol("GadSenseSearch",GadSenseSearch);google_exportSymbol("GsaSearch",GsaSearch);google_exportSymbol("GpatentSearch",GpatentSearch);google_exportSymbol("GSearch",GSearch);google_exportSymbol("GSearchControl",GSearchControl)
;google_exportSymbol("GSearchForm",GSearchForm);google_exportSymbol("GsearcherOptions",GsearcherOptions);google_exportSymbol("GdrawOptions",GdrawOptions)};

 })()
google.loader.loaded({"module":"search","version":"1.0","components":["default"]});
google.loader.eval.search = function() {eval(arguments[0])}})()



